All Topics  
Eclipse (software)

 

   Email Print
   Bookmark   Link






 

Eclipse (software)



 
 
Eclipse is a multi-language software development platform
Software development environment

In computing, a software development environment is the entire environment that provides comprehensive facilities to computer programmers for software development....
 comprising an IDE
Integrated development environment

An integrated development environment also known as integrated design environment or integrated debugging environment is a software application that provides comprehensive facilities to computer programmers for software development....
 and a plug-in system to extend it. It is written primarily in Java
Java (programming language)

Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java ....
 and is used to develop applications in this language and, by means of the various plug-ins, in other language
Programming language

A programming language is a machine-readable artificial language designed to express computations that can be performed by a machine, particularly a computer....
s as well—C
C (programming language)

C is a general-purpose computer programming language originally developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories to implement the Unix operating system....
/C++
C++

C++ is a general-purpose programming language. It is regarded as a middle-level language, as it comprises a combination of both high-level programming language and low-level programming language language features....
, Cobol
COBOL

COBOL is one of the oldest programming languages still in active use. Its name is an acronym for COmmon Business-Oriented Language, defining its primary domain in business, finance, and administrative systems for companies and governments....
, Python
Python (programming language)

Python is a general-purpose high-level programming language. Its design philosophy emphasizes code readability. Python's core syntax and semantics are Minimalism , while the standard library is large and comprehensive....
, Perl
Perl

In computer programming, Perl is a high-level programming language, List of programming languages by category, Interpreter , dynamic programming language....
, PHP
PHP

PHP is a scripting language originally designed for producing dynamic web pages. It has evolved to include a command line interface capability and can be used in Standalone software Graphical user interface....
 and more.

The initial codebase
Codebase

The term codebase, or code base is used in software development to mean the whole collection of source code used to build a particular application software or Software componentry....
 originated from VisualAge
VisualAge

VisualAge was the name of a family of computer integrated development environments from IBM, which included support for a few popular computer programming languages....
. In its default form it is meant for Java developers, consisting of the Java Development Tools (JDT).






Discussion
Ask a question about 'Eclipse (software)'
Start a new discussion about 'Eclipse (software)'
Answer questions from other users
Full Discussion Forum



Encyclopedia


Eclipse is a multi-language software development platform
Software development environment

In computing, a software development environment is the entire environment that provides comprehensive facilities to computer programmers for software development....
 comprising an IDE
Integrated development environment

An integrated development environment also known as integrated design environment or integrated debugging environment is a software application that provides comprehensive facilities to computer programmers for software development....
 and a plug-in system to extend it. It is written primarily in Java
Java (programming language)

Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java ....
 and is used to develop applications in this language and, by means of the various plug-ins, in other language
Programming language

A programming language is a machine-readable artificial language designed to express computations that can be performed by a machine, particularly a computer....
s as well—C
C (programming language)

C is a general-purpose computer programming language originally developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories to implement the Unix operating system....
/C++
C++

C++ is a general-purpose programming language. It is regarded as a middle-level language, as it comprises a combination of both high-level programming language and low-level programming language language features....
, Cobol
COBOL

COBOL is one of the oldest programming languages still in active use. Its name is an acronym for COmmon Business-Oriented Language, defining its primary domain in business, finance, and administrative systems for companies and governments....
, Python
Python (programming language)

Python is a general-purpose high-level programming language. Its design philosophy emphasizes code readability. Python's core syntax and semantics are Minimalism , while the standard library is large and comprehensive....
, Perl
Perl

In computer programming, Perl is a high-level programming language, List of programming languages by category, Interpreter , dynamic programming language....
, PHP
PHP

PHP is a scripting language originally designed for producing dynamic web pages. It has evolved to include a command line interface capability and can be used in Standalone software Graphical user interface....
 and more.

The initial codebase
Codebase

The term codebase, or code base is used in software development to mean the whole collection of source code used to build a particular application software or Software componentry....
 originated from VisualAge
