Tuesday, January 11, 2011

Orion

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 the code. 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.