(This is going to be a little long, for which I guess I could apologize, but it’s my blog, so whatever.)
So let’s try this one on for size, because everyone is offering the web developer a set of tools to lure them off the web. You’ve got your silly season participants, and you’ve got your — no, honestly, grown-ups came up with this name — JavaFX Script stuff, and they all want you to give up this archaic web thing for something so much shinier, and faster, and man have you seen the cooking-show demos?
You can point and you can click, and you will get an application, and it will run on the web (says Silverlight, because Microsoft has always been about the web: they were just getting up a good head of steam when they left IE6 dangling for years; they were always planning to come back) and on the desktop (says Apollo, because Adobe is best known for its “web” stuff in this space, but when Silverlight comes to the web, I mean, what would you do?). And it will be glorious. You will have graphics and drag-and-drop widgets and you can bet there will be pretty colours and probably a billion language choices, and if it doesn’t generate the cutest little installer then you can have your money back.
Adobe and Microsoft have always had better tools, in part because they’ve staffed and organized hard against them, but also in large part because their platforms require tools — that’s a big part of their business model. I don’t think you should need to buy, or even use-for-free, any given tool to build the web, and by using and helping to drive open web technologies Mozilla lets people choose the tools they want to use. We don’t force you to use the ones that we make money or marketshare on: you can use Eclipse or Firebug, Rails or J2EE, Komodo or Notepad, YUI or Dojo. If you ask the people who are building the exciting and significant apps on the web today, be they gmail or eBay or twitter or facebook or flickr or even Windows Live Search, I bet you that vanishingly few of them use IDEs. They use the tool that works best for them, for a given problem, sometimes using a bunch at once. I would be very surprised to discover that all of a given team even uses the same text editor, to be frank.
(We also don’t make you sign licensing agreements to get the format specifications, or prevent you from competing with us. We don’t tell you where you can and can’t install the software. We don’t tell you what you can and can’t tell people about your experiences, or that you can’t give it to other people with whom you might want to collaborate.)
If you choose a platform that needs tools, if you give up the viral soft collaboration of View Source and copy-and-paste mashups and being able to jam jQuery in the hole that used to have Prototype in it, you lose what gave the web its distributed evolution and incrementalism. You lose what made the web great, and what made the web win. If someone tells you that their platform is the web, only better, there is a very easy test that you can use:
When the tool spits out some bundle of shining Deployment-Ready Code Artifact, do you get something that can be mashed up, styled, scripted, indexed by search engines, read aloud by screen readers, read by humans, customized with greasemonkey, reformatted for mobile devices, machine-translated, excerpted, transcluded, edited live with tools like Firebug? Or do you get a chunk of dead code with some scripted frills about the edges, frozen in time and space, until you need to update it later and have to figure out how to get the same tool setup you had before, and hope that the platform is still getting security and feature updates? (I’m talking to you, pre-VB.NET Visual Basic developers.)
Mozilla has always valued and supported web developers, and in turn those who support developers with tools and other assets, and we’ll invest more in this area over the coming year. But we’ll do it in a way that makes sense for the whole web, and brings to bear the human-manipulable power of web technology: a great set of primitives that people combine in very different ways, giving developers a great opportunity to choose tools and toolkits and patterns and technology that suit how they want to work and what they want to build.
The web can eat toolchain bait like this for breakfast. And, if Mozilla has anything to say about it, it will do just that. You won’t have to give up the web to work offline any more, or programmable 2D graphics, etc. Soon you’ll have the power of 3D and great desktop/application integration as well, via projects like canvas3d and registration of content handlers, and you’ll have it in a way that’s built on open specifications and a tool ecosystem that isn’t a monoculture. Why wouldn’t you choose the web, given its record and power and openness?