Jump to content

Eclipse (software)

From Alfawiki
Eclipse
Company typeOpen-source software
IndustrySoftware development
PredecessorIBM VisualAge
FoundedNovember 2001; 25 years ago (2001-11)
Headquarters
Cary, North Carolina
,
United States
Area served
Worldwide
ProductsIntegrated development environment (IDE), Eclipse SDK
OwnerEclipse Foundation
Websitewww.eclipse.org

Eclipse is an integrated development environment (IDE) designed for computer programming. It offers a foundational workspace alongside a modular plug-in architecture that allows for extensive customization. Eclipse held the position as the premier IDE for Java development until 2016, when it was overtaken by IntelliJ IDEA. Primarily developed in Java, Eclipse facilitates Java application creation and broadens its language support through various plug-ins. These include Ada, ABAP, C, C++, C#, Clojure, COBOL, D, Erlang, Fortran, Groovy, Haskell, JavaScript, Julia, Lua, Perl, PHP, Prolog, Python, R, Ruby (including Ruby on Rails), Rust, Scala, and Scheme. Additionally, it supports LaTeX document preparation and Mathematica package development. Notable development environments within Eclipse are Eclipse JDT for Java and Scala, Eclipse CDT for C and C++, and Eclipse PDT for PHP.

The origins of the codebase trace back to IBM VisualAge. The Eclipse software development kit (SDK), which includes tools tailored for Java developers, can be extended with community-contributed plug-ins. Since version 3.0 released in 2004, these plug-ins have been managed as "bundles" using Equinox—an implementation of the OSGi framework.

Distributed under the Eclipse Public License, the Eclipse SDK is free and open-source software. This license is not compatible with the GNU General Public License. Eclipse was among the earliest IDEs to operate on GNU Classpath and runs efficiently on IcedTea.

History

The conception of Eclipse drew inspiration from the Smalltalk-based VisualAge IDE suite. Although VisualAge enjoyed commercial success, its reliance on storing source code within a compressed database using SCID methods restricted access to individual classes. To address this limitation, a team at IBM’s facility in Cary, North Carolina developed Eclipse as a Java-centric alternative.

In November 2001, a consortium was established featuring a board of stewards dedicated to promoting Eclipse as an open-source software platform. By that time, IBM had invested close to $40 million into the project. Founding members included Borland, IBM, Merant, QNX Software Systems, Rational Software, Red Hat, SuSE, TogetherSoft, and WebGain. The number of stewards expanded to over 80 by late 2003. Subsequently, in January 2004, the Eclipse Foundation was founded.

The release of Eclipse 3.0 on 21 June 2004 marked its adoption of the OSGi Service Platform specifications as the core runtime framework.

On 26 April 2012, the Association for Computing Machinery honored Eclipse with the prestigious 2011 ACM Software System Award.

Recent versions of the Eclipse IDE incorporate support for modern programming standards such as Java 23 and C++23. They also introduce usability enhancements including an updated light theme, improved Java code folding capabilities, and refreshed C/C++ tools powered by the Clang compiler frontend.

Licensing

The primary license governing Eclipse projects is the Eclipse Public License (EPL). Certain projects may require dual licensing arrangements; in these cases, the Eclipse Distribution License (EDL) can be obtained following application and review.

Initially released under the Common Public License, Eclipse later transitioned to using the EPL. Both licenses are recognized by the Free Software Foundation as free software licenses; however, they are incompatible with the GNU General Public License (GPL).

Name

Lee Nackman, who served as the CTO of IBM's Rational division, explained that the designation "Eclipse"—used since at least 2001—was selected to represent surpassing the leading rival, Microsoft Visual Studio, rather than to reference Sun Microsystems.

The naming convention for Eclipse versions has traditionally followed scientific motifs: initially inspired by the moons of Jupiter, such as Callisto, Europa, and Ganymede, then moving to honor Galileo, the astronomer who discovered these moons. Later iterations adopted solar-themed names like Helios and Indigo. The title Juno referenced several elements simultaneously—a figure from Roman mythology, an asteroid, and a Jupiter-bound spacecraft. Subsequent releases embraced astronomy-related titles including Kepler, Luna, and Mars, followed by chemical element names like Neon and Oxygen. The name Photon signified a return to sun-associated nomenclature.

Starting with version 4.9 (2018-09), Eclipse transitioned from this alphabetical pattern to a date-based naming system that aligns with its Simultaneous Release approach, labeling versions by year and month to reflect quarterly update cycles.

Releases

Since 2006, the Eclipse Foundation has orchestrated an annual Simultaneous Release encompassing the Eclipse Platform alongside numerous associated projects.

Between 2008 and 2018, releases were scheduled for the fourth Wednesday in June. In 2018, this shifted to quarterly releases named in YYYY-MM format, eliminating interim service packs.