VisualAge

VisualAge was the name of a family of computer integrated development environments from IBM, which included support for a few popular computer programming languages....
. In its default form it is meant for Java developers, consisting of the Java Development Tools (JDT). Users can extend its capabilities by installing plug-ins written for the Eclipse software framework, such as development toolkits for other programming languages, and can write and contribute their own plug-in modules. Language packs provide translations into over a dozen natural language
Natural language

In the philosophy of language, a natural language is a language that is spoken, Sign language, or writing by humans for general-purpose communication, as distinguished from formal languages and from constructed languages....
s.

Released under the terms of the Eclipse Public License
Eclipse Public License

The Eclipse Public License is an open source software license used by the Eclipse Foundation for Eclipse . It replaces the Common Public License and removes certain terms relating to patent litigation....
, Eclipse is free and open source software
Free and open source software

Free and open source software, also F/OSS, FOSS, or FLOSS is software which is liberally software licence to grant the right of users to study, change, and improve its design through the availability of its source code....
.

Architecture


Eclipse employs plug-ins in order to provide all of its functionality on top of (and including) the runtime system, in contrast to some other applications where functionality is typically hard code
Hard code

Hard coding refers to the software development practice of embedding input or configuration data directly into the source code of a computer program or other executable object, or fixed formatting of the data, instead of obtaining that data from external sources or generating data or formatting in the program itself with the given input....
d. The runtime system of Eclipse is based on Equinox, an OSGi
OSGi

The OSGi Alliance is an open standards organization founded in March 1999. The Alliance and its members have specified a Java -based Service platform that can be remotely managed....
 standard compliant implementation.

This plug-in mechanism is a lightweight software componentry framework. In addition to allowing Eclipse to be extended using other programming language
Programming language

A programming language is a machine-readable artificial language designed to express computations that can be performed by a machine, particularly a computer....
s such as C
C (programming language)

C is a general-purpose computer programming language originally developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories to implement the Unix operating system....
 and Python
Python (programming language)

Python is a general-purpose high-level programming language. Its design philosophy emphasizes code readability. Python's core syntax and semantics are Minimalism , while the standard library is large and comprehensive....
, the plug-in framework allows Eclipse to work with typesetting languages like LaTeX
LaTeX

LaTeX is a document markup language and Word processor for the TeX typesetting program. Within the typesetting system, its name is styled as ....
, networking applications such as telnet
TELNET

Telnet is a network protocol used on the Internet or Local Area Network connections. It was developed in 1969 beginning with RFC 15 and standardized as Internet Engineering Task Force STD 8, one of the first Internet standards....
, and database management system
Database management system

A database management system is computer software that manages databases. DBMSes may use any of a variety of database models, such as the network model or relational model....
s. The plug-in architecture supports writing any desired extension to the environment, such as for configuration management
Configuration management

Configuration management is a field of management that focuses on establishing and maintaining consistency of a product's performance and its functional and physical attributes with its requirements, design, and operational information throughout its life....
. Java and CVS
Concurrent Versions System

In the field of software development, the Concurrent Versions System , also known as the Concurrent Versioning System, is a free software revision control system....
 support is provided in the Eclipse SDK
Software development kit

A software development kit is typically a set of development tools that allows a software engineer to create application software for a certain software package, software framework, hardware platform, computer system, video game console, operating system, or similar platform....
.

The key to the seamless integration (but not of seamless interoperability) of tools with Eclipse is the plug-in. With the exception of a small run-time kernel, everything in Eclipse is a plugin. This means that every plugin developed integrates with Eclipse in exactly the same way as other plugins; in this respect, all features are created equal. Eclipse provides plugins for a wide variety of features, some of which are through third parties using both free and commercial models. Examples of plugins include UML
Unified Modeling Language

