Tuesday, January 11, 2011

Today, the Eclipse project is embarking on a journey towards web-based development tooling. We don't have too much to show except some initial code written by members of the original Eclipse team from IBM (including myself), a new name "Orion", and a gleam in our eyes.

The initial code is meant to be a seed. What we have today is a fast and scalable code editor that runs in all major browsers, plus some code around it for navigating files and folders, and doing full-text search. This is a humble start, something to kick things off. Longer term, our vision is to enable integration between all kinds of open web-based tools. Have a look at our wiki pages if you want to learn more about Orion.

But wait... "Why would I want to run an IDE in a browser?"

You probably wouldn't. IDEs are big honking applications that take a while to load, use up all your computer's resources, and come loaded with features that you don't even know existed. Believe me, I helped build one of them. Although the Platform is not to blame really, it's the hundreds of plugins that use up all the resources ;-). Anyway, you wouldn't want to jam all that into a single web page or browser tab.

What you would do is use a web browser to access functionality that is important to you as a software developer. Chances are you're already doing this today! For example:

using a web-based bug tracking system like Bugzilla

monitoring your build using a web-based tool like Hudson

reviewing code changes using a tool like Gerrit

reading documentation and searching for code snippets using a browser

browsing other people's code repositories using services like GitHub.

So all we are suggesting is that you move the remaining software development activities to the browser, too. Long term. Very long term if you want. Those who get a lot of value out of the current desktop based IDEs should probably continue to use them for a while, or forever. In the case of Eclipse, the past ten years have seen a tremendous amount of investment in tools that run as plugins in Eclipse, and I wouldn't recommend throwing all that out of the window.

But if you don't get a lot of value, for example if you are doing client-side web development, all you need in addition to the above browser-based tools is:

a decent code editor,

a way to navigate your files and folders,

a way to version-control your files,

and a debugger.

This is exactly what we're trying to build first. We have a code editor and a way to navigate files and folders, we started working on a Git integration, and for the debugger we plan to integrate well with Firebug.

For this to make sense as a way to develop software, you'd want all those browser-based tools to work together. Ideally, you'd want something similar to the tight integration you typically get from a classic IDE, but without building another IDE. We want to build something that works well with existing tools out there on the web, and we cannot ask others to buy into a new programming model that we may come up with. Therefore, our approach has to be based on well-proven web architectures - using hyperlinks to navigate between different tools and resources, making data accessible in a RESTful way, and using web technologies like HTTP, JSON, OAuth, OpenID, and others.

Over the next few weeks and months, we hope to sign up others who would like to work with us on the vision, the development principles, the architecture, and thecode. The intent is to start a new project at eclipse.org soon - see also Mike Milinkovich's blog post on Orion for more information on the project creation aspect. Until then, the code is going to be developed in the e4 incubator project, which is pretty open to contributions from anyone. If you are interested in participating, let me know.

If you've read this far, you might just be the person we've been waiting for. Read our wiki pages, download the code and try it out, or join us on IRC, we're using #eclipse-orion on irc.freenode.net.

I was expecting to see something in the blog or the wiki that talked about Bespin. There are obvious similarities. What are the differences in the goals or implementation that made you create something new? Any plan to join forces or anything?

Hi Boris, I´m concerned about usability, IxD=Interaction design. I read you talking about code but we developers do work against UI elements, not methods. Actually, an orchestation of UI elements and supporting methods that determine the interaction dynamics. IMO this has to be addressed in the first place. It is not enough to have a decent interaction, a decent editor: it has to be superb. As with security, it has to be taken into account from the very beginning else it´s too late. Notice that this is not about graphics design, although it has to be done and well for the UI to be superb. I´m a rare combo of SW developer and IxD, with too many years of experience and I know what I say. Usually a guy wearing a developer´s hat is not doing highly usable UIs. For example, I have to switch hats to set myself in design mode. Oh, how I'd like to get involved!

Indeed this is an incredibly exciting development. The screenshots seem to show a bias towards providing a web based IDE for JavaScript development. Looking forward for the updates on web based GUI tools for tasks such as data mapping.