Before looking deeper into this trend, there's a much needed distinction to be made. Eclipse, as a brand, stands for two different entities: the Eclipse IDE (Integrated Development Environment) and the Eclipse RCP [3] (Rich Client Platform). It's easy to get confused, but it's not the same thing. It's almost like the difference between Microsoft VisualStudio and the .Net platform.
The Eclipse IDE is a great tool for software development. You can use it to develop in Java, C++, Ruby and many other languages. On the other hand, the Eclipse Platform is a framework for developing Java based cross-platform desktop application. The Eclipse IDE uses the Eclipse Platform as its' base. The Eclipse IDE is the best tool for developing applications for the Eclipse platform, however, one may use any IDE which supports Java development for that purpose.
In this post, I will focus on the Eclipse IDE, looking forward to E4.
The trend of taking desktop applications online and providing them as a service (SaaS [4]) is not new. It was only a matter of time until it gets to the IDEs. It's taking longer for the IDE market to be affected, probably because it is a much smaller market than, let's say, word processors. The online word processors market is already saturated with products like Google Docs [5] and Zoho Writer [6].
Most online IDEs are very specific (unlike generic IDEs like Eclipse), geared towards a given service or platform. The IDE is not the service being provided, but rather a tool for the user to consume other services. For example, the service can be an online database and the online IDE would allow developing solutions on top of this service: database definition, screen design, coding and even debugging. The deployment is seamless, using the provided service.
Examples for such services are Coghead [7], Zoho Creator [8], Bungee Builder [9], Microsoft PopFly [10] and Yahoo Pipes [11]. These are all proprietary services. Some use their own languages and all of these services are restricting the deployment to their servers. This is usually their underlying business model: providing the service for executing the complete application.
There are a few services which are more generic by nature, based on standard languages. For example, Heroku [12] is using Ruby on Rails (RoR) and can be used develop and deploy a full RoR application. A unique feature in Heroku is the ability to export your code. Since the code is generic RoR, you can then deploy it on any server that supports RoR. Heroku is based on Amazon EC2 [13] platform. I won't be surprised to see Python-oriented services based on Google's AppEngine [14] soon. Another interesting example in this area is AppJet [15] which uses JavaScript.
This online IDE roundup cannot be complete without mentioning CodeIDE [16] and ECCO [17]. Both provide completely generic online IDEs. They seem like perfect tools for people learning how to program, allowing the user to instantly start coding and see the results. Although these are not complete IDEs, they provide a glimpse of what a generic online IDE might look like.
All the services above have mainly two thing in common: they do not require any installation and moving from coding to execution is just a few clicks away. Usually, there are considerable overheads in IDE installation, environment configuration and server deployment and execution. This can all be avoided, saving a great deal of time (and agony, speaking from personal experience).
Nevertheless, none of these services is even close to the rich feature set you get from a true desktop IDE like Eclipse or VisualStudio. This gap is not unique to IDEs, though. People switching from Microsoft Word (or Apple Pages) to Google Docs will feel the difference. Sure, Google Docs has all the basic features. However, it is still very far from a full-fledged desktop word processor.
You can expect this to change. The following extract taken from an article in CIO magazine [18], quoting Gartner [19] analyst Neil MacDonald:
The move to server-agnostic applications is still in its infancy but will soon have a major effect on enterprise computing. The legacy applications won't go away, even if the exciting stuff is being done on Internet-based apps, they said. But it won't stay that way. Today, 70 percent to 80 percent of corporate applications require Windows to run, but the Gartner analysts expect a tipping point in 2011, when the majority of these applications will be OS-agnostic, such as Web applications.
The Eclipse IDE is just joining the crowd. We're going to see an increasingly large number of online applications replacing their desktop counterparts. IDEs that won't offer an "online option" will be falling behind.
As I mentioned, there are some immediate benefits from having an online IDE, especially: no installation and instant deployment. IMHO, this is just the tip of the iceberg. Here are just a few thoughts of what we might expect:
I'm just guessing here, but it does open up new directions and opportunities.
Links:
[1] http://wiki.eclipse.org/E4
[2] http://zvikico.typepad.com/problog/2007/10/eclipse-goes-on.html
[3] http://wiki.eclipse.org/index.php/Rich_Client_Platform
[4] http://en.wikipedia.org/wiki/SaaS
[5] http://docs.google.com/
[6] http://writer.zoho.com/
[7] http://coghead.com/
[8] http://creator.zoho.com/
[9] http://www.bungeelabs.com/
[10] http://www.popfly.com/
[11] http://pipes.yahoo.com/
[12] http://heroku.com/
[13] http://www.amazon.com/gp/browse.html?node=201590011
[14] http://code.google.com/appengine/
[15] http://appjet.com/
[16] http://www.codeide.com/
[17] http://ecco.sourceforge.net/
[18] http://www.cio.com/article/331963/Gartner_Explains_Why_Windows_Is_Broken/2
[19] http://gartner.com/
[20] http://en.wikipedia.org/wiki/Pair_programming
[21] http://www.elance.com/
[22] http://pages.google.com/
[23] http://en.wikipedia.org/wiki/Representational_State_Transfer
[24] http://zvikico.typepad.com/