Sciology = Science + Technology

Commonsense in Technology

What do you do with Eclipse ?

Posted by sureshkrishna on October 7, 2007

Eclipse the ubiquitous platform has survived another challenge by releasing the Europa and the incredible download numbers speak for it. Initially it was perceived as a Java IDE  then Tool development Environment, then RCP  Platform, then Tool Integration Platform and now its an eco-system of platform, application frameworks, tools, runtimes and especially Eclipse is 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, which can be transformed. It is very interesting to see what eclipse means to different people. Following scenarios give a better understanding of what can be done with eclipse (and the rest are for your imagination…)

Eclipse – Java IDE

As comprehended in early 2000 (even now after the europa release), its a Java IDE with which java developers can create, modify, debug, build the 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, etc… In this use-case scenario eclipse is being primarily used as Java IDE. Eclipse + JDT  = Java IDE. Eclipse Platform contains basic UI elements (swt, jface), runtime, help system, debug support, search support and some other IDE elements. Java IDE can be downloaded from Eclipse Site.

Java IDE

Eclipse – Plugin/Tool Development IDE

Along the similar lines of the Java IDE, the C/C++ development tools, PHP development tools, Cobol development tools, etc… have brought fabulous features in the Eclipse eco-system. These development tools not only improved the productivity of the developers but also Myth-Busters for many managers, developers. This gave the real meaning for eclipse, an open, extensible IDE for anything, but nothing in particular. Vendors were successfully able to adopt the Eclipse Platform and build several tools and Language Editors around it. The ground rule of “Everything is a contribution” perfectly fits in this scenario.
PDE (Plugin Development Environment) and JDT (Java Development Tools) are the ones that support and enable this use-case. A plugin can be developed, debugged, deployed with the help of these two tools. 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 there is PDE and JDT in the eclipse that has been used. Thus depending on the user and what he is trying to achieve, the perception changes.

Eclipse + Ruby on Rails = RadRails
Eclipse + Ruby on Rails = 3rdRails
Eclipse + JDT = Java IDE
Eclipse + PHP = PHP IDE
Eclipse + CDT = C/C++ IDE
<!–[if !supportLineBreakNewLine]–>
<!–[endif]–>

IDE Framework


Eclipse – RCP

Application development requires a platform to relay upon, where an organization’s software product lines can be built. A 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 available UI features. In the end users and IT departments wants to have a uniform architecture, 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.

Few examples from Open Source RCP applications included, but not limited to…

<!–[if !supportLists]–>·        <!–[endif]–>JPMorgan’s Banking application

<!–[if !supportLists]–>·        <!–[endif]–>Maestro – NASA Space Mission Management

<!–[if !supportLists]–>·        <!–[endif]–>GumTree – Australian Nuclear Science and Technology Organization – GumTree is an open source multi-platform scientific workbench for performing scientific experiment under a server-client environment. It provides easy-to-use graphical user interface for instrument data acquisition, online or offline data visualization and analysis.

<!–[if !supportLists]–>·        <!–[endif]–>RSSOwlApplications that collect data from RSS-compliant sites are called RSS readers or “aggregators.” RSSOwl is such an application.

<!–[if !supportLists]–>·        <!–[endif]–>Talend Open Studio 1.0Talend Open Studio is the first ETL open source software provider for data integration tools (ETL: Extract, Transform, Load)

Following are examples for Commercial plugins

<!–[if !supportLists]–>·        <!–[endif]–>Actuate BIRT Report DesignerThe 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.

<!–[if !supportLists]–>·        <!–[endif]–>BSI CRM on EclipseThis 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 and also retention management.

<!–[if !supportLists]–>·        <!–[endif]–>IBM Workplace Client Technology – IBM Workplace Client Technology is a strategic new IBM framework to enable the creation of server-managed rich client applications.

<!–[if !supportLists]–>·        <!–[endif]–>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 applications 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 etc.

RCP

Eclipse – Tools Framework

Plugins makes eclipse what ever one wants it to be. For the tool integrators, this is a universal platform on which everyone can contribute and extend on. Tool development on Eclipse leverages the existing platform infrastructure to contribute and/or extend the existing functionality.

Many of such tools that are popular are like

<!–[if !supportLists]–>·        <!–[endif]–>Web Tools Project (WTP)

<!–[if !supportLists]–>·        <!–[endif]–>Eclipse Modeling Framework (EMF)

<!–[if !supportLists]–>·        <!–[endif]–>Graphical Editing Framework (GEF)

<!–[if !supportLists]–>·        <!–[endif]–>Business Intelligence and Reporting Tools (BIRT)

<!–[if !supportLists]–>·        <!–[endif]–>Test and Performance Tooling Project (TPTP)

<!–[if !supportLists]–>·        <!–[endif]–>Aptana Web2.0 IDE

<!–[if !supportLists]–>·        <!–[endif]–>MyEclipse

Tool Framework

Eclipse – Application Framework

For enterprises it makes sense to have a single application framework so that all the tools and frameworks can be built upon. 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 examples is to be able to create the entire development life cycle of a complex engineering activity flow of an organization in to the eclipse. Various development stages like, 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 eclipse community and finally completing the maze by integration.

Genuitec is one of the companies that extensively use the Eclipse platform and other frameworks on the eclipse to have a set of seamless integration of tools.

Innopract based its products like Yoxos and RAP on the eclipse platform.

Application Framework

Summary
Eclipse is an IDE and application framework for anything and nothing in particular. It totally depends on the user/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 ones own functionality and/or extend the eclipse.

References :
1) Eclipse Platform Overview http://www.eclipse.org/platform/overview.php
2) Eclipse House Rules http://udig.refractions.net/help/index.jsp?topic=/net.refractions.udig.doc/html/Eclipse%20House%20Rules.html
3) Eclipse RCP Applications http://www.eclipse.org/community/example_rcp_applications_v2.pdf

About these ads

2 Responses to “What do you do with Eclipse ?”

  1. Another example of open source RCP application ( sorry for advertising :-) )

    ShareMedia – Photo manager. It includes metadata editing, 3D viewer (OpenGL) and sharing on jabber IM network and Google’s Picasa Web. The project home page is http://sourceforge.net/projects/sharemedia and some screenshots are available at http://nricheton.homeip.net/?p=95

  2. Definitely believe that which you stated. Your
    favorite reason seemed to be on the web the easiest
    thing to be aware of. I say to you, I definitely get annoyed while people consider worries that they plainly do not know about.
    You managed to hit the nail upon the top and also defined out the whole
    thing without having side-effects , people can take a signal.
    Will probably be back to get more. Thanks

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
Follow

Get every new post delivered to your Inbox.

Join 37 other followers

%d bloggers like this: