Eclipse is an open source development environment that was realized with the objective of modularity. Thus, Eclipse is a platform that can be extended depending on the task. The extension of the Eclipse platform is done by plug-ins. Originally designed as an integrated development environment( IDE) exclusively for the Javaprogramming language, today a variety of current languages such as C++, PHP, Ruby, Scala and others are supported by appropriate plug-ins. Furthermore, the tool also maps additional processes such as the specification, testing and management of different software versions.
Since version 3.0, the basis of Eclipse's software architecture has been aligned with the OSGi software platform, which is based on the use of Java technology. The current version is 3.5, which was made available under the project name Galileo in June 2009.
The development of Eclipse goes back to a source code of the company IBM, which released this in the year 2001 for the further development. IBM chose the license model Common Public License( CPL). This makes it possible to develop so-called closed-source software with the support of the open-source tool Eclipse. Afterwards, the source code remains with the developer, and the software product created can thus also be commercially exploited. In the transition to the now responsible - and legally independent - Eclipse Foundation in 2004, this model of licensing was retained. The Eclipse Foundation is a non-profit organization that coordinates the development of the Eclipse software platform without, however, developing it itself; the software is developed externally.
The Eclipse design concept
The design concept for Eclipse until the development of version 3.0 was to implement it as an integrated development environment (IDE). With version 3.0, however, the design of Eclipse changed fundamentally. Its basis is now Equinox, which is the name of a framework that supplements the specification of the OSGi software platform and implements additional functionalities. This platform is based on Java technology, so that Eclipse is also implemented in Java. In particular, the possibility of extending Eclipse with additional applications is supported by this framework. Thus, Eclipse itself implements the core functionality, which then flexibly loads individual plug-ins for the actual application.
The freely available Eclipse IDE therefore includes, in addition to the so-called Rich Client Platform( RCP), the tools for Java development, the Java Development Tools, as well as the tools for the development of plug-ins, the Plug-In Development Tools.
According to this, Eclipse consists of the Platform Runtime, which is the basic infrastructure for the interaction of various other components. The Rich Client Platform is built on top of this, which in turn consists of various components:
Workbench Realizes the infrastructure of Eclipse, and provides everything needed to display the graphical interface of the so-called perspective. Perspectives consist of views as well as editors, and provide the connection to the plug-ins, which then use the interfaces of Workbench.
Workspace Organizes the user's resources. Here, each project is stored in a separate folder. All changes to the resources are also noted as well as communicated to other tools such as the version control system( CVS).
Team Organizes the interaction of Eclipse and Concurrent Versioning System (CVS).
Help Is used to create and present help texts, e.g. for self-developed plug-ins.
Thereby the Eclipse platform offers a number of interesting functions like refactoring, for interactive debugging or for individual control of the translation.
Plug-ins are used to extend the functionality of Eclipse. This creates an individual working environment in which various tools - organized by the Platform Runtime - interact cohesively.
A common function Eclipse fulfills with regard to the development of Java applications, but extensions exist for a number of different programming languages such as C, C++, C-Sharp (C#), Ruby, Perl, ColdFusion, Python, Fortran, Scala, Groovy etc.. However, Eclipse is not limited to the function of a pure development environment. Thus, among other things, by different projects of the Eclipse Foundation additional interesting additions have arisen. For example, those that support development processes such as Mylyn (task-oriented development) or Saros (distributed pair programming). Also for modeling, for example, with the Eclipse Modeling Framework( EMF), a corresponding project was organized.
In addition to the numerous extensions with regard to a tool that comprehensively maps the software development process, the open structure of the platform also leaves the user with a wide range of options for using it for their own tool development.