Programming the Web, Pt. III The most revolutionary aspect of all the changes that have taken place in web development over the last two decades has been in the web browser.
Typically we think of web browsers as driving innovation on the web by providing new features. Indeed this is the major source of new features on the web.
There is however, another less obvious way in which browsers have been driving innovation, especially in the last five years - by giving web developers ever more powerful developer tools built right into the web browser.
Would today's increasing complex and sophisticated web apps be possible without debugging tools available in web browsers? Would today's Web Component driven experiments be possible without the Chrome, Firefox, Opera and IE developer tools? Well, probably they would still exist, but they would be much more difficult and time consuming to build.
Once upon a time web browsers offered web developers a single developer tool: view source.
But Firebug, WebKit Inspector and the Chrome Developer Tools represented a much larger shift in how the web is built - developer tools in the browser moved the task of building the webpages from separate standalone IDEs like Dreamweaver from Macromedia/Adobe or (shudder) Microsoft FrontPage to the actual web browser. Dreamweaver still exists, but it has largely fallen by the wayside. These days you'd be hard-pressed to find an article or tutorial on web development that even mentions it.
Today you can build entire web applications without ever leaving the web browser.
In cases where the packaged tools aren't enough there are plenty of browser add-ons to extend their range. Want a basic shell in your browser? Just grab the Devtools Terminal add-on for Chrome. How about a visual CSS editor, an accessibility auditor or even an entire FTP/SFTP client?
There's an embarrassment of riches waiting for web developers in today's browsers. But, while today's browser-based developer tools are fantastically powerful and continue to arrive at an almost overwhelming pace, developing websites directly in the browser is still harder than it should be in many ways.
Oy, again with the server
Even seemingly simple things like using the editor of your choice isn't entirely possible. For example, while you can get some of the power of Vim or Emacs in your browser, you certainly can't get all of it. Mozilla has demonstrated a proof of concept that would allow an outside text editor to control Firefox via some Python scripts, but that project has never shipped and its current status is unclear.
Some developers argue it would have been better to put the browser's runtime in your text editor rather than the other way around, but at this point that seems unlikely to happen.
With any luck, though, this disconnect will be one of the next big areas browser makers tackle. Just imagine a developer tools panel that can act as a simple server, just point it to a folder and it handles the rest.
We can hope. ®