Eclipse (software)
From Wikipedia, the free encyclopedia
Eclipse | |
Eclipse 3.0.2 with the Visual Editor plugin |
|
Developer: | Eclipse Foundation |
---|---|
Latest release: | 3.2.2 / February 12, 2007 |
OS: | Cross-platform |
Available language(s): | Multilingual |
Use: | Software development |
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 (ECJ) 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
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 software tool vendors have embraced Eclipse as a future framework for their IDEs.
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 is 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.
- Buckminster (Buckminster) is an open source Eclipse component assembly project.
- Corona (Corona) is a tools services and collaboration framework.
- Dash (Dash) is a place where the community itself can collaborate on tools for community awareness and collaboration in support of the ultimate objective of committer quality and cooperation.
- Eclipse Modeling Framework Technology (EMFT) was initiated to incubate new technologies that extend or complement EMF.
- Graphical Modeling Framework (GMF) is a generative component and runtime infrastructure for developing graphical editors based on EMF and GEF.
- Model Development Tools (MDT) focuses on big M modeling within the Modeling project.
- Mylar (Mylar) is a task-focused UI for Eclipse that reduces information overload and makes multi-tasking easy. It does this by making tasks a first class part of Eclipse, and integrating rich and offline editing for repositories such as Bugzilla, Trac, and JIRA.
- SOA Tools Platform Project (STP) is project to build frameworks and exemplary extensible tools that enable the design, configuration, assembly, deployment, monitoring, and management of software designed around a Service Oriented Architecture(SOA).
[edit] Language IDE projects
- AspectJ Development Tools (AJDT) supports the Java language extension AspectJ.
- C/C++ Development Tooling 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.
- Dynamic Languages Toolkit (DLTK) will be framework for tool vendors, researchers, and end-users who rely on dynamic languages (like TCL, Python, Ruby, Lua and Groovy).
- EPIC ([1]) is an open source Perl IDE based on 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 Development Tools (PDT) project is working towards providing a fully functional PHP Integrated Development Environment framework for the Eclipse platform.
- PyDev ([2]) is a fully functional Python Integrated Development Environment (IDE) with Refactoring support, and graphical debugging.
- RadRails ([3]) is an IDE for Ruby on Rails
- Ruby Development Tools (RDT) is an editor for programs made in Ruby language
- Wolfram Workbench ([4]) 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 (released in 2004) 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] Europa
In 2007 the Eclipse Foundation will coordinate more than 22 open-source projects to release on the same day. This release will be known as the Europa release
[edit] Plug-in directories
Since the plug-in model has been a key feature since the inception of Eclipse, a number of websites have started hosting plug-ins as Eclipse's popularity has increased. The most popular and useful plug-ins directories are
- Eclipse Plugin Central (EPIC) - Eclipse plug-ins portal. Now part of eclipse.org.
- Plug-ins listing on Eclipse.org
- Eclipse plugin site - Another very popular eclipse plugin directory.
[edit] Eclipse-based products
- IBM WebSphere Studio Homepage Builder, an entry level Web authoring tool for creating and publishing Web sites. Provides an easy-to-use interface, templates and wizards
- IBM WebSphere Studio Application Developer, a build to integrate solution for accelerated development and integration of complex applications
- Rational Application Developer for WebSphere Software, supporting design, development, analysis, testing, profiling and deployment of Java-based applications.
- Borland JBuilder 2007, based on Eclipse [5]
- Bostech ChainBuilder ESB provides an easy to use graphical method for creating JBI Service Assemblies for an Enterprise Service Bus architecture
- CodeBeamer, Collaboration and Application Life Cycle Management Platform for distributed development using SVN
- Compuware OptimalJ, a model-driven development environment for Java.
- Intel VTune Performance Analyzer for Linux, a Linux-based environment providing optimization hints for Intel processors.
- Sybase WorkSpace, a unified application development environment by Sybase, combines modeling, data management, services assembly and orchestration, Java development, and mobilization in a single tool. It bridges the gap between the vision of a service-oriented architecture (SOA) and the reality of traditional development tools
- Sybase PowerDesigner, a data-modeling and collaborative design tool for enterprises that need to build or re-engineer applications
- Sybase Unwired Orchestrator, unwires information to mobilize existing applications and create new applications and processes to meet the needs of the mobile worker
- Wolfram Workbench, an integrated development environment (IDE) for Wolfram products such as Mathematica, gridMathematica, and webMathematica
- ARM RealView DEVELOP family, a development environment for ARM processors including SoC, ASIC and MCU designs.
- Nokia Carbide.c++, a new family of development tools for Symbian OS
- VistaMax IDE for Maemo, a visual Integrated Development Environment based on Eclipse
- Klocwork K7, suite for operational defect discovery, security vulnerabilities, architecture analysis, software metrics, customized code analysis
- LinuxWorks Luminosity, is a full-featured Java-based IDE for all LynuxWorks cross-development platforms. Luminosity supports LynxOS 4.x, BlueCat Linux 5.x and LynxOS-178.
- Mentor Graphics EDGE IDE, the Embedded Developers Graphical Environment (EDGE) is an integrated development cockpit that brings together project manager, source editors, compiler tools, debugger and profiler - plus a whole lot more - in one easy-to-use environment.
- QNX Momentics Development Suite, to build applications for the QNX Neutrino RTOS
- Wind River Workbench Development Suite, a development solution for devices based on VxWorks and Linux.
- Telelogic Rhapsody is a Model-Driven Development (MDD) environment for systems, software, and test.
- EasyEclipse, bundled distributions of the Eclipse IDE
- 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
- Adobe Flex Builder, Adobe IDE based on Eclipse for building Flex applications for the Flash Platform
- RODIN Platform, Open tool platform for the rigorous development of dependable complex software systems based on the event-B formal method with support for refinement and mathematical proof
- Trident IDE, a commercial IDE based on Eclipse for creating, testing, and packaging SCORM content packages
- LibreSource
- Palm OS Development Suite
- Nios II IDE, a software development environment for the Altera Nios II processor.
[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). [6] Mike Milinkovich, of the Eclipse Foundation has commented that moving to the GPL will be considered when version 3 of the GPL is released.[1]
Like many open-source programs, the name "Eclipse" is trademarked and may only be used with the trademark holder's express permission.[2]
[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.[3]
[edit] References
- OSGi Service Platform, Release 3, IOS Press, ISBN 1-58603-311-5
- OSGi Specification Download
[edit] See also
- Comparison of integrated development environments
- IBM WebSphere Studio Application Developer
- NetBeans
- IntelliJ IDEA
- JDeveloper
- JBuilder
- EasyEclipse
- Aptana
- MyEclipse
- GForge
- Visual Studio
- Flowchart4j
[edit] External links
- Official Eclipse website
- The Official Eclipse FAQs
- Eclipsepedia - The Eclipse.org Wiki for individual Eclipse foundation projects
- Eclipse API
- Eclipse Documentation - Documentation for the Eclipse SDK
- Planet Eclipse - Community blog entries on the Eclipse
- Migrating from Visual C++ to CDT by Doug Schaefer
- Getting Started With Eclipse