The Six Pillars of Eclipse

In 2005, we spent a lot of time talking about Eclipse as being more than just a Java IDE. However I don’t think we did a very good job saying what Eclipse really is. EclipseCon is quickly approaching, so I would like to try to take the opportunity to start educating people on what Eclipse is about.

The biggest challenge I see is that Eclipse is many things to many different people. It is relevent to PHP developers, RTOS developers, mobile phone developers, Java developers, end user software developers, report developers, testers, architects, etc, etc. Therefore, I am hoping some type of categorization/ topology might help people understand Eclipse. Some of us have been brainstorming a categorization that we are calling ‘The Six Pillars of Eclipse’.

Here is a quick summary. You feedback and comments would be appreciated.

Pillar 1 – Tools for Enterprise Developers

Most people know Eclipse for this pillar. These are the Java tools, web tools, testing and reporting tools, etc. The technology in this pillar are focused on frameworks and exemplary tools that are used by companies building tools for developers that are building enteprise applications. Some of the projects that fit into this pillar would be JDT, Web Tools, BIRT, TPTP, CDT, PHP IDE, etc.

Pillar 2 – Tools for Embedded and Device Developers

Eclipse has quickly become the dominant platform for vendors suppling tools to embedded and device developers. The technology in this pillar considers issues like target management, device debugging, large scale C/C++ development, J2ME, etc. Some of the projects that fit into this pillar would be DSDP and CDT.

Pillar 3 – Tools for Web 2.0

This is very much an emerging pillar. The new AJAX Tools Framework is a great example of technology in this pillar. I hope we will also see more projects focused on Web 2.0 and mashups.

Pillar 4 – SOA and Application Lifecycle

Another emerging pillar are the projects that are focused on service oriented architecture and application lifecycle management. This projects are dealing with a lot of the issues that are important to architects and IT strategists. Projects in this pillar would be STP, ALF, Corona

Pillar 5 – Rich Client Platform / Deployment Platforms

I am tempted to call this the RxP Pillar, since I can easily see the Equinox OSGI runtime being used on clients, servers (RSP), contrained devices (eRCP), etc. RCP is focused on issues like component models, making it easy to deploy and manage applications, multi-platform support, version compatibility, etc.

Pillar 6 – Application Frameworks

There are a number of Eclipse projects that are developing technology to help developers embedded certain functionality into an application. Look at Eclipse Communitcation Framework (ECF), BIRT reporting engine, EMF, GEF, etc. They aren’t really focused on tools but on functionality that you embedded into an application. I see this as being a big area of growth for Eclipse. We will see projects that focus on horizontal and vertical frameworks that will help people to build applications. Each project will focus on the issues (ex. open standards) in their specific domain.

So what do you think? Does this make sense? Am I missing something or is this just too much detail?

5 Responses to The Six Pillars of Eclipse

  1. I would find it helpful to distinguish between tools (e.g. SDK, WTP, CDT, …) and runtimes (e.g. RCP, BIRT engine, GEF, …) before going into the details.

  2. AlBlue says:

    Oh good grief … please don’t tarnish Eclipse’s good name by tying it to the Web 2.0 proto-bubble. You’ll look back on this post in a year’s time and be emabarrased that you said that.

    That said, you have a good point about Eclipse. It does mean things to different people. It’s not helped by the nomenclature on the Eclipse website. For example, if you want to download the Java IDE, you go to ‘The Eclipse Project’ instead of ‘The Tools Project’. And when you do download the Java IDE, instead of using its feature name JDT, it’s suddenly called the Eclipse SDK, as if all software needs to be built can be done so within one tool. It reminds me of the time that Sun migrated from JDK to SDK ‘because it had corba stuff in it’.

    Frankly, if the walls were more firmly defined between what is the Java toolset and what is the Eclipse platform/ecosystem/foundation, then it wouldn’t be as confusing. But to many people, Eclipse = Java IDE, simply because that’s what the public name is given on the Eclipse website.

  3. zx says:

    I say keep it simple. I’d just phrase it in terms of who the end users are:

    * Tool Creators (plug-ins)
    * RCP
    * EMF/GEF/ECF/etc…
    * Programmers(?)(Java, PHP, etc…)
    * JDT
    * CDT
    * Ruby on Rails IDE
    * End-users
    * Consistency

    It all depends on your persona, imho.

    Try explaining to college students what RCP is. It wasn’t until I physically, by hand, created a simple RCP application in front of them that they had a better idea.

    I share similar sentiments with Alex regarding ‘Web 2.0’ but I feel like there would be no harm in having tooling for the tech.

  4. Ian Skerrett says:

    Boris,

    Good point, we need to make sure people understand Eclipse has runtimes.

    AlBlue,

    Thanks for keeping me honest.ūüôā Trust me there are many things I am probably ashamed of but hopefully getting feedback early, I don’t say it too often.ūüôā

    That being said I do believe there is a new style of tools that support AJAX, RIA, Mashups, etc. What do we call this?

    Also, I must shameless admit that part of the message is to appeal to the press. The press is writing about this stuff. I know a lot is hype but I do believe a lot is real.

    btw, I agree about the comments on the web site. If we do these Pillars correctly, maybe it will give us a framework for reorganizing some of the content.

    zx,

    I agree it all depends on your persona and I’d like to use the pillars to start guiding people. I’m concerned you have too many.

    Thanks everyone for the comments. Keep them coming.

  5. zx says:

    I’m a moron Ian, sorry.

    I was trying to break up the offerings based on categories, similar to how I wrote it here:
    http://www-128.ibm.com/developerworks/opensource/top-projects/eclipse-starthere.html?ca=dgr-lnxw09LearnEclipse

    Instead of Java Technology developers, I’d replace it with a more general developer role (regardless of language, CDT, JDT, COBOL, etc…)

    Good luck in trying to organize thisūüôā

%d bloggers like this: