Apr 14, 2008

Who Needs an Online IDE?

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

There are a few services which are more generic by nature, based on
standard
languages. For example, Heroku
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 platform. I won't be surprised to
see Python-oriented services based on Google's AppEngine
soon. Another
interesting example in this area is AppJet
which uses JavaScript.

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.

The
Future

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.

Comments

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

There are a few services which are more generic by nature, based on
standard
languages. For example, Heroku
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 platform. I won't be surprised to
see Python-oriented services based on Google's AppEngine
soon. Another
interesting example in this area is AppJet
which uses JavaScript.

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.

The
Future

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.