Version name Release date Platform version Included projects Significant updates
N/A 29 November 2001 Required Java 1.3 runtime or JDK.
N/A 18 September 2002
N/A 15 April 2003 Added compatibility with Java 1.4 runtime or JDK while maintaining support for 1.3.
N/A 21 June 2004 Required Java 1.4.1 runtime or JDK.
N/A 28 June 2005 Introduced support for Java 5 features including generics, annotations, enums, and enhanced for loops.
Callisto 26 June 2006 Callisto projects
Europa 27 June 2007 Europa projects
Ganymede 25 June 2008 Ganymede projects
Galileo 24 June 2009 Galileo projects
Helios 23 June 2010 Helios projects
Indigo 22 June 2011 Indigo projects Added support for Java 7 features such as enhanced type inference and try-with-resources.
Juno 27 June 2012 Juno projects "Dual stream" release; incorporated bug fixes alongside Java 7 support.
Kepler 26 June 2013 Kepler projects required Java 6 runtime environment recommended.
Luna 25 June 2014 Luna projects required Java 7 runtime; included integration with Java 8 features.
Mars 24 June 2015 Mars projects required Java 7 runtime environment.
'Neon' '22 June 2016' 'Neon projects' 'Mandated Java 8 runtime.'
'Oxygen' '28 June 2017' 'Oxygen projects' 'Introduced compatibility with Java 9 and JUnit5; discontinued support for Unix platforms AIX, Solaris, HP-UX, s390; required Java 8 or later.'
'Photon' '27 June 2018' 'Photon projects' 'Ended support for 32-bit Windows and Linux.'
'2018-09' '19 September 2018' '2018-09 projects'
'2018-12' '19 December 2018' '2018-12 projects' 'Added support for Java version 11.'
'20 March 2019' '2019-03 projects'
'19 June 2019' '2019-06 projects'
'18 September 2019' '2019-09 projects'
'18 December 2019' '2019-12 projects'
'18 March 2020' '2020-03 projects' 'Improved web development capabilities through Language Server Protocol integration.'
'17 June 2020' '2020-06 projects'
'16 September 2020' '2020-09 projects' 'Required Java version 11 or newer.'
'16 December 2020' '2020-12 projects' 'Most distributions bundled a JDK internally, removing the need for external Java installations.'
'17 March 2021' '2021-03 projects'
'16 June 2021' '2021-06 projects'
'15 September 2021' '2021-09 projects'
'8 December 2021' '2021-12 projects'
'16 March 2022' '2022-03 projects'
'15 June 2022' '2022-06 projects'
'14 September 2022' '2022-09 projects' 'Mandated use of Java version17 or higher.'
'7 December 2022' '2022-12 projects'
'15 March 2023' "" "2023-03 projects"
"14 June 2023" "" "2023-06 projects"
"13 September 2023" "" ""

Architecture

Eclipse's entire runtime system is constructed around plug-ins built upon Equinox, which implements the core specifications of the OSGi framework.

This plug-in architecture facilitates extending Eclipse with additional programming languages such as C and Python, while also supporting integration with markup languages like LaTeX and network-oriented tools including telnet and various database management systems. This modular design enables custom extensions tailored to diverse enterprise requirements, including those related to configuration management. The Eclipse SDK inherently supports Java development and integration with Concurrent Versions System (CVS), while third-party plug-ins provide compatibility with other version control systems.

Aside from a minimal core runtime kernel, all functionality within Eclipse is delivered through plug-ins, promoting consistent integration across components. The platform offers a broad selection of plug-ins—both open-source and commercial—that cover areas like Unified Modeling Language (UML), sequence diagram creation, and database exploration utilities.

The Eclipse SDK incorporates the Eclipse Java development tools (JDT), which provide an integrated development environment featuring an incremental compiler for Java along with detailed source code modeling capabilities. This enables sophisticated code analysis and supports advanced techniques such as code refactoring. The IDE manages its resources via a workspace system that maintains metadata over flat files, allowing external modifications to be detected through resource refresh operations.

For its graphical user interface, Eclipse utilizes the Standard Widget Toolkit (Standard Widget Toolkit or SWT), a distinct Java UI toolkit differing from traditional frameworks such as AWT, Swing, or JavaFX. It also employs an abstraction layer named JFace to streamline application development atop SWT. In a project during Google Summer of Code in 2014, Eclipse was adapted to function on the Wayland display server.

As of As of {{{1}}}[[Category:Articles containing potentially dated statements from Expression error: Unexpected < operator.]], the Babel Project provides localization packs translating Eclipse into more than forty languages.

Rich client platform

Eclipse includes a rich client platform (RCP) designed for constructing versatile desktop applications.

Core elements of this rich client platform are:

  • The Equinox OSGi framework – standard module bundling system
  • Core platform – responsible for launching Eclipse and managing plug-ins
  • Standard Widget Toolkit (SWT) – cross-platform widget toolkit
  • JFace – viewer classes facilitating model-view-controller programming patterns, along with file buffer management, text handling, and editor support
  • Eclipse Workbench – provides views, editors, perspectives, and wizards

