Eclipse is an open source IDE or tools platform.
IBM released its own source code into the project in 2001 and set up a consortium to run the project. In February 2004 it became an independent not for profit corporation called the Eclipse Foundation.
It is written in Java but uses its own GUI framework SWT instead of Swing. It does allow users applications to be created with either SWT or Swing. SWT is uses native calls to the operating system instead of emulating the controls in the GUI library as Swing does. Also Swing uses the MVC Model View Controller model whereas SWT uses a more direct, lower level, API.
Eclipse consists of a general purpose platform which is very extendable by adding plugins. So it can be used as a Java development system, or C++, or PHP, or it could be anything else if you write the plugins for it.
The install is very simple (in fact there is no install program as such) all we need to do is extract the files into the required directory, as explained on install page.
In addition to supporting Java and various other languages Eclipse has a very powerful model architecture which a allows the creation of other computer languages.
The following components support such Domain Specific Languages (DSL):
Model To Text
- Acceleo: A standard based template language focused on usability and pragmatism
- Jet: An Eclipse-based code generator framework based on JSP
- Xpand: An efficient code generation framework with a statically-typed template language and support for arbitrary model types.
Model To Model
- ATL: A model transformation language and toolkit, including an ATL transformation engine and an IDE for ATL.
- Operational QVT: Implementation of the Operational part of the OMG QVT (Query/View/Transformation) open standard.
Concrete Syntax Development
- Extended Editing Framework: EEF is a presentation framework for EMF models
- Graphical Modeling Framework Tooling: GMF Tooling is a framework to generate functional graphical editors based on the GMF Runtime.
- Graphiti (incubation): A graphical API that enables the fast and easy creation of graphical tools for any kind of domain models.
- Xtext: A framework for development of programming languages and domain specific languages (DSLs).
- Papyrus (incubation): provides an integrated, user-consumable environment for editing models based on UML and other related languages such as SysML
- MoDisco (incubation): An extensible framework to develop model-driven tools for software modernization projects.
Runtime and Tools
- Agent Modeling Platform (incubation): including Agent Modeling Framework, Agent eXecution Framework, Agent Graphics and Visualization Framework, and Escape.
- EGF: provides an extensible generation framework in order to support complex, large-scale and customizable generations.
- EMFStore (incubation): A model repository for EMF-based models-data. It allows storage, versioning, collaboration, offline work and inteactive merging.
- Tenco: A Model-Relational mapping and runtime database persistence solution for the Eclipse Modeling Framework (EMF) using Hbernate and EclipseLink.
- OCL Tools: An evaluation console for OCL (Object Constraint Language) expressions, and Xtext Editors for Complete OCL documents, Combined OCL in Ecore Models and for individual OCL expressions.