Eclipse

Eclipse

Eclipse refers to both a software platform and an integrated development environment built on top of the Eclipse Platform. Eclipse is written in Java and it runs on multiple platforms where the Java Virtual Machine is available.

The Eclipse Platform defines a set of frameworks and common services that collectively facilitate the creation and integration of IDE-based products and rich client applications. The frameworks and services provide facilities that are required by most tool builders such as:

  • A platform runtime system for loading and managing plug-ins.
  • A generic windowing system with portable native widget toolkits.
  • Incremental project builders and compilers support.
  • A language-independent debug infrastructure.
  • Tools and APIs for managing workspace resources such as files, folders, and projects.
  • An integrated help system.

The Eclipse Platform is modular and all platform functions are implemented as plug-ins. An Eclipse plug-in is the smallest unit of the platform that implements a well-defined feature.

The Eclipse IDE is a generic integrated development environment built on top of the Eclipse Platform. It has the standard IDE user-interface with multi-window editors, refactoring, syntax highlighting, and other features commonly found in advanced IDEs. It can be used to develop Eclipse-based rich client applications and software written in various programming languages such as C/C++, PHP, Fortran, Python, and Perl. The IDE can be augmented with new features due to its extensible plug-in system. There are more than one thousand Eclipse plug-ins providing rich and diverse features for software development. A number of notable Eclipse plug-ins provide support for parallel programming, data modeling, embedded devices, database development, web services, and so forth.

Eclipse supports a number of integration levels that tool or plug-in developers can target based on the time to market, desired level of investment, and specific tool needs. In the order of increasing integration sophistication, these levels are:

  • None: There is no integration with Eclipse, tools are separate and independent.
  • Invocation: The integration with Eclipse is through invocation of registered applications on resource types.
  • Data: The tool or plug-in integration is achieved through data sharing.
  • API: Tools interact with other tools through Java APIs that abstract tool behavior and make it publicly available.
  • User Interface: Tools and their user interfaces are dynamically integrated at runtime including window panes, toolbars, menus, properties, preferences, etc.