...making Linux just a little more fun!

<-- prev | next -->

EclipseCon Conference 2006: The Way of Eclipse

By Howard Dyckoff

The 2006 EclipseCon had more of everything -- projects, developers, tech sessions, exhibitors and sponsors. This is substantially due to the increasing use of Eclipse both by corporate developers and at within the major tool vendors. IBM, BEA, Compuware, Sybase, just to name a few, are all dedicating their in-house resources to furthering many Eclipse projects, and reaping the benefits of interoperable tools and components.

Over 1300 people attended, and it was a sell-out. The main EclipseCon conference ran 3 days, preceded by a day of tutorials, 2 of which were free to conference attendees [ by BusinessObjects, and by BEA]. There were 7 simultaneous tracks, but some were 'short talks' [4 crammed into an hour] and some were 'long talks', so there was a lot of intersession movement. Here's a link to a table view of the sessions: http://www.eclipsecon.org/2006/Table.do?id=all&date=2006-3-21

Now that Eclipse 3.2 is out and the coordinated Callisto release of Eclipse projects has been successful, it would be nice to review the conference that preceded Callisto.

It's hard to believe that Eclipse got started less than 5 years ago but is now widely used and respected. The Eclipse Platform is written primarily in Java and has been deployed on a range of development workstations including Linux, HP-UX, AIX, Solaris, QNX, Mac OS X, and Windows systems.

Eclipse is first and foremost a tools framework. The editor/IDE code is itself an assemblage of tools and components built under various Eclipse projects. What Eclipse provides is an extensible development platform with application frameworks for building software in a consistent way. The Eclipse ecosystem is those projects, and it is also the developers and vendors who contribute to those projects. At EclipseCon, those folks get to meet each other.

One goal of this Eclipse summit was to coordinate on-going Eclipse projects to better compete with offerings from Redmond. This is shown in the complete lifecycle approach that many projects take [see 'ALF' and 'Corona' below]. But, because most of Eclipse is Java-based, developers get a 'write-once, run mostly any where' premium with Eclipse. With the upcoming Vista/Windows OS moving away from the aging Win32 API, there may be incentive for enterprises to consider Eclipse for that very reason.

EclipseCon is where a vast and vibrant community assembles. There are poster sessions for embryonic projects and whole tracks of sessions for widely adopted projects. It can be a bit daunting for an Eclipse newbie, although some of the tracks [and tutorials] are aimed at those starting out.

I have a few session summaries below, but found I needed to study the varied Eclipse projects to understand how everything fit together. So, here are summaries of some major Eclipse initiatives, many of which were announced or highlighted at EclipseCon:

ALF -- Integration the Open Source Way

ALF extends the popular Eclipse development platform by using an open-source framework to tightly integrate ALM suites or individual products, helping developers to manage application changes. The Eclipse Foundation announced support and new partnerships that strengthen the Eclipse Application Lifecycle Framework (ALF) Project, and has made new proof of concept code available for download.

In the current practice, varied integration tools use numerous point-to-point integrations that are fragile, partial, and inflexible. The solution [ paraphrasing from the ALF Web page, http://www.eclipse.org/alf/ ] is to make tools orchestratable to provide repeatable processes responsive to changes in an organization by building upon an interoperable and collaborative collection of services and components. The tool provider can expose as much (or as little) as he or she chooses, and the consumer of these technologies will have the ultimate control over how these technologies are orchestrated together. This is putting SOA (Service-Oriented Architecture) into the tool set.

Using a BPEL engine to orchestrate the 'ServiceFlows', compliant tools makes ALF aware that something significant has happened, and the ALF EventManager filters and routes those events. There is also a set of domain vocabularies that define the events, objects, and attributes.

The ALF Project, initiated by Serena Software in the spring of 2005, addresses the universal problem of integrating Application Lifecycle Management (ALM) technologies so that they provide full interoperability. Currently more than thirty vendors have pledged support for the ALF project, and recent additions to those committing resources include AccuRev, PlanView, and Viewtier.

The four primary objectives of the ALF project are to provide an SOA-based cross-tool communication infrastructure for ALM solutions; leverage Eclipse open-source components and industry standards; develop common and extensible domain-specific vocabularies for improved interoperability; and provide conformance rules for varying levels of participation through a layered Web services extensibility API. ALF is a liberating shift in how IT organizations can effectively manage change within their environment and free developers from a most common pain point -- broken development tool integration.

"ALF changes everything," said Kevin Parker, vice-president of market development at Serena, and Eclipse ALF Project Management Committee member. "As tools evolve, ALF will remain the constant integrator, enabling developers to select best-in-class technologies in support of enterprise initiatives."

"ALF is an important project for the future growth of the Eclipse ecosystem," said Mike Milinkovich, executive director of Eclipse Foundation. "ALF builds on the promise of the Eclipse platform for tools integration, and provides an open-source infrastructure for collaboration and interoperability between development tools across the entire lifecycle."

So, a lot of vendors in the Expo Hall displayed ALF logos at their booths and some, particularly Serena and Seque, provided integration demos.

Corona Project - a Tool Services Framework

Linked with ALF, Corona is about tool integration and an event model to propagate events across multiple Workbench instances. Corona will enable Eclipse constructs, such as a "project", to be shared in a distributed environment. Corona will provide an Eclipse-based server-side runtime environment that will provide Web service access to allow manageability to SOA components deployed within Corona.

Corona is conceptually a layer of middleware between the Eclipse framework and individual plugins. With Corona, multiple developer workbenches share events. However, the layer is generalized enough that non-Eclipse development environments can participate [e.g., Microsoft's VS, via a Web service].

Corona can be compared to the collaboration back-end of Microsoft VS Team Foundation server and the tool integration of MS VS Team System. There are also elements of IBM's JAZZ developer collaboration. Taken together, ALF and Corona lay the groundwork for Eclipse to succeed at Application Lifecycle Management [ALM] and to compete with all of Microsoft's offerings in this arena. Demonstrations of both ALF and Corona were provided during the two day track of demos at EclipseCon.

See: http://www.eclipse.org/corona/doc/Corona%20Eclipse%20Forum%20Europe.pdf

Rich Client Platform - RCP

While the Eclipse platform is designed to serve as an open tools platform, its components can be used to build just about any client application. RCP provides a way of assembling GUI-based applications that can run without the need for the full Eclipse IDE. It offers standard client interface components that works as a front end to enterprise apps running on Linux or any other supported OS. That means any client, any server.

The minimal set of plug-ins needed to build a rich client application is known as the Rich Client Platform. The main thing that differentiates a rich client application from the platform workbench is that the application is responsible for defining which class should be run as the main application.

Applications other than IDEs can be built using a subset of the platform. These rich applications are still based on a dynamic plug-in model, and the UI is built using the same toolkits and extension points. So, the developer can chose how light or heavy to make the application.

The initial goal was to reuse Eclipse components to build and deploy applications on any platform and leverage the Eclipse development model. However, there are now four initiatives to extend the usefulness of RCP:

Here's a good place to start with RCP: http://eclipsewiki.editme.com/RichClientPlatform
Also consider: https://www6.software.ibm.com/developerworks/education/os-rcp1/section2.html [with login]

If that just whets your appetite, consider these podcasts on the major Eclipse projects:

Session Summaries

Most of the Technical Sessions are available here: http://www.eclipsecon.org/2006/Sub.do?id=all

I'll provide a few summaries below:

State of Eclipse

This presentation was formerly called 'Eclipse goes for Global Domination', and was hosted by John Andrews of analyst firm Evans Data Corp (EDC). He decided to be a bit less pre-emptive.

Eclipse users are substantially VARs and corporate developers, compared to general user population statistics. This means that, at smaller companies, there is less adoption of Eclipse, but it is very well represented in the middle and large company space.

North American growth of Eclipse use has been 88% in 2+ years, while Euro-ME-Africa adoption has grown 7-fold.

Results from EDC's IDE use survey shows Eclipse is 2nd to Visual Studio, at 24.3 vs. 55.3 percent, whereas Sun Java Studio and NetBeans, and IBM and Oracle's IDEs are all just around 11% each. However, Eclipse use is growing faster than Microsoft's VS suite. [Note that both of Sun's tools add up to about 22%.] EDC estimates that Eclipse could catch up with Visual Studio in about two more years.

While MS tools dominate both enterprises and SMB, Eclipse growth is stronger in the enterprise, while trends show MS VS use is dropping slowly in large corporations. Among the challenges Eclipse will face in winning over Microsoft-based developers is a perception that Visual Studio provides more functionality in the Windows environment than Eclipse, and that it seems to have better support offerings from Microsoft.

Driving Eclipse acceptance is its low cost and other factors, such as its existing broad industry adoption and the belief in developer circles that Eclipse is among the most technologically advanced tools sets. Yet, fewer than 30% are willing to pay for Eclipse support, and only 15% are ready to pay now. Andrews called this a 'complex story", since most respondents are unwilling to pay over $100 for a plugin, and only 15% willing to pay up to $250. That may trouble companies betting their futures as commercial developers of Eclipse plugins.

The graphic below is taken from the Evans IDE study, and shows the overall developer rankings based on compiler, make functions, editor, profiler, help, etc., and shows both Eclipse and NetBeans trailing the other IDEs.

Another trend EDC notes: more Eclipse users are using more OSS, and more often. This is consistent with the willingness to embrace a FOSS IDE in a corporate setting and it may mean that Eclipse is really the camel's nose in the tent.

[Evans Data had promised us at LG that they would make many of the supporting slides available by June, but they haven't. This partly updated 'IDE Scorecard' is publicly available, but it doesn't fully cover the EclipseCon presentation: http://evansdata.com/devchoice_ide_scorecard.shtml]

Comparing Eclipse to Visual Studio

Java developer Madhu Siddalingaiah presented a comparison of Microsoft's Visual Studio IDE to Eclipse and its open-source development environment. [This presentation is here: http://www.eclipsecon.org/2006/Sub.do?id=50]
As a developer currently working on an e-prescription project using the PocketPC platform, Siddalingaiah has first-hand experience with both VS and Eclipse.

Siddalingaiah first conceded that the Visual Studio IDE is great for beginners. It gives a novice a headstart, can support multiple programming languages [VB, C++, C#], and can produce code targeted at different environments, but mostly Microsoft. (This may change as MS flirts with Xen virtualization to host Linux on Windows; see related NewsBytes story here.)

The VS IDE, he noted, also has features for more-advanced users. However, the development processes in Visual Studio still follows the old waterfall development model: code, compile, debug, and repeat, repeat, repeat.

Eclipse, in comparison, is open source, has a large developer support community, and its code runs in almost every computing environment. There is no Microsoft platform lock-in and no Microsoft platform 'tax'. [VS Studio and Team products cost hundreds of dollars per seat.] Also, new development tools and frameworks just snap in.

That said, Siddalingaiah went on to critique VS in more detail: its classes and methods are insufficiently documented for a developer, and the compiler lacked full code completion and code refactoring. He jokingly compared the C-compilers to "TurboC with a GUI". Unless 3rd party add-ins are considered, VS Studio lacks the constellation of plug-ins that expand Eclipse capabilities [UML modeling, for an example]. Eclipse is open and open source, while VS is not. But VS is more polished and requires less training.

Siddalingaiah did consider Visual Studio Express a good value [it's free!] for novice Windows developers, but cautioned again about the Microsoft lock-in.

Why You Should Use Eclipse RCP (in 10 minutes)

This was a zippy demo that displayed Eclipse RCP's strengths and eased concerns about the difficulties of RCP development. Presenter Wayne Beaton started by citing the strengths of Eclipse and the richness of the UI, which has the plumbing provided with help services and update capabilities. Eclipse RCP makes use of the Eclipse component model, which adds features not in standard Java. These components can be versioned and are dynamically loadable. Beaton also noted that GUI- and non-GUI extension points can be used for application integration without component interference. Menus and views can be shared.

Testing Applications Using the Eclipse Test and Performance Tools Platform (TPTP)

Paul Slauenwhite described how to use the performance, JUnit, and manual test tooling in the Eclipse Test and Performance Tools Platform (TPTP) for testing applications. TPTP provides a flexible and extensible framework for creating and managing tests, deployments, datapools, execution histories, and reports.

TPTP is composed of 4 basic projects:
- Platform
- Test
- Trace and Profiling
- Monitoring

TPTP includes reference implementations for manual testing, JUnit tests, URL and automated GUI testing [Recording/Playback] of applications. See: http://eclipsezilla.eclipsecon.org/php/attachment.php?bugid=102

What's New in UML2

Kenn Hussey of IBM Rational SW explained that UML2 is an Eclipse sub-project for an EMF implementation of the UML metamodel. It provides an XMI schema to allow interchange semantic models and provide test cases for validation and implementation. Mapping the XMI schema to Java was, as he said, 'non-trivial'.

Hussey explained that his project team had to weed out errors in the spec, which will help all UML2 implementers. These errors were reported to the UML 2.1 Revision Task Force. UML2 now supports one namespace for all elements, using UUIDs - Universally Unique IDs.

The UML sub-project team are providing better documentation, plus a number of convenience methods. The final version of plugin, supporting UML 2.1, was due in April, will be included in Eclipse 3.2, and will have a migration path for UML 2.2. See: http://eclipsezilla.eclipsecon.org/php/attachment.php?bugid=37

Eclipse User Assistance: Lessons from the trenches

Lee Anne Kowalski (IBM), Maria Brownstein (Sybase) and Dave Resch (Sybase) described lessons learned at two different companies that build products on the Eclipse Platform, particularly the project lifecycle for authoring and delivering content for the help system. They include an overview of the help features available in Eclipse: dynamic help view, cheat sheets, Welcome experience items, tutorials, help system (Bookshelf), and information center function. They ended with examples of tying the help features together for a consistent information experience by users [see: http://www.eclipsecon.org/2006/Sub.do?id=305]

AJAX and Eclipse

One proposal aired at EclipseCon 2006 was Rich AJAX (Asynchronous JavaScript and XML) Platform, or RAP Project, an open-source project that aims to enable developers to build rich, AJAX-enabled Web applications by using the Eclipse development model, plug-ins, and a Java-only API.

The German company Innoopract, which initiated the project, offered code from its W4Toolkit to enable Java component user interface development with a mechanism for browser detection. A full set of APIs are due by year-end, and a RAP 1.0 release due mid-year 2007. IBM and other vendors have also offered AJAX-ified libraries and toolkits for RCP, but RAP is aimed at a fuller AJAX implementation.


Just in time for EclipseCon, the Eclipse Foundation, Zend Technologies, and IBM announced the PHP IDE Project, an Eclipse technology project originally proposed in October at the PHP User Conference. The project delivers a PHP IDE framework for the Eclipse platform, and encompass the dev components needed to develop PHP-based Web apps. It also leverages the existing Eclipse Web Tools Project.

The PHP IDE will extend the Eclipse Platform to support development of next generation Web applications in PHP, and make the robust Eclipse platform available to the large PHP developer community. The project will initially be a set of Eclipse plug-ins that add PHP capabilities to Eclipse and will provide extension points to further extend the functionality of the project. The project will be composed of a set of extensible features covering the development life cycle, including functionality that deals with developing, deploying, documenting, and debugging PHP-based applications.

For more information on the PHP IDE project, please visit www.eclipse.org/proposals/php-ide/.

Comparing Conferences

This conference has really good value if Eclipse is your development environment. Conference prices ranged from about $1000 to $1500 with tutorials [and, as noted above, 2 tutorials were free to conference attendees].

In LG #126, I compared the offerings of the Software Development Conference [SD West] to EclipseCon, and noted some of the perks -- sit-down lunches with Eclipse contributors and good food, great evening receptions, and a fuller Expo Hall. There was also a great conference bag [only a tote at SD West], which had its own detachable PDA case. Finally, the majority of conference presentations were on a 256 MB USB jumpdrive given to all conference attendees. That was sweet. EclipseCon definitely provides more for the buck.

The folks at Eclipse ran a very open process, with a significant number of comments highlighted in the online summary of the post-conference survey. It seems that most attendees were enthusiastic and expect to return.
See the results at http://www.eclipsecon.org/2006/SurveyResults/summary.html

EclipseCon 2007 will be held on March 5-8, 2007 in Santa Clara, California.

Talkback: Discuss this article with The Answer Gang

Bio picture Howard Dyckoff is a long term IT professional with primary experience at Fortune 100 and 200 firms. Before his IT career, he worked for Aviation Week and Space Technology magazine and before that used to edit SkyCom, a newsletter for astronomers and rocketeers. He hails from the Republic of Brooklyn [and Polytechnic Institute] and now, after several trips to Himalayan mountain tops, resides in the SF Bay Area with a large book collection and several pet rocks.

Copyright © 2006, Howard Dyckoff. Released under the Open Publication license unless otherwise noted in the body of the article. Linux Gazette is not produced, sponsored, or endorsed by its prior host, SSC, Inc.

Published in Issue 130 of Linux Gazette, September 2006

<-- prev | next -->