Eclipse (IDE)
Eclipse
|
|
---|---|
![]() |
|
Eclipse with welcome screen |
|
Basic data
|
|
developer | Eclipse Foundation |
Publishing year | November 7, 2001 |
Current version |
4.16.0 ( June 17, 2020 ) |
operating system | platform independent |
programming language | Java |
category | IDE |
License | EPL (formerly CPL ) |
German speaking | Yes |
eclipse.org |
Eclipse (from English eclipse "solar eclipse", "darkness", "darkening") is an open source programming tool for developing software of various kinds. Eclipse was originally used as an integrated development environment (IDE) for the Java programming language , but it is now used because of its expandability also used for many other development tasks. There are a number of both open source and commercial extensions for Eclipse.
Eclipse itself is based on Java technology , from version 3.0 on the OSGi framework Equinox .
history
Eclipse is the successor to IBM Visual Age for Java 4.0 . The source code for Eclipse was released on November 7, 2001 by IBM . About half of the developers currently working on the Eclipse basic framework continue to be paid by IBM. On February 2, 2004, the Eclipse consortium led by IBM decided to establish the legally independent Eclipse Foundation , which has since been responsible for the development of Eclipse.
Eclipse supports Java version 5 from version 3.1 and Java 6 from version 3.2. Starting in 2006, the release dates of new versions of the most important Eclipse components were harmonized in order to avoid version conflicts and to make it easier for Eclipse users to use them.
Project name
The project names were previously named after Jupiter's moons ( Callisto , Europa and Ganymede ), the space probes Galileo and Helios , and version 3.7 after the indigo color typical of Eclipse . Starting with version 3.5, the first letters of the project names are assigned in alphabetical order. Version 3.8 appeared at the same time as version 4.2. As of September 19, 2018, the naming of Photon was changed to 2018-09.
Versions
Project name | version | publication |
---|---|---|
3.0 | June 28, 2004 | |
3.1 | June 28, 2005 | |
Callisto | 3.2 | June 26, 2006 |
Europe | 3.3 | June 27, 2007 |
Ganymede | 3.4 | June 25, 2008 |
Galileo | 3.5 | June 24, 2009 |
Helios | 3.6 | June 23, 2010 |
indigo | 3.7 | June 22, 2011 |
Juno | 1 | 3.8 and 4.2June 27, 2012 |
Kepler | 4.3 | June 26, 2013 |
Luna | 4.4 | June 25, 2014 |
Mars | 4.5 | June 24, 2015 |
neon | 4.6 | June 22, 2016 |
Oxygen | 4.7 | June 28, 2017 |
photon | 4.8 | June 27, 2018 |
2018-09 | 4.9 | 19th September 2018 |
2018-12 | 4.10 | 19th December 2018 |
2019-03 | 4.11 | 20th March 2019 |
2019-06 | 4.12 | 19th June 2019 |
2019-09 | 4.13 | 18th September 2019 |
2019-12 | 4.14 | 18th December 2019 |
2020-03 | 4.15 | March 18, 2020 |
2020-06 | 4.16 | 17th June 2020 |
2020-09 | 4.17 | probably 16 September 2020 |
The individual versions are published as a basic version or as a combination of various program packages. However, individual program packages can also be installed later. The Eclipse user interface is in English by default. However, there are Babel language packs for each version that can be installed as plug-ins in the corresponding languages .
architecture
Up to and including version 2.1, Eclipse was designed as an expandable IDE . As of version 3.0, Eclipse itself is only the core that loads the individual plug-ins , which then provide the actual functionality. This functionality is based on Equinox . Both Eclipse and the plug-ins are completely implemented in Java . To create the graphical interface was SWT used. Similar to AWT , SWT is based on the native GUI components of the respective operating system to display the GUI components . Eclipse is provided for 14 different systems and architectures and is therefore considered to be platform-independent . The plug-ins can be installed directly from an update server , via the "Market Place", or by extracting an installation file.
The freely available Eclipse SDK comprises the Eclipse platform, tools for Java development ( Java Development Tools , JDT) and the environment for developing Eclipse plug-ins ( Plug-in Development Environment , PDE ).
Rich Client Platform (Eclipse RCP)
Eclipse offers the Rich Client Platform , which enables application developers to write applications that are independent of the Eclipse IDE based on the Eclipse framework. An overview can be found on the Eclipse website. For example, IBM Workplace Clients is based on Eclipse RCP.
The following components (plug-ins) are required at least for an Eclipse Rich Client Platform program:
- Eclipse Core Platform - controls the life cycle of an Eclipse application
- Standard Widget Toolkit (SWT)
- JFace
Other Eclipse components, such as the help system or the automatic update system, can also be used. Usually the Eclipse OSGi framework Equinox is used to combine (bundling) the components.
Eclipse runtime project
The Eclipse runtime project is located as a "top level" project and is intended to bundle the various runtime components. Based on the OSGi implementation Equinox, a steadily growing “stack” of software components is created here, which serves as the basis for client-server-oriented systems.
surface
The Eclipse interface offers various concepts to simplify working with source texts or other resources.
Views
In Eclipse, views are small windows that display task areas from different perspectives. These windows can be arranged as desired by drag and drop , in the form of tabs that are activated by clicking on the tab, in the form of permanently visible windows or in the form of fast views , which are arranged as symbols in a bar that can be largely freely positioned and which are only displayed when you click on the symbol.
Examples of views are
- the navigator view (also known from most other editors), which shows the documents contained in the project directory.
- the class explorer, which shows symbols for the classes, functions, variables, imports of an open source text in a tree-like structure or
- the search window, which lists the results of a search.
Editors
Editors are the windows that usually display the source text with syntax highlighting , although there is a separate editor for many programming languages (e.g. for Java, C, PHP, Python, HTML, but also a simple text editor). There are also visual editors (for example UML editors or drag-and-drop editors for creating graphical user interfaces ) or those that display tree structures (for example the XML editor ). Editors usually take up most of the program window space. Several open source texts are opened as tabs that can be brought to the foreground using tabs at the top. In addition, tabs can be pinned so that the associated source text is not accidentally closed. Editors can also be arranged largely freely using drag and drop, and a file can be opened in several editors at the same time.
The following interactive functions are often available in the editors for programming languages:
- In the Java editor, you can Strgjump directly to the declaration of the corresponding function by left-clicking on a function call. If you move the mouse pointer over an element for which source text documentation is available, this is displayed in a pop-up window.
- If the cursor is placed on a variable, this and all other occurrences of the same in the document are highlighted in color, in a bar on the right edge of the editor they are displayed as small colored lines that act as links to the corresponding places in the source text.
- Code folding is often supported.
- Support of source code completion using Strg+ Leertaste.
- Freely configurable code templates with variable support and context assignment.
- Differences between the open source text and the version saved on the hard drive, as well as the line numbering, are highlighted in color in a bar on the left edge.
- Configurable automatic code formatting, that of the Java editor is the most developed.
Perspectives
Perspectives are complete arrangements of menu and toolbars, views and editors. They are largely configurable and user-defined constellations can be saved and loaded. Most of the time, plug-ins that are subsequently installed provide preconfigured perspectives that can then be adapted to suit your own requirements.
Extensions
Numerous extensions have already been written for the Eclipse IDE , some of them proprietary , some freely usable. Eclipse is primarily used as the Java IDE, with the plug-ins combined in the Java Development Tools being used. There are, however, a number of plug-ins for other languages or for developing OSGi bundles. Above all, this includes the CDT project, which supports C and C ++ and, among other things, covers the GNU Compiler Collection and the LLVM (- Clang and -GCC). There are also plug-ins for Perl , PHP , ColdFusion , Ruby , Python , C # , Fortran , Ada2005 , Scala , etc. These can be integrated into Eclipse via a menu. In addition to plug-ins for specific programming languages, there are also those that support general development processes, such as Mylyn for “task-oriented development” or Saros for distributed pair programming . In contrast to the core program, these supplements are often only available in English.
In addition to the Java Development Tools, there are many other projects that are also coordinated on the Eclipse website. One such project is the Eclipse Tools Project , which is developing various tools that developers can extend. Other projects are the Eclipse Modeling Framework (EMF), the Graphical Editing Framework (GEF) and the Eclipse Riena Platform (Riena). EMF can be used to create a data model that can be based on UML , for example . GEF is a project that allows developers to quickly create a graphical editor using an existing data model. Riena supports developers in equipping an application with a user-friendly interaction concept and appealing interface elements.
Based on these extensions and the modular structure of Eclipse itself, specific Eclipse bundles can be created for projects. These contain all the parts and extensions of Eclipse necessary for a specific project, without consuming main memory and computing power with unnecessary parts.
In the meantime, there are also open source extensions that make automated provision and configuration much easier. These include oasp4j-ide, Oomph and Yatta Profiles.
Available systems and architectures
Market share
Since Eclipse is offered free of charge, it is difficult to get precise figures on the market share of IDEs for Java. Survey results (Q2 2016) indicate a market share of 41% for Eclipse. This would put it in second place, just behind the only partially free IDE IntelliJ IDEA from JetBrains with 46%, and ahead of the free IDE Netbeans from Oracle with 10%. Other IDEs have a vanishing market share of 3%.
literature
- Ralph Steyer: Now I'm learning Eclipse. , Market and Technology, ISBN 3-8272-6764-1 .
- Kent Beck, Erich Gamma: Contributing to Eclipse , Addison-Wesley, ISBN 0-321-20575-8 .
- Gottfried Wolmeringer: Learning Java 6 with Eclipse , Galileo Computing, ISBN 3-89842-872-9 .
- Thomas Künneth: Entry into Eclipse , 5th edition 2014, Galileo Computing, ISBN 3-83622-958-7 .
- Sebastian Bauer: Eclipse for C / C ++ programmers , dpunkt.verlag, 3rd ext. and act. Edition, 2015, ISBN 978-3-86490-196-6 .
- Marc Teufel, Jonas Helming: Eclipse 4 - Rich Clients with the Eclipse 4.2 SDK , developer.press, 2nd edition, ISBN 3-8680-2063-2 .
Web links
- Official Eclipse Project (English)
- EMF website on eclipse.org
- GEF website at eclipse.org
- Official website of the Riena Platform at eclipse.org
Individual evidence
- ↑ Eclipse Project 4.16.0 . (accessed on July 15, 2020).
- ↑ eclipse.org. Retrieved January 15, 2010 .
- ↑ Bug 306864 - Naming Helios + 1… to Indigo. Retrieved April 12, 2012 .
- ↑ Eclipsepedia: Callisto. Retrieved February 15, 2009 .
- ↑ a b c d e f g h i j k l m n Simultaneous Release. Retrieved May 10, 2013 .
- ↑ Eclipsepedia: Europe. Retrieved February 15, 2009 .
- ↑ Eclipsepedia: Ganymede. Retrieved February 15, 2009 .
- ↑ Eclipsepedia: Galileo. Retrieved November 11, 2010 .
- ↑ Eclipsepedia: Helios. Retrieved November 11, 2010 .
- ↑ Eclipsepedia: Indigo. Retrieved June 22, 2011 .
- ↑ Eclipsepedia: Juno. Retrieved February 12, 2012 .
- ↑ Eclipsepedia: Kepler. Retrieved February 12, 2012 .
- ↑ Eclipsepedia Luna. Retrieved May 10, 2013 .
- ^ Documents related to Mars, the Eclipse Foundation. Retrieved June 24, 2014 .
- ^ Eclipse Neon Release Train Now Available. Retrieved June 23, 2016 .
- ↑ Category: Oxygen - Eclipsepedia. In: wiki.eclipse.org. Retrieved March 8, 2016 .
- ↑ Category: Photon - Eclipsepedia. In: wiki.eclipse.org. Retrieved October 27, 2017 .
- ↑ Category: SimRel-2018-09 - Eclipsepedia. In: wiki.eclipse.org. Retrieved September 20, 2018 .
- ↑ Category: SimRel-2018-12 - Eclipsepedia. In: wiki.eclipse.org. Retrieved January 26, 2019 .
- ↑ Category: SimRel-2019-03 - Eclipsepedia. In: wiki.eclipse.org. Retrieved January 26, 2019 .
- ↑ Category: SimRel-2019-06 - Eclipsepedia. In: wiki.eclipse.org. Retrieved June 20, 2019 .
- ↑ Category: SimRel-2019-09 - Eclipsepedia. In: wiki.eclipse.org. Retrieved September 22, 2019 .
- ↑ Category: SimRel-2019-12 - Eclipsepedia. In: wiki.eclipse.org. Retrieved September 22, 2019 .
- ↑ Category: SimRel-2020-03 - Eclipsepedia. In: wiki.eclipse.org. Retrieved December 20, 2019 .
- ↑ Category: SimRel-2020-06 - Eclipsepedia. In: wiki.eclipse.org. Retrieved March 27, 2020 .
- ↑ Category: SimRel-2020-09 - Eclipsepedia. In: wiki.eclipse.org. Retrieved August 7, 2020 .
- ↑ http://archive.eclipse.org/eclipse/downloads/drops/R-3.8.2-201301310800/
- ↑ https://bugs.eclipse.org/bugs/show_bug.cgi?id=389175
- ^ Eclipse Babel Project. Retrieved November 11, 2010 .
- ↑ eclipse.org/community/rcp.php ( Memento of the original dated August 30, 2009 in the Internet Archive ) Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice.
- ↑ http://www.eclipse.org/rt/
- ^ Saros - Distributed Collaborative Editing and Pair Programming
- ^ Yatta Profiles for Eclipse
- ↑ Automated provision of Eclipse with open source tools
- ↑ Zeroturnaround Q2 2016