Taking a Peek at Bespin
I've long been thinking of a way to work in a distributed manner, sharing development projects on new machines, possibly on a whim. I, as have many others, have been tossing around the idea of a web-based system. Looks like the folk at Mozilla have put together a system for editing a Java project on the web. Enter Bespin.
I've been trying to pull the code and throw it on one of my servers to play with, but there's not a simple WAR kind of deployment, nor does it look like something that easily plugs in behind Apache or Tomcat. Curiously, although it works for developing Java software, at least I think it does, it's written in Python. OK, so that's just a medium between the web page and the host, but it's curious that it isn't written in Java, and isn't set up to run in a Java application server, at least at first glance.
It's a little unclear, but visiting the website leads to a link from whence you can download the source; there's a little list of links on the top of the page give a list of different download formats like zip and bz2, as well as the ability to just browse the source on-line.
There's a read-me file in the root that gives a bunch of instructions that tell how to do a Python build and, hopefully, end up with a self-contained server. I suppose one could proxy through Apache to it, but I've not bothered, especially since the default port would conflict with my Tomcat server.
I'm going to poke around a little more to see what I can find.
More exciting is the interface. Checking out the demo, it looks like it's possibly faster and more powerful than even a locally installed Eclipse responds. I'm going to poke through the code and see what I can see and learn about the interface, both user and server.
When considering setting up such a beast on my own, here's a high-level view of the approach I'd consider.
First, it'd be all Java and WAR deployable, if for no other reason than it's convenient. Any requirements can be included in the WAR, or as necessary put on the shoulders of the server. Additionally, it ensures that there's a Java machine running.
Then, I'd probably take a pretty simple approach to project management and throw something like CVS or SVN in there. There are Java libraries for both, so it'd be pretty straight-forward to make the initial point of the project creating a new project or checking-out an existing one from a source repository.
Then I'd put Ant or Maven (both also Java) in for control of building the application. NetBeans does this, using Ant underneath. As projects are modified, the underlying script would also be modified. This would include the source as well as required libraries and deployables.
The hardest part, and the part I wouldn't want to skimp on. Maybe I'm getting weak in my old age, but I like the helpful bits like auto-complete, formatting, import management, and other suggestions at a key-press. This is the part that intrigues me most about Bespin; the demo looks like it does some or all of that.
Once those bits are in place, it becomes a fairly easy cycle of save edits, run Ant, output results, updating version control at milestones...
An interesting take on the Bespin project is one where Eclipse is used on the back-end: E4/Bespin. It also doesn't have instructions on how to build or deploy as a WAR, but at least since the whole project is built in Eclipse, that should be a short leap from what they've written to getting it done.
Now I just need some time...
I have some thoughts and concerns, though.