We've seen some hype lately around the next Eclipse release dubbed E4. The theme of E4 would be to take Eclipse online. This is not the first attempt (I wrote about it 6 months ago), however, now it has turned from a sporadic effort to a full blown platform migration.
The Eclipse Duality
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 (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.
Who Needs an Online IDE?
The trend of taking desktop applications online and providing them as a service (SaaS) 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 and Zoho Writer.
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, Zoho Creator, Bungee Builder, Microsoft PopFly and Yahoo Pipes. 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.
This online IDE roundup cannot be complete without mentioning CodeIDE and ECCO. 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.
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:
- Online IDEs open new capabilities of sharing and collaboration. Consider doing pair-programming with your colleague, which is sitting in another continent.
- This can be even more useful when it comes to outsourcing and your coworker is an occasional developer. For example, I need the services of an expert DBA. I can find one online in elance and work together on my project immediately.
- On-demand services open new possibilities: instead of buying a profiler for $500, maybe I'll just pay for the time which I'm using it.
- Mash-ups: I can use Google Page Creator to design my project's web pages and Yahoo Pipes to define a web service. All as part of the same project. Today, Eclipse is already a mash-up of OSGi services. Tomorrow, it may be a mash-up of web services or REST.
- All the online services I mentioned in this post had to developed their own IDEs. I'm sure future vendors will be more than happy to use an existing online IDE and develop plug-ins on top of it. As the number of online services provided grow, the need becomes more imminent.
I'm just guessing here, but it does open up new directions and opportunities.