Eclipse is a free software / open
source platform-independent software framework for delivering what the project
calls "rich-client applications", as opposed to "thin client" browser-based
applications.
A D V E R T I S E M E N T
So far this framework has typically been used to develop IDEs
(Integrated Development Environments), such as the Java IDE called Java
Development Toolkit (JDT) and compiler that comes as part of Eclipse (and which
are also used to develop Eclipse itself). However, it can be used for other
types of client application as well. See the BitTorrent client Azureus for
example.
Eclipse is also a community of users,
constantly extending the covered application areas. As an example, the recently
created EMP Eclipse (Top Level) Modeling Project covering most areas of Model
Driven Engineering.
Eclipse was originally developed by IBM as the successor of its VisualAge family
of tools. Eclipse is now managed by the Eclipse Foundation, an independent
not-for-profit consortium of software industry vendors. Many notable software
tool vendors have embraced Eclipse as a future framework for their IDEs, among
them Borland, BEA Systems, IBM Rational and Xilinx FPGA Development.
The basis for Eclipse is the rich client platform (RCP). The following
components constitute the rich client platform:
* Core platform (boot Eclipse, run plugins)
* OSGi (a standard bundling framework)
* SWT (a portable widget toolkit)
* JFace (file buffers, text handling, text editors)
* The Eclipse Workbench (views, editors, perspectives, wizards)
Eclipse's widgets are implemented by a third generation widget toolkit for Java
called SWT, unlike most Java applications, which use Sun's first and second
generation toolkits (AWT and Swing, respectively). Eclipse's user interface also
leverages an intermediate GUI layer called JFace, which simplifies the
construction of applications based on SWT.
Eclipse employs plugins in order to provide all of its functionality on top of
the rich client platform, in contrast to some other IDEs where functionality is
typically hard-coded. This plugin mechanism is a lightweight software
componentry framework and for example allows Eclipse to support other languages
in addition to Java. Separate plugins have been created that add support for,
among others, C/C++ (CDT), CFML (CFEclipse), Fortran (Photran), Lua (LDT), PHP (PHPeclipse),
Perl (EPIC), Ruby (RDT), Python (PyDev), telnet and database development. There
is also a plugin facilitating Wikipedia editing: Plog4U. The plugin architecture
supports writing any desired extension to the environment, such as for
configuration management. It does not have to be used solely to support other
programming languages.
Eclipse is also an example of a SCID, an IDE which stores its code in a database
rather than a flat text file.[1] This allows for advanced refactoring
techniques.
|