If you’ve just joined me mid-arc, you should probably take a step back and acquaint yourself with what I’m doing here with this little series of posts. I’ll wait…
Basically, I’m going through a slide deck that I present regularly as a means of level-setting an audience. Most people seem to understand that Eclipse is a Java IDE. But those of us “in the know” know that there’s more to Eclipse than that.
Eclipse has this wonderful modular architecture that makes it relatively easy to add and remove functionality. All of the functionality in Eclipse is provided by components. Sometimes these components are called “plug-ins”; the technical term that people “in the know” use is “bundles”.
Eclipse is a Java IDE by virtue of including the Java development tools (JDT) components. The JDT components can be removed from Eclipse leaving behind an IDE with much potential, but lacking general usefulness. The potential can be more fully realized by adding components to support alternative languages. The C/C++ Development Tools (CDT), for example, can be added to turn Eclipse into a C/C++ IDE. Or you can add in the PHP Development Tools (PDT) to make Eclipse a PHP IDE. Or, you can add the JDT, CDT, and PDT to create one IDE to rule them all.
Then you can go and get support for Ruby, TCL, JavaScript, and Python from the Dynamic Languages Toolkit Project (DLTK), or Fortran from Parallel Tools Platform, and more (don’t worry Modeling, you’ll get your day).
We have numerous variants of the IDE theme on the Eclipse Downloads page. Unfortunately, given the combinatorial explosion of choices, it’s impossible for us to provide a ready-made package that’s right for everybody. From the downloads page, you can get an IDE to use as a starting point. From that starting point, you can add the functionality from an Eclipse code repository or from the Eclipse Marketplace Client (MPC) that is part of the new Eclipse Helios release (June 23, 2010).
But Eclipse was never intended to be (just) an extensible IDE. Eclipse is… a Tools Framework (tune in tomorrow).