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?