Unified Modeling Language is a standardized general-purpose modeling language in the field of software engineering.UML includes a set of graphical notation techniques to create abstract models of specific systems....
 plug-in for Sequence and other UML diagrams, plug-in for Database explorer, and many others.

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
Metadata

Metadata is "data about other data", of any sort in any media. An item of metadata may describe an individual datum, or content item, or a collection of data including multiple content items and hierarchical levels, for example a database schema....
 over a flat filespace allowing external file modifications as long as the corresponding workspace "resource" is refreshed afterwards. The Visual Editor project (discontinued since June 30, 2006) allows interfaces to be created interactively, thus allowing Eclipse to be used as a RAD tool.

Eclipse's widgets are implemented by a widget toolkit for Java called SWT
Standard Widget Toolkit

The Standard Widget Toolkit is a graphical widget toolkit for use with the Java platform. It was originally developed by IBM and is now maintained by the Eclipse Foundation in tandem with the Eclipse IDE....
, unlike most Java applications, which use the Java standard Abstract Window Toolkit
Abstract Window Toolkit

The Abstract Window Toolkit is Java 's original platform-independent Windowing system, graphics, and user-interface widget toolkit. The AWT is now part of the Java Foundation Classes — the standard Application programming interface for providing a graphical user interface for a Java program....
 (AWT) or Swing
Swing (Java)

Swing is a widget toolkit for Java . It is part of Sun Microsystems' Java Foundation Classes — an Application programming interface for providing a graphical user interface for Java programs....
. Eclipse's user interface also uses an intermediate GUI
Gui

Gui or guee is a generic term to refer to grillinged dishes in Korean cuisine. These most commonly have meat or fish as their primary ingredient, but may in some cases also comprise grilled vegetables or other vegetarian ingredients....
 layer called JFace
JFace

JFace is defined by the Eclipse project as "a User interface Widget toolkit that provides helper Class for developing UI features that can be tedious to implement." It is a layer that sits on top of the raw widget system, and provides classes for handling common UI programming tasks....
, which simplifies the construction of applications based on SWT.

Rich Client Platform


Eclipse provides the Eclipse Rich Client Platform
Rich Client Platform

A Rich Client Platform is software consisting of the following components:* A core , lifecycle manager* A standard bundling framework* A portable widget toolkit...
 (RCP) for developing general purpose applications. The following components constitute the rich client platform:

  • Equinox OSGi
    Equinox OSGi

    Equinox is the name of an Eclipse project that provides a certified implementation of the OSGi R4 core framework specification. Equinox is basically a plug-in system that allows developers to implement an application in a set of "bundles" using common services and infrastructure....
     – a standard bundling framework
  • Core platform – boot Eclipse, run plug-ins
  • Standard Widget Toolkit
    Standard Widget Toolkit

    The Standard Widget Toolkit is a graphical widget toolkit for use with the Java platform. It was originally developed by IBM and is now maintained by the Eclipse Foundation in tandem with the Eclipse IDE....
     (SWT) – a portable widget toolkit
    Widget toolkit

    A widget toolkit, widget library, or GUI toolkit is a set of GUI widget for use in designing applications with graphical user interfaces ....
  • JFace
    JFace

    JFace is defined by the Eclipse project as "a User interface Widget toolkit that provides helper Class for developing UI features that can be tedious to implement." It is a layer that sits on top of the raw widget system, and provides classes for handling common UI programming tasks....
     – viewer classes to bring model view controller programming to SWT, file buffers, text handling, text editors
  • Eclipse Workbench – views, editors, perspectives, wizards


History


Eclipse began as an IBM Canada project. It was developed by OTI (Object Technology International
Object Technology International

Object Technology International was founded in 1988 and acquired by Ibm in 1996. OTI was the company behind the VisualAge line Smalltalk and Java_programming development tools that eventually culminated in the open source Eclipse_ide tool platform and Integrated_development_environment....
) as a Java based replacement for the Smalltalk
Smalltalk

