While a lot of the talk surrounding productivity in the HPC space has to do with parallel programming models and language compilers, for coders in the trenches, the most important productivity tool is their text editor. A good source code text editor can make even a poor programming environment seem tolerable. If you doubt the significance of a developer’s relationship with their editor, just suggest he or she ditch their beloved Emacs or vi for Brand X.
With that in mind, I was intrigued by the recent debut of a Web-based text editor, called Bespin, designed for source code development. Bespin is the brainchild of Mozilla Labs, which released a prototype of the tool last week. While there are other online editors like Google Docs and Zoho Writer, those are geared for general-purpose word processing and tend to make poor tools for developing code. The Bespin prototype is geared toward Web programming (it does syntax highlighting for JavaScript, HTML and CSS), but since the editor is built for extensibility, support for other languages should be relatively easy to plug in.
Bespin already seems to be getting a lot of praise in the press, and with Mozilla behind it, this may be a tool with a real future. The obvious advantage of coding in the cloud is that you’ve freed yourself of maintaining your editor tools — licenses, updates, custom configurations, etc. – on all your computers. Also, the online nature of the tool makes real-time collaboration of source code a no-brainer, although this capability doesn’t exist in the prototype.
One of Bespin’s strongest features is performance, which the Mozilla guys seemed to be focused on from the start. The text editing windows, as well as other types of windows, are rendered using the HTML 5 canvas element and are implemented in JavaScript. Since JavaScript runs locally, the application is able to take advantage of client-side interactivity and performance (although your mileage may vary depending on your client hardware and how canvas and JavaScript are implemented). So typing fast and editing large files does not seem to stress its performance.
The developers also paid a good deal of attention to the user interface and strived to make it as intuitive as possible. The fact that they used canvas to implement the UI graphics enabled them to incorporate a lot of intelligence in the layout and navigation of the source code files. A nice video demonstration of Bespin from two of the developers is provided below.
Introducing Bespin from Dion Almaer on Vimeo.
If you want to give Bespin a spin, you can register at https://bespin.mozilla.com/. But since the tool uses HTML 5, you’ll need to install Firefox 3.0 or WebKit Nightly to test it out.