Eclipse (software)

From Wikipedia, the free encyclopedia

This article is about the software framework and Java IDE. For the constraint logic programming language, see ECLiPSe.
Eclipse
Image:Eclipse-logo.png

Eclipse 3.0.2 with the Visual Editor plugin
Developer: Eclipse Foundation
Latest release: 3.2.1 / September 21, 2006
OS: Cross-platform
Available language(s): Multilingual
Use: Software development kit
License: Eclipse Public License
Website: http://www.eclipse.org/

Eclipse is an open source platform-independent software framework for delivering what the project calls "rich-client applications", as opposed to "thin client" browser-based applications. So far this framework has typically been used to develop Integrated Development Environments (IDEs), 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, such as the BitTorrent client Azureus.

Eclipse is also a community of users, constantly extending the covered application areas. An example is the recently created Eclipse Modeling Project, covering most areas of Model Driven Engineering.

Eclipse was originally developed by IBM as the successor to 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 Adobe, Borland, SAP AG, BEA Systems, Rational Software and Google.

Contents

[edit] Architecture

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
  • the Standard Widget Toolkit (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 widget toolkit for Java called SWT, unlike most Java applications, which use the Java standard Abstract Window Toolkit (AWT) or Swing. 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 (and including) 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. In addition to allowing Eclipse to be extended using other programming languages such as C and Python, the plugin framework allows Eclipse to work with typesetting languages like LaTeX, networking applications such as telnet and database management systems. The plugin architecture supports writing any desired extension to the environment, such as for configuration management. Java and CVS support is provided in the Eclipse SDK. It does not have to be used solely to support other programming languages.

The Eclipse SDK includes the Eclipse Java Development Tools, offering an IDE with a built-in incremental Java compiler and a full model of the Java source files. This allows for advanced refactoring techniques and code analysis. The IDE also makes use of a workspace, in this case a set of metadata over a flat filespace allowing external file modifications as long as the corresponding workspace "resource" is refreshed afterwards.

[edit] Eclipse projects

Eclipse is composed of many different projects. Some projects are listed below. A complete list can be found here.

  • The Eclipse Project per se which includes the Eclipse Platform, Eclipse Rich Client Platform (RCP) and the Java Development Tools (JDT).
  • Test and Performance Tools Platform (TPTP) which provides a platform that allow software developers to build test and performance tools, such as debuggers, profilers and benchmarking applications.
  • Web Tools Platform project (WTP) extends the Eclipse platform with tools for developing Java EE Web applications. It's composed of: source editors for HTML, JavaScript, CSS, JSP, SQL, XML, DTD, XSD, and WSDL; graphical editors for XSD and WSDL; Java EE project natures, builders, and models and a Java EE navigator; a Web service wizard and explorer, and WS-I Test Tools; database access and query tools and models; and tools for managing unit test servers.
  • Business Intelligence and Reporting Tools Project (BIRT), an Eclipse-based open source reporting system for web applications, especially those based on Java EE.
  • Visual Editor project (VE) a framework for creating GUI builders for Eclipse
  • Eclipse Modeling Framework (EMF) a modeling framework and code generation facility for building tools and other applications based on a structured data model, from a model specification described in XMI.
  • Generative Modeling Tools (GMT) a set of modeling tools for example for performing QVT model transformations.
  • Graphical Editor Framework (GEF) allows developers to take an existing application model and easily create a rich graphical editor.
  • UML2 an implementation of the UML 2.0 metamodel for the Eclipse platform designed to support the development of modeling tools.
  • Eclipse Communication Framework (ECF) is aimed to enable the creation of communications applications on the Eclipse Platform.
  • Data Tools Platform Project (DTP)
  • Parallel Tools Platform (PTP) delivers a portable, scalable, standards-based parallel tools platform that enables the integration of tools specifically suited for parallel computer architectures.
  • Embedded Rich Client Platform (eRCP) intent is to extend the Eclipse Rich Client Platform (RCP) to embedded devices. eRCP is largely a set of components which are subsets of RCP components. It basically enables the same application model used on desktop machines to be used on devices.
  • Device Software Development Platform (DSDP) is an open source collaborative software development project dedicated to providing an extensible, standards-based platform to address a broad range of needs in the device software development space using the Eclipse platform.

[edit] Language IDE projects

  • AspectJ is an aspect-oriented language extension to Java
  • C/C++ Development Tools Project (CDT) is working towards providing a fully functional C and C++ Integrated Development Environment (IDE) for the Eclipse platform.
  • COBOL IDE for Eclipse Subproject (COBOL) will build a fully functional COBOL Integrated Development Environment (IDE) for the Eclipse platform.
  • Java Development Tools (JDT) provides the tool plug-ins that implement a Java IDE supporting the development of any Java application, including Eclipse plug-ins.
  • Photran (photran) is a fully functional Fortran Integrated Development Environment (IDE) with Refactoring support.
  • PHP IDE Project is working towards providing a fully functional PHP Integrated Development Environment framework for the Eclipse platform.
  • Wolfram Workbench ([1]) is an IDE based on Eclipse (also available as an Eclipse plugin) for the Mathematica language.

[edit] History

Eclipse began as an IBM Canada project. It was developed by OTI (Object Technology International) as a replacement for VisualAge which itself had been developed by OTI. In November 2001, a consortium was formed to further the development of Eclipse as open source. In 2003, an IBM-independent foundation was created.

Eclipse 3.0 (2003) selected the OSGi Service Platform specifications as the runtime architecture.

[edit] Callisto

In 2006 the Eclipse Foundation coordinated its 10 open-source projects, including the Eclipse Platform 3.2, to release on a same day. This simultaneous release was known as the Callisto release.

[edit] Plug-in directories

Eclipse has always been all about plug-ins. The most popular and useful plug-ins directories are

[edit] Licensing

Eclipse was originally released under the Common Public License, but was later relicensed under the Eclipse Public License. The Free Software Foundation has said that both licenses are free software licenses, but are incompatible with the GNU General Public License (GPL). [2] Mike Milinkovich, of the Eclipse Foundation has commented that moving to the GPL will be considered when version 3 of the GPL is released. [3]

[edit] Localization

As of July 2006, the following language packs are available for Eclipse 3.2.x (in alphabetical order): Arabic, Simplified Chinese, Traditional Chinese, Czech, French, German, Hungarian, Italian, Japanese, Korean, Polish, Portuguese (Brazil), Russian, and Spanish. [4]

[edit] References

[edit] See also

  • NetBeans — the first modular, open source, multi-language platform and IDE for Java written 100% in Java.
  • IntelliJ IDEA, developed by JetBrains, Inc. Supports extension through their OpenAPI.
  • JDeveloper, by Oracle, became free since June, 2005.
  • JBuilder, future editions will be based on Eclipse.
  • EasyEclipse, bundled distributions of the Eclipse IDE.
  • ATL — a QVT-like language functioning on top of MDR-NetBeans and Eclipse/EMF, together with a significant collection of model transformation examples available from the GMT EMP project.
  • Comparison of integrated development environments
  • Aptana, Web IDE based on Eclipse
  • MyEclipse, a commercial library of tools and IDEs for Eclipse
  • GForge Advanced Server - Collaboration tool with multiframe view through Eclipse integration for multiple functions.

[edit] External links

[edit] Official sites

[edit] Unofficial sites