Smalltalk is an Object-oriented programming, Type system, reflection computer programming programming language. Smalltalk was created as the language to underpin the "new world" of computing exemplified by "human?computer symbiosis." It was designed and created in part for educational use, more so for constructionist learning, at PARC by Al...
 based VisualAge
VisualAge

VisualAge was the name of a family of computer integrated development environments from IBM, which included support for a few popular computer programming languages....
 family of IDE products, which itself had been developed by OTI. In November 2001, a consortium was formed to further the development of Eclipse as open source. In January 2004, the Eclipse Foundation
Eclipse Foundation

The Eclipse Foundation is a not-for-profit, member supported corporation that hosts the open-source Eclipse and helps cultivate both an open source community and an ecosystem of complementary products and services....
 was created.

Eclipse 3.0 (released on June 21, 2004) selected the OSGi
OSGi

The OSGi Alliance is an open standards organization founded in March 1999. The Alliance and its members have specified a Java -based Service platform that can be remotely managed....
 Service Platform specifications as the runtime architecture.

Eclipse was originally released under the Common Public License
Common Public License

In computing, the CPL is a free software / open-source software license published by IBM. The Open Source Initiative and Free Software Foundation have approved the license terms of the CPL....
, but was later relicensed under the Eclipse Public License
Eclipse Public License

The Eclipse Public License is an open source software license used by the Eclipse Foundation for Eclipse . It replaces the Common Public License and removes certain terms relating to patent litigation....
. The Free Software Foundation
Free Software Foundation

The Free Software Foundation is a non-profit corporation founded by Richard Stallman on 4 October 1985 to support the free software movement, a copyleft-based movement which aims to promote the universal freedom to distribute and modify computer software without restriction....
 has said that both licenses are free software
Free software

Free Software or software libre is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with minimal restrictions only to ensure that further recipients can also do these things and to prevent consumer-facing hardware...
 licenses, but are incompatible with the GNU General Public License
GNU General Public License

The GNU General Public License is a widely used free software license, originally written by Richard Stallman for the GNU project. The GPL is the most popular and well-known example of the type of strong copyleft license that requires derived works to be available under the same copyleft....
 (GPL). Mike Milinkovich, of the Eclipse Foundation commented that moving to the GPL would be considered when version 3 of the GPL was released.

Although there has been speculation that the name "Eclipse" was chosen in reference to IBM competitor Sun Microsystems
Sun Microsystems

Sun Microsystems, Inc. is a multinational corporation vendor of computers, computer components, computer software, and information technology services, founded on February 24, 1982....
, according to IBM Chief Technology Officer Lee Nackman, the name was actually targeted toward Microsoft and the Visual Studio product.

Releases


Since 2006, the Eclipse Foundation has coordinated an annual Simultaneous Release. Each release includes the Eclipse Platform as well as a number of other Eclipse projects. The purpose is to provide a distribution of Eclipse software with static features and versions. Ostensibly, this simplifies deployment and maintenance for enterprise systems, and others may simply find it convenient. So far, each Simultaneous Release has been named after one of the moons of Jupiter, and has occurred at the end of June.

Release Date Platform version Projects
Callisto 30 June 2006 3.2
Europa 29 June 2007 3.3
Ganymede 25 June 2008 3.4
Galileo 26 June 2009 3.5


See also


  • List of Eclipse projects
    List of Eclipse projects

    The following is a list of notable projects and plugins for the Eclipse Integrated development environment....
  • List of Eclipse-based software
    List of Eclipse-based software

    The Eclipse IDE can be extended by adding different plug-in s, for example:* Adobe Flex Builder, Adobe IDE based on Eclipse for building Adobe Flex applications for the Flash Platform...
  • Comparison of integrated development environments
    Comparison of integrated development environments

    The following tables list software packages that are nominal IDEs; standalone tools such as source code editors and GUI builders are not included....


Further reading


  • OSGi Service Platform, Release 3, IOS Press, ISBN 1-58603-311-5


External links