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.

15 comments:

Lars Vogel said...

Congratulations. Sounds like an exciting projectd for the Eclipse community. I hope to find some time to look at the code.

Mik Kersten said...

Great to see you pushing this next step of web/IDE convergence Boris.

petar said...

Congratz guys. Hope to be able to start using it really soon :)

Mark Phippard said...

Looks interesting.

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?

hannescarl said...

I really like the idea about moving Eclipse to the server-side. Rather than for Software-Development purpose but more as a platform for server-side workbenches.

There is a lot of server-side software out there which needs a UI for e.g. configuration management.

I could also imagine running a web IDE for all those server-side programming languages like PHP etc.

Nick said...

DEs 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.

That sounds like an argument in favor of moving IDEs to the server. Do your development on a cheap computer with a big screen.

T T said...
This comment has been removed by the author.
T T said...

This is a sensational idea and something that I look forward to. Only just the other day, I was hoping something like that would happen. Certainly this would be handy for developing on a netbook.

Mark said...

How about the work that is going on with RAP?

Krishna said...

Congratulations Guys. Seems very interesting and exciting too. Waiting to see more.

aviral said...

Is there a chance I develop my Desktop app and can make it Web App very easily with this eclipse + orion combination

Boris Bokowski said...

@Mark - RAP is about writing in Java to Eclipse (desktop) APIs and making that run in a browser. Orion is about writing in JavaScript/HTML/CSS to HTTP APIs.

@aviral - you are probably best served by RAP.

Boris Bokowski said...

@Mark Phippard - Bespin has been renamed Skywriter, and very recently has been merged into ACE and the Cloud9 IDE. There are no plans to merge forces, but we are talking to the Cloud9 team.

Juan Lanus said...

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!

australia web development said...

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.