Prominent applications built on this rich client platform include:

  • IBM Notes versions 8 and 9
  • Attachmate-Novell NetIQ Designer for Identity Manager
  • Apache Directory Studio
  • Remote Component Environment (RCE)
  • DBeaver SQL client software
  • Portfolio Performance financial tool
  • uDig geographic information system software
  • AnyLogic multimethod simulation modeling environment

Server platform

Eclipse supports server-side development targeting platforms such as Apache Tomcat and GlassFish, often allowing direct installation of these servers from within the IDE. It also offers remote debugging capabilities enabling developers to inspect variables and step through code executing on connected servers.

Web Tools Platform

The Eclipse Web Tools Platform (WTP) extends the base Eclipse environment by supplying tools tailored for Web and Java EE application creation. This includes source code editors alongside graphical editors supporting various languages, wizards to assist development tasks, embedded applications, and APIs designed to simplify deployment processes as well as running and testing applications.

Modeling platform

The Modeling project aggregates initiatives under the Eclipse Foundation that focus on model-driven development technologies compatible with IBM’s Eclipse Modeling Framework (EMF). It is structured into six distinct areas:

  • Model Transformation – encompasses tools that utilize EMF-based models to generate other models or textual representations. Notable examples include the ATLAS Transformation Language (ATL) for model-to-model transformations and Acceleo, an open-source code generator implementing OMG’s MOFM2T standard capable of producing textual languages such as Java, PHP, and Python from EMF models.
  • Model Development Tools – implementations adhering to industry-standard modeling languages including:
  • Concrete Syntax Development – contains tools like the Graphical Modeling Framework used for visualizing EMF-based models graphically.
  • Abstract Syntax Development – hosts core frameworks such as the Eclipse Modeling Framework itself along with related technologies like Connected Data Objects (CDO), EMF query facilities, and validation frameworks.
  • Technology and Research – serves as an incubation area where experimental modeling prototypes are developed.
  • Amalgam – integrates all available modeling tools into a unified package dedicated to comprehensive modeling solutions within Eclipse.

Application lifecycle management

Application lifecycle management (ALM) alongside task management in Eclipse leverages an optional component called Mylyn (pronounced Template:IPAc-en), an open-source implementation of a task-focused interface paradigm. Mylyn provides an API enabling embedding task-centric interfaces within tools to improve developer productivity when handling tasks such as bug tracking, issue reporting, or feature requests. It integrates seamlessly with various repositories including Bugzilla, Trac, Redmine, Mantis Bugtracker, JIRA software, Unfuddle, and GitHub. By monitoring user interactions within the IDE, Mylyn identifies pertinent task-related information and automatically adapts the UI focus accordingly—minimizing unnecessary navigation efforts such as searching or scrolling. This explicit task context facilitates multitasking workflows, planning activities effectively, reusing prior work efficiently, and sharing knowledge among team members.

The name "Mylyn" is derived from "myelin," referring to the insulating sheath surrounding neuron axons. Initially called "Mylar," it was renamed to avoid trademark conflicts with a boPET film manufacturer.

Features

The Eclipse IDE incorporates a text editor equipped with syntax highlighting, code assistance features including completion suggestions, refactoring tools, static code analysis with "Quick fix" recommendations, alongside integrated debugging capabilities.

It natively supports OSGi modularity standards and introduced support for the Java Platform Module System (JPMS) starting from Java 9 onwards.

Extensions

Eclipse supports a wide range of extensions that enhance its functionality across multiple programming languages: Python via PyDev; Android development through Google's ADT plugin—which was superseded by Android Studio in 2015 but continues under the name Andmore within Eclipse; JavaFX supported by e(fx)clipse; as well as languages like JavaScript and jQuery available through the Eclipse Marketplace. The Vala programming language is supported by notable plug-ins such as Valable.

Besides default warnings provided by the built-in Java compiler, additional plug-ins including SpotBugs and Sonar offer advanced linting capabilities aimed at improving code quality standards consistently across projects.

Integration exists with popular build automation tools such as Apache Ant, Apache Maven, Make, and CMake; Maven users can replace traditional Eclipse project files directly with pom.xml configurations.

Alternative distributions

Several specialized distributions have been developed within the broader Eclipse ecosystem:

PHP Development Tools

The PHP Development Tools initiative delivers a framework integrated into Eclipse that features PHP-specific functionalities like code completion along with extensibility options. This project builds upon both the Eclipse Web Tools Platform (WTP) and Dynamic Languages Toolkit (DLTK).

Android Development Tools

Following Google's discontinuation of its official Android plugin in 2015 known as ADT (Android Development Tools), Eclipse introduced its own successor plugin named Andmore: Development Tools for Android. Andmore extends Eclipse’s capabilities by supporting Android project setup workflows—including UI design tools—API integrations, debugging utilities leveraging Android SDK tools, plus packaging applications into .apk files ready for distribution. This plugin remains freely available but has seen no active development since around 2017. Prior to its retirement as Google's official IDE plugin in 2015, ADT served as the primary Android development environment before being replaced by Android Studio alongside Andmore within Eclipse.

See also

Sources


External links