Mozilla Bespin: Code Editor in the Cloud

When I heard that two guys, who a few of us at Adobe have known for a while, were taking jobs with Mozilla, I knew that it would not be long until we saw some interesting things happen. I didn’t expect it this quickly though.


Last night, Dion Almaer and Ben Galbraith launched a new project on Mozilla Labs called Bespin. Bespin is described as “an open extensible web-based framework for code editing that aims to increase developer productivity, enable compelling user experiences, and promote the use of open standards.” I like to think of it as code editing in the cloud.

The basis of it is a canvas based (which means you need Firefox 3 or the latest Safari nightly) code editing environment that hosts all of your files in the cloud. Think Buzzword, but for developers.

Now, there have been other companies that have tried this. Bungee Connect comes to mind, although their platform was tied to their cloud computing platform. And to be quite honest, I have always been skeptical of browser based developer tools for some reason. Let me share a few of my pros and cons as I see them. Keep in mind that Bespin is still a prototype, Ben and Dion definitely have some tricks up their sleeves we haven’t seen yet, and I have no doubt they will be addressing the cons I mention below.

Cons of Browser-based IDEs

First, no integration with the desktop for things like file storage, shell integration, etc. While some of this can be overcome, and file storage could be in the cloud like Bespin is doing. It may be a security risk to put code that is sensitive on a service like this.

Second, performance. Now, in the case of Bespin, this doesn’t appear to be an issue at all right now. I am definitely impressed with the performance, although obviously time will tell how much more they can eek out of the browser while adding more features.

Third, what about bytecode compilation? For example, ActionScript, Java, C#, etc. require a compiler to generate the necessary bytecode before it is interpreted. I guess this would mean a round trip to the server, but that might not work in the offline use case.

And last, offline support. I get a lot of coding done on airplanes. And to be completely honest, while this may be an edge case, it is something that has always been a requirement for me. Now, a feature like this isn’t impossible, it is just that nobody has implemented support for it.

Pros of Browser-based IDEs:

So, now that I have shared some of what I considered cons, what about the pros? First, there is no file storage! Ok, I cheated a little on that one since it is both a pro and con. But this is part of the promise of ‘the cloud’ right? No more worrying about where I put those files, or if I have backed them up. They exist in the wonderful ether of ‘the cloud!’

And this kind of leads to my second point, they could just integrate with your repository. No more worrying about whether or not you checked in that last file. You have easier workflow from testing to production, etc.

Third, there could be a rich ecosystem of developers building and sharing extensions for the platform. You want a feature, you just enable it from some kind of directory or marketplace and voila! You instantly upgraded your IDE.

And last, for me as an evangelist this is important, it provides a much easier on ramp for developers who want to learn programming. No longer will they be required to download and configure complicated IDEs. They can focus on the programming, not the environment which is supposed to make that easier for them.

What next?

Well, there is no doubt that Ben and Dion have plenty of ideas in their heads about where this is going. It will be interesting to keep an eye on the project and see if it will actually become something I can use on a daily basis. I guess that begs the question though, when will it support ActionScript?