Bespin: an experiment in giving developers a productive and fun environment on the Open Web

May 11, 2009


Link copied to clipboard
This post is part of the Who's @ Google I/O, a series of blog posts that give a closer look at developers who'll be speaking or demoing at Google I/O. Today's post is a guest post written by Dion Almaer of Mozilla's Bespin project

It feels good to be posting on the Google Code blog again. Since moving down the road from Google to Mozilla I have been busy working with my partner in crime, Ben Galbraith, in a new Developer Tools Lab.

The first product of our new team's endeavors was an experiment code named the Bespin project. Ben and I have been talking about the great things that you can do on the Web platform for quite some years. We feel like there is a big sea change happening right now as the various browsers kick into a new gear with fantastic features. The core runtimes on the Web (the browsers) are getting serious horse power. With technologies such as Web Workers, Canvas, advanced caching (application cache), local storage, native video / audio, and screaming fast JavaScript VMs, we feel that a new world of possibilities is going to hit the Web.

It wasn't too long ago that we saw this before, when Ajax hit the Internet and we went from simple applications to richer ones such as Google Maps and Gmail.

We wanted to test out this theory, so we set about creating a new age application that uses the great new technologies stated earlier. Since we are a developer tools lab, would it not make sense for this experiment to be a developer tool? And, what is the grand daddy of all developer tools? The coding environment that developers use to build applications. How "meta" :)

Being Mozilla, we released a very early version of Bespin that is 100% open source, so the community could form. It has been a fantastic ride even in the short opening months. The editor is fully Web based, and "by the Web, on the Web." Being a former Emacs Lisp hacker, I have known how powerful it is to have an environment that you can change for your own work flow, using a language that you know and love. Why shouldn't today's world of Web developers be able to have a great tool that they can change using Web technology? Yet another reason for Bespin.

We have just released version 0.2 of Bespin, and it has features such as version control built in, rich syntax highlighting, real-time code analysis, a command line that that you can create your own commands for, and a fancy dashboard. We are proud of where we are in short order, but there is much to be done. In the lab we have collaboration support in place and will be deploying soon. We are incredibly excited about some exciting use cases. Wouldn't it be interesting if:
  • You could "follow" a developer and see how he codes? I would love to follow Brendan Eich, the creator of JavaScript, as he hacks on TraceMonkey!
  • You could do a live code review with someone, and both edit the code in place, a la SubEthaEdit or Google Docs?
  • Have a chat session that associates itself with the code files, so you can go back and see the conversations around a bit of code?
  • You were told that someone else is editing in the same file so you can quickly commit the code so they have to do the merge :P
  • You could search and subscribe to others commands, which will then be automatically updated for you
  • And much much more, as you can see on our Roadmap
To see more about Bespin, check out our video, or visit our community home:

.

This is the first of many tools that will come out of our lab. It is important to note that these tools are for the Open Web as a whole. Just because we are at Mozilla doesn't mean that we only care about Firefox, far from it. Bespin itself runs on multiple bleeding edge browsers!

I am very excited to have been asked back to Google I/O (May 27-28) to speak not only about Bespin, but about the Open Web platform itself. I can't wait to share more of our community's work pushing the Open Web forward, and would love feedback on our projects and what you really need from us as developers. Hope to see you in May!