Saturday, February 28, 2009

Browser competition

Of all applications, the browser is now by far the most competitively fought over. Four major organisations are each spending around $50-100 million annually on a free product, with regular upgrades due in the next few months:

  • Microsoft: Internet Explorer 8 with a totally re-written browser engine
  • Mozilla: Firefox 3.1 with fast performance and new functionality like native audio and video, plus the release of Firefox for Mobile.
  • Apple: Safari 4 with new standards support such as a native database and fast performance
  • Google: Chrome 2.0 with a streamlined interface and fast performance

Somehow the browser market has avoided the featuritis that burdened office applications with endless menu options. In fact, browsers have got much simpler; three of the those above don't even have menus. Instead the focus has been on turning the browser into a great platform for developers: javascript performance may soon approach Java in speed, and support for new developer features such as advanced CSS styling and APIs such as geo-location enable new applications.

Most of the browsers above are open source - the only exceptions are Internet Explorer and the user interface of Safari. Browser vendors have cooperated over the HTML5 and CSS3 standards. They also have common test suites and performance tests such as SunSpider. But they haven't cooperated as much as they could.

For example, Firefox and Safari have produced competing web developer tools (starting with Firebug for Firefox, and Web Inspector for Safari). They are writing competing javascript engines and debuggers.

Perhaps a bit more cooperation would help them both move forward faster. Why not agree on a standard tool for developer help (perhaps based on Mozilla's documentation), or a standard text editor (based on Mozilla's Bespin)? Perhaps Google could take the lead with process separation, and Apple with profiling tools. None of this would prevent further competition in the main browser engine, but it would ensure rapid progression for everyone.

Sunday, February 15, 2009

Mozilla's web developer tools

Mozilla are best known for their browser Firefox but they're creating a steady stream of great web development tools, the latest of which was unveiled last week. Bespin is a new web-based extensible code editor with integrated command line. Although it's a very early version and lots of kinks remain (including too much inaccessible HTML5 Canvas usage), the team have already accomplished one of their first objectives, which is to prove how capable browsers now are. Could web development tools one day provide the second 'arm' of Mozilla?

Other development tools managed by Mozilla include:

  • Firebug, for inspecting and editing CSS, javascript and HTML
  • Bugzilla, for release planning and maintaining issues lists
  • Mozilla Developer Center, for documenting web standards such as HTML and the DOM
  • jQuery, a javascript library for cross-browser web development

Tools for web development fit naturally into Mozilla's goals for extending the reach of the open web. In fact it seems strange that Mozilla don't have more competition in this area - there is a surprising lack of offerings from Yahoo, Microsoft, Amazon and even Google, especially considering how tools can be used to bind developers towards vendors.

I hope that Mozilla's plans for Bespin are ambitious, because I see it as the centrepiece for all their development tools. Imagine if you while editing your code you could click once to find help in Mozilla Developer Center, again to visualise the results via Firebug, another time to track your bugs in Bugzilla and finally to resolve DOM issues using jQuery. In this way, Bespin can integrate all Mozilla's tools together.

I would also add additional tools to the slate, all of which should integrate back with Bespin. For example:

  • Version Control System (e.g. hg, git) integration - create a fork or merge at the click of a hyperlink
  • Validation / Best Practices - automatically check all your code against standards or best practices such as jslint
  • Web design - online tool for visualising and editing site design
  • Security - automatic checks for common flaws such as XSS

Such a suite would constitute a second 'arm' of Mozilla. It would perhaps also provide a second source of funding for the organisation, with the support of web companies that use the tools. It could certainly improve the productivity of hundreds of thousands of web developers, while spreading standards and best practices. It's a very ambitious goal, but Mozilla has already proven capable of delivering great tools like jQuery and Firebug that now dominate their markets.

I believe it's time for Mozilla to take a step up and treat development tools as a priority alongside Firefox itself.