Eclipse 3.0 Upgrade Demos on Tap at EclipseCon
Eclipse committers are hard at work on upgrade features for Eclipse 3.0, slated for release in summer 2004. Key improvements include a generalized Eclipse platform for building non-IDE applications, increased UI responsiveness, and generalized Java tools to support Java like languages. IDN spoke with Erich Gamma, an Eclipse Project Lead who will be showing Eclipse 3.0's latest progress at February's EclipseCon event.
Eclipse committers are hard at work on upgrade features for Eclipse 3.0, slated for release in summer 2004. Key improvements will include a generalized Eclipse platform for building non-IDE applications, increased UI responsiveness, improved user experience, and generalized Java tools to support Java like languages (e.g. JSP files).
To get a closer look at Eclipse 3.0, OET spoke with Erich Gamma, one of the Eclipse Project Leads. Gamma will be surveying the latest progress on Eclipse 3.0 at February's EclipseCon event.
While the Eclipse download for Windows is still the most popular, there is a growing interest in Eclipse on other platforms like Linux and MacOS X.
"We've identified four (4) main directions where we want to take Eclipse," Gamma told OET.""As a whole, these efforts taken together have the goal to grow the Eclipse community to the next level." The upgrade focus areas include:
(1) Rich Client Platform -- moving beyond development tools, (2) UI Responsiveness -- running more operations in the background (3) Improved User Experience -- easier navigation/accessing features, and (4) Generalized Java tools -- handling more than just Java source files.
Eclipse 3.0 Focus 1 -- Rich Client Platform
Enabling Eclipse for Rich Client Dev
Gamma says the move to expand Eclipses' reach into general application development is a really exiting one. It will expand the Eclipse community from tool builders to general application developers.
Many developers are already "force-fitting" the current Eclipse version for general application development. They use the Eclipse mechanisms which are not specific to integrated development tools, such as its plug-in architecture, its configurable and portable UI, the installation and help support for their rich client application development. "The problem," Gamma said, "is that Eclipse was initially designed to be a universal platform for development tools. That meant developers had to do some tweaks to remove the IDE specific traits."
To enable rich client application development the IDE-specific features were separated into a new plug-in. With Eclipse 3.0's "generic workbench", Gamma said that developers can implement plug-ins not only for IDE tools but for general rich client applications.
When building on top of Eclipse you no longer build applications, instead you implement plug-ins which extend the Eclipse platform. Gamma said: "In fact when I think about it, there are not that many situations where I would favor implementing a Java application instead of implementing a plug-in for Eclipse."
Gamma said the importance of this new factoring is already starting to surface, as IBM is releasing the Lotus Workplace platform to build on top of Eclipse's "generic workbench,"
As part of the rich client platform Eclipse 3.0 adds support for "dynamic plug-ins," which means devs can install a new plug-in without the need to restart Eclipse; "Restarting can be tolerated when Eclipse is used as an IDE, but it becomes less acceptable when it is used as a rich client application platform," Gamma said. He added. "You don't have to restart a web browser to install a new plug-in, and so Eclipse should offer the same comfort for its users," Gamma said. Support for dynamic plug-ins enables applications to expand their functionality in an on-demand fashion, he added.
Rather than re-invent the wheel and implement yet another run-time with dynamic component deployment support, the Eclipse team will build on top of the OSGi standard component framework. OSGi This OSGi based approach will be mostly hidden to clients and existing Eclipse plug-ins continue to work.
Eclipse 3.0 Focus 2 -- Responsive UI
Making it easier to write Eclipse plug-ins that keep the UI responsive.
"Responsiveness is not the same as performance," Gamma said. "What we want to do is to minimize the time you have to wait because the system is already processing another request. An obvious trick to do that is to run operations in the background."
Eclipse 3.0 will provide a common infrastructure for implementing operations as background threads, and leverage this execution support to refine its already existing "continuous building" technology," Gamma said. The result: "As a developer changes code it will be automatically recompiled in the background. Similarly operations like communicating with a source repository are executed in the background without breaking your work flow, " he added.
Eclipse 3.0 Focus 3 -- UI Scalability
UI scalability in the face of tons of contributions
Gamma explains it this way: "Eclipse is somewhat a victim of its own success as people build richer and richer products on top of Eclipse. One problem we face is that the resulting products surface all features from all the layers that they build upon â€¦ Today, everything that gets added to the [Eclipse] platform gets shown to every user."
As an example, Gamma said devs should consider a business modeling product "A business modeler is not particularly interested in the Java development tools support provided by the Eclipse platform. In fact, they are not interested in it at all and are confused by their presence. However, in its current form the business modeler is also exposed to the full Java development functionality and they can easily get lost."
As a result of this constant addition of new features and capabilities to Eclipse, Gamma told OET, "It is no longer sufficient [for Eclipse] to be just a platform for integrating tools. The Eclipse platform has to provide additional mechanism to filter the UI and allow a product to decide what is shown to the user. We want to avoid that users get lost in a sea of features."
So, how will the filtering of user functionality defined?
Gamma said it will based on the notion of "an activity," or the grouping of related UI functionality together. An activity defines which UI elements (menu actions, toolbar items) should be shown to the user. Furthermore activities can be grouped into categories. The key point is that a product is in control and can define its activities. It is the up to the user to pick which activities they want to have available. With this feature, the developer won't be overwhelmed with a long list of choices, most of which are not relevant.
For example, Gamma said, a web development product can group its features into activities like page design, servlet development, XSL development, EJB development, etc.
Eclipse 3.0 Focus 4 - Generalized Java Tools
Opening Up Java Development Tools (JDT)
Currently Eclipse supports manipulating and navigating in Java source code and even more important comprehensive refactorings, so that developers won't have to do the tedious and error prone manual update process when changing Java source code like renaming a method or class.
"But, when I'm using JSP and XML with Java in the web world, it is still tedious to update my project when I change a Java name," Gamma said. . "The Eclipse Java development tools have spoiled its users. It's only fair they now expect that not only the Java source code but all the other artifacts are updated as well" .
In specific, the Eclipse 3.0 Java tools will be opened-up so that other parties can participate in search and refactoring operations. Beyond that, the Java tools will be opened so that contributors can participate in some key productivity features like quick fix and quick assist. (This change would mean that a developer could contribute additional checks and fix suggestions to support EJB development, for example.) . Finally, Eclipse 3.0 will provide support for debugging Java like files e.g. JSPs.
Highlights at February's EclipseCon
A survey of the progress on the Eclipse 3.0 features, will be given during the 2004 EclipseCon, held February 2-5, 2004 in Anaheim, Calif. John Wiegand, a fellow Eclipse Project Lead will complete the Eclipse State of the Union address during the event. Other keynote speakers at EclipseCon will include: Grady Booch, IBM/Rational; Michael Tiemann, Red Hat; Simon Phipps, Sun Microsystems, and Gregor Kiczales, formerly Principal Scientist at Xerox PARC (the Palo Alto Research Center), and now Professor of Software Design at the University of British Columbia.
In addition to these key note talks, the event shows the full spectrum for how to leverage the Eclipse ecosystem. Several talks present in-depth details about how to extend the Eclipse platform and how to use the Eclipse tools and frameworks. Multiple talks provide insights in how to use Eclipse for rich client application development. Finally a broad range of technology companies report their experience in building on top of Eclipse.