Over a million developers have joined DZone.

The Pillars Of Eclipse - Eclipse as a Platform

· Java Zone

Microservices! They are everywhere, or at least, the term is. When should you use a microservice architecture? What factors should be considered when making that decision? Do the benefits outweigh the costs? Why is everyone so excited about them, anyway?  Brought to you in partnership with IBM.

Eclipse, the ubiquitous platform, has survived another challenge by releasing Europa and the incredible download numbers speak for it’s success. Initially it was perceived as a Java IDE , then a tools development environment, then a Rich Client Platform (RCP), then Tool Integration Platform, and now it’s an eco-system of application frameworks, tools, runtimes, and especially a universal tool platform - an open, extensible IDE for anything, but nothing in particular. The intent of the article is to highlight the different areas of the industry and how Eclipse is used by different category of users.

The Eclipse open source community has over 60 open source projects. These projects can be conceptually organized into seven different "pillars" or categories:

  1. Enterprise Development
  2. Embedded and Device Development
  3. Rich Client Platform
  4. Rich Internet Applications
  5. Application Frameworks
  6. Application Lifecycle Management (ALM)
  7. Service Oriented Architecture (SOA)

The list gives a fair understanding of the different areas where eclipse is getting popular and also the business verticals that can be transformed. It is very interesting to see what Eclipse means to different people. The following scenarios give a better understanding of what can be done with Eclipse.

Eclipse - The Java IDE

As envisioned in early 2000 (even now after the Europa release), it’s a Java IDE with which Java developers can create, modify, debug, and build Java projects. Eclipse provides different features like code refactoring, syntax highlighting, syntax/code checks, code completion, quick fix, compile/build, team integration with CVS, debug, jarring, and so on. In this use-case scenario, Eclipse is being primarily used as Java IDE. Eclipse + JDT = Java IDE. The Eclipse Platform contains basic UI elements (SWT, JFace), a runtime, a help system, debug support, search support, and some other IDE elements. The Java IDE can be downloaded from Eclipse Site.

Eclipse as IDE

Eclipse - The Plugin Development Environment

Along the similar lines of the Java IDE, the C/C++, PHP and Cobol development tools have brought fabulous features into the Eclipse ecosystem. These development tools not only improved the productivity of the developers but also Myth-Busters for many managers and developers. This gave the real value for Eclipse as an open, extensible IDE for anything, but nothing in particular. Vendors were successfully able to adopt the Eclipse Platform and build tools and language editors around it. The ground rule of "everything is a contribution" perfectly fits in this scenario.

The PDE (Plugin Development Environment) and JDT (Java Development Tools) are the tools that support and enable this use-case. A plugin can be developed, debugged, deployed with the help of these two tools. The PHP Editor Plugin is developed with the help of the PDE and JDT. When a developer is using Eclipse to develop the PHP, it looks as though Eclipse is a PHP IDE. In this scenario, the developer might not necessarily know that PDE and JDT exist in the Eclipse that is being used. Thus depending on the user and what he is trying to achieve, the perception changes.

Eclipse – The Rich Client Platform

Application development requires a platform to rely upon - a basis upon which an organization’s software product lines can be built. The Rich Client Platform (RCP) of Eclipse uses the windowing and UI features of the underlying OS platform. It enables the application to use the native look-and-feel, native widgets, and all the available UI features. In the end, users and IT departments want to have a uniform architecture and common look-and-feel over all the applications.

Eclipse RCP is considered as the minimal set of plugins that are required to build rich applications. In short, if the SDK capabilities and Platform capabilities are removed, the resulting set of plugins would be RCP. An interesting set of applications can be built with the help of Eclipse RCP.A few examples from Open Source RCP applications included, but not limited to…

  • GumTree
    Australian Nuclear Science and Technology Organization - GumTree is an open source multi-platform scientific workbench for performing scientific experiments using a server-client environment. It provides an easy-to-use graphical user interface for instrument data acquisition, online or offline data visualization and analysis.RSSOwl
    Applications that collect data from RSS-compliant sites are called RSS readers or "aggregators." RSSOwl is such an application.
  • Talend Open Studio 1.0
    Talend Open Studio is the first ETL open source software provider for data integration tools (ETL: Extract, Transform, Load) Following are the examples of commercial plugins
  • Actuate BIRT Report Designer
    The Actuate BIRT Report Designer is a powerful tool for designing and deploying reports against data sources ranging from typical business SQL databases, to XML data sources, to in-memory Java objects.
  • BSI CRM on Eclipse
    This Customer Relationship Management (CRM) solution is a fully configured RCP application to support the whole customer contact process from first contact to the successful project implementation as wells as retention management.
  • IBM Workplace Client Technology
    IBM Workplace Client Technology is a strategic new IBM framework to enable the creation of server-managed rich client applications.
  • MyEclipse - SNAPs
    Lightweight, Individual, Task-Based Developement Tools Free as Part of the MyEclipse Distribution. MyEclipse SNAPs (Simple Non-integrated Applications) are special-purpose, Windows-integrated appliations that are targeted for quick, non-IDE based development tasks.If required, one can use plugins other than core RCP plugins, e.g., one might want to use the help plugins, search plugins, and so on.
    Eclipse RCP Application

Eclipse - The Tools Framework

Plugins make Eclipse what ever one wants it to be. For the tool integrators, this is a universal platform to which everyone can contribute extensions. Tool development on Eclipse leverages the existing platform infrastructure to contribute new functionaility and to extend existing functionality.Many of such tools are very popular and include

Eclipse as Tooling Framework

Eclipse - The Application Framework

For enterprises it makes sense to have a single application framework so that all the tools and frameworks can be built on a common basis. Individuals and enterprises can leverage frameworks and tools provided by the Eclipse eco-system and also benefit from the different release time lines of Eclipse. One of the example is to be able to support the entire development life cycle of a complex engineering activity flow of an organization using to Eclipse. Various development stages such as system requirements, software requirements, component design, function design, coding, unit testing, integration testing, system testing, delivery, and finally the issue tracking can be integrated into Eclipse. On the technical level this transforms to writing new tools/plugins if necessary, using plugins from 3rd party vendors, using the tools and frameworks from the Eclipse community and finally completing the maze by integration.

Genuitec is one of the companies that extensively use the Eclipse platform and other frameworks of Eclipse to have a set of seamlessly integrated tools.

Robert Bosch is a leader in automotive supplier in Europe and North America. Bosch has adapted Eclipse and developed applications based on the Eclipse, EMF and GEF.

Eclipse Application Framework

Summary

Eclipse is an IDE and application framework for anything you want, while not tying you down to anything in particular. It depends on the user’s/developer's perception and what is targeted to achieve with the help of Eclipse. With the contribution rules of Eclipse and platform architecture, its easy to contribute one’s own functionality and/or extend Eclipse.

References

  1. Eclipse Platform Overview
  2. Eclipse House Rules
  3. Eclipse RCP Applications

Discover how the Watson team is further developing SDKs in Java, Node.js, Python, iOS, and Android to access these services and make programming easy. Brought to you in partnership with IBM.

Topics:

Published at DZone with permission of Suresh Krishna. See the original article here.

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

SEE AN EXAMPLE
Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.
Subscribe

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}