Will Bespin really end up with multiple backends?

Google groups thread

Bespin has the idea of multiple backends attaching to the same client. Right now, Python is apparently “winning” while Java has fallen behind and PHP appears to have faded away.

The situation is very analogous to Shindig (http://incubator.apache.org/shindig/) which has a strong Java back-end, a PHP back-end that took a long time to get started in earnest and AFAICT from a quick glance has tapered off, and a number of non-starters.

I do wonder whether something like this is really viable – can you have a vibrant ecosystem of back-ends in different languages? Granted, there are hundreds of implementations of SMTP, FTP, and so on, in all the languages of the rainbow. Those are actual protocols based on strong standards. Likewise, Shindig had a fair crack at it because it’s based on the OpenSocial standard (but the diversity effort is probably hampered by the fact that most companies who want to be OpenSocial hosts tend to fall in the Java camp).

Bespin would need to formalise things and establish proper standards to support multiple backends. Nothing as onerous as the IETF standards, but still, they’d need to nail down all the subtle issues and edge cases in order to support multiple backends. Good for cleanliness perhaps, but at the expense of project velocity. Years ago, I asked SpringSource’s Rod Johnston about why one should use Spring over the upcoming EJB3, and one of his reasons – quite rightly – was that his code was available NOW while the committee-driven EJB standard and subsequent implementations were a long way off. In other words, Spring demonstrates that working, open, code is in many respects far more powerful than a standard. I can’t imagine Bespin will want to formally document its protocols; instead it will rely on code. But of course, if the code is a moving target, how easy will it be for different backends to keep up?

Also, how motivated will the second, third, and fourth guys be? It’s more fun being the first to see the concept become reality; less so to be building a port from one language to another. As with the previous point, though, I stand to be corrected; some people might enjoy the engineering challenge of building a parallel backend. (Maybe I’m being solipsistic here, as I’m personally 20x more motivated by user stories than implementation details.)

Java hosting is notoriously painful compared to the ease of cheap PHP hosting, so I can see the argument for both; companies will want to host Bespin on their own shiny enterprise Java servers, while rebellious little startups will want to do the same thing for a sliver of the cost on commodity iron.

Update: Ben Galbraith responds

5 thoughts on Will Bespin really end up with multiple backends?

  1. Pingback: Multiple Bespin Servers? « Ben Galbraith’s Blog

  2. Hi mate :)

    Ben talked about the published API. From the beginning Bespin has meant many things, and being Mozilla each piece is very open.

    We have had a few people work on PHP, Ruby, Python, and Java servers (that we know of). Although our team is too small to invest in multiple servers, we want to be enablers.

    Also, Bespin will be able to talk to multiple servers. I would love to be able to launch Bespin and edit my local files, files on bespin.mozilla.com and on other sites such as Github and the like.

    Cheers,

    D

  3. I wrote a post on why I think a Java backend is a good idea, and it indirectly illustrates why multiple backends are a good idea. Part of what Mozilla and Bespin are doing is throwing ideas and code out in the community to spark innovation, which generally comes from seeing an idea and tweaking it for a slightly different different use case that the original authors didn’t have in mind. By not getting too wrapped up in http://bespin.mozilla.com as the end goal of Bespin and encouraging multiple backends, Bespin could go in all sorts of new directions that ultimately benefits the community.

    I think your main point is a significant engineering cost to having multiple backends on the part of the project, let alone the backend developer, which I completely agree with. The good news is Ben and Dion seem to be willing to take it on, here’s to hoping for a future with many flavors of Bespin.

  4. @Don, @Dion Thanks for your feedback – I hope it happens, for purely selfish reasons :) I love the idea of self-hosting my personal projects and being able to use the same IDE in the enterprise, where Java is the more likely choice.

    @Alexander EC2 might be okay for a startup or SME, but for my personal projects, its setup is ridiculously complicated and non-standard. It also costs a minimum of $72/month, a non-starter for most individuals and open-source projects. Maybe there are better options out there, but I’m not aware of anything matching the convenience of running up a PHP framework like WordPress or MediaWiki.

Leave a Reply