Bespin is an experimental in-browser text/source-editor created by Mozilla Labs. Using any modern web browser (that means no IE, obviously), you can edit your projects from any computer, or with the added flexibility of the web - such as online collaboration, decentralisation, and extensibility. Read more for Kroc's review.

Bespin is without question one of those "Wouldn't it be great" ideas. Wouldn't it be great to be able to edit code, in a decent editor, from anywhere, just using a browser? Yes it would; but I have to say, most "wouldn't it be great" ideas are spur-of-the-moment things, and the finer details have to be worked out over time. I certainly have reservations which I will proceed to address.

However, on a more positive note - webmail was a previously successful "wouldn't it be great" idea. Wouldn't it be great to--instead of being tied to a local client--be able to get your email from anywhere, using a browser? And lo, it was a great idea. But there was one flaw, that still persists to today -- email links on webpages still open in the local client, instead of the webmail site. It's possible to fix this, but it's not a given, and this problem plagues regular users constantly.

You, our astute readers do not need to be told what Bespin is, or for me to regurgitate the linked article (which no doubt was already in it's own tab before you read up to here). I therefore am going to moan. Well, not so much moan but more so raise points of discussion that try go beyond the obvious. Reiterating how great something is doesn't solve problems, just as much as the person who came up with the idea of "webmail" got so far, before realising - 'oh, I hadn't thought of that'.

And that forms the basis of my reservations about Bespin. It's a great idea, but it will, for always, lack the deep system integration of a local client. How do you open-with a website? The upload barrier exists.

Maybe this will not matter so much as we move toward storing everything in the cloud - and therefore do not need an 'open with' on our local filesystem when, for portability's sake, our projects are in the cloud.

But a project is more than just a bit of HTML, isn’t it. A project is images--lots of them. A project is build scripts, build systems even. How are you going to juggle remote accessing text files, but needing to execute them too? No, it would be naive to think that Bespin will ever mean you can ditch TextMate or BBedit. However, it's idiotic for me to think that Bespin is even supposed to be a replacement for a text editor --

Bespin may edit text, but it is not in competition with text editors,Bespin is about flexibility extending beyond capability.

Would it not be lovely to get rid of a lot of the FTP cycling for the sake of modifying a few lines of code? What also, the benefits of simplifying your toolchain and the environment you have to manage locally if the editing can be done via the same server the code is running on?

An API sitting on top of an API, sitting on top of an API is painful; and browsers are notorious for requiring very unpleasant hacks and more effort than is necessary for sometime simple things.

The developers have had to resort to reimplementing a text-box, blinking cursor and all, in Canvas in order to achieve the speed and flexibility needed. Even the scrollbars are Canvas. The DOM is simply too slow, and too broken, to even consider.

Now does this level of hackery mean that Bespin is somehow more complicated, more unmanageable a piece of software than a native application? Let's remind ourselves that TextMate's editor is entirely custom, sub-classed right down to the metal because nothing in OS X was capable enough.

The main difference though is that the web browser is already one application you have to deal with before coming to the web app. The web browser presents a slew of horrendous problems for text editors:

I have to ask myself - it's a great idea, but do I really want to edit text in a browser -- probably the most inappropriate host for a serious app?

It's only inappropriate if you don't treat the web browser, like a web browser. This is where I think I can trust Mozilla. When a web app tries to be an OS, it invariably fails.

A good web app must embrace the browser and live in symbiosis with it. What Mozilla have done thus far, for an 0.1, is therefore very impressive, and very excitement-inducing. It's not like this idea hasn't been invented before, that's not it, but it's more that this idea is being tackled now, instead of remaining one big what if.

I look forward to the creativity everybody other than Mozilla contributes to Bespin, and the direction and oversight Mozilla gives that.

Pros

New paradigm, new things to explore

Simplifies/removes the painful FTP bridge with many projects

Portability!

Cons

System integration is never going to happen. Twice the pain of Eclipse