Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Web-based IDEs to become mainstream?

Web-based IDEs to become mainstream?

Leia em Português

This item in japanese

Last week Mozilla released Bespin, their web-based framework for code editing and only a few days later Boris Bokowski and Simon Kaegi implemented an Eclipse-based Bespin server using headless Eclipse plug-ins. With the presentation of the web-based Eclipse workbench at EclipseCon and the release of products like Heroku, the a web-based IDE and hosting environment for RoR apps it seems that web-based IDEs might soon become mainstream.

With Bespin Mozilla aims to deliver an open, extensible, web-based framework for code editing that tries to increase developer productivity, enable compelling user experiences, and promote the use of open standards:

Based upon discussions with hundreds of developers, and our own experience developing for the Open Web, we’ve come up with a proposed set of features along with some high-level goals:

  • Ease of Use - the editor experience should not be intimidating and should facilitate quickly getting straight into the code
  • Real-time Collaboration - sharing live coding sessions with colleagues should be easy and collaboratively coding with one or more partners should Just Work
  • Integrated Command-Line - tools like vi and Emacs have demonstrated the power of integrating command-lines into editors; Bespin needs one, too
  • Extensible and Self-Hosted - the interface and capabilities of Bespin should be highly extensible and easily accessible to users through Ubiquity-like commands or via the plug-in API
  • Wicked Fast - the editor is just a toy unless it stays smooth and responsive editing files of very large sizes
  • Accessible from Anywhere - the code editor should work from anywhere, and from any device, using any modern standards-compliant browse

The current release of Bespin is 0.1 and it is an initial prototype that includes support for basic editing features, such as syntax highlighting, large file sizes, undo/redo, previewing files in the browser, importing/exporting projects, etc.

For more information on Bespin you can try the demo  or see the source code.

Only a few days after the release of Bespin Boris Bokowski and Simon Kaegi implemented an Eclipse-based Bespin server using Eclipse components:

We looked at Bespin and asked, wouldn't it be great if Eclipse could play in this space too? Wouldn't it be cool if we could implement a Bespin server using Eclipse plug-ins that already exist?

Well... that Eclipse-based Bespin server is available now, after two days of development!

Simon Kaegi and I locked ourselves into a room and just implemented it. Today, we are declaring success, and are sharing the code as part of the e4 project with anyone interested. If you would like to give it a spin, check out this wiki page.

The Eclipse IDE, as you know it, is an OSGi-based application, and is built entirely out of components (called plug-ins or bundles). Many of these components can run headless, on a server, such as the underlying resource model, the incremental Java compiler, etc. Using the headless components, it was very easy to implement the Bespin client-server API. Like Mozilla's Bespin server, our server supports browsing files and folders, and editing files. In addition to that, we implemented extra features such as showing compile errors and warnings, and checking out projects from CVS servers using anonymous CVS.

This project is an ongoing work within the e4 community effort, for building the next generation of the Eclipse Platform and provides an experimental implementation of Bespin's client-server API.

One more product that follows this paradigm is Heroku , a web-based IDE and hosting environment for Ruby on Rails applications which has features like:

  • Instant Deployment
  • Online Editing
  • Git support
  • Easy collaboration
  • Fully Integrated Stack
  • Elastic Performance
  • Rails Console
  • Command-Line Collaboration
  • and more

It seems Heroku has made a very good first impression to Eclipse committer Elias Volanakis and has made him wonder about similar efforts in the Java space:

After all if the app has to be on the web and source == binary (Ruby is interpreted), why not put the IDE on the web too? Having the tools, the code and the runtime environment on-line makes several things easier:

  • Start working in a snap: Instant access to the source code from anywhere. No need to set-up an IDE. No need to set-up a local Ruby on Rails environment. No need to check out any code. Your data is there.
  • Instant collaboration: create a developer account. Send link to log-in page to developer. Start collaborating. (I hope it will support collaborative editing).
  • Deployment of the app is trivial. No need to find and configure a suitable server.
  • The "hosted-everything" aspect could make a great "source-forge-with-hosting" combo. Imagine finding a good web-application and just having to click on "deploy and run this on my account" for giving it a test drive.

This seems to be an excellent fit for Ruby and I'm looking forward to giving it a test-drive

Now, how does it apply to Java web-apps?

Another interesting project in this space is codepad, which is an online compiler/interpreter, and a simple collaboration tool: is an online compiler/interpreter, and a simple collaboration tool. It's a pastebin that executes code for you. You paste your code, and codepad runs it and gives you a short URL you can use to share it. Paste the URL into chat or email to get help or to show someone how to do something. Or just try things out when you don't have an interpreter handy. It works well on many phones. 

There are more web-based IDEs with various degrees of maturity and breadth of features like:

With all those new projects surfacing what do you think, are we going to see web-based IDEs becoming the norm in the near future?

Rate this Article