Inside Eclipse 3.0's June 30 Download
The Eclipse Foundation will release Eclipse 3.0 for download June 30, making it available under royalty-free general availability. The word that Eclipse 3.0 will ship next week brings to culmination more than a year of design, developing and testing. Download Eclipse 3.0 here
Integration Developer News spoke with Eclipse project lead Erich Gamma, who told us the Eclipse team focused on four (4) "main directions where we want to take Eclipse...to the next level."
The upgrade focus areas include:
For all these future-facing moves, Gamma said the platform picture for Eclipse still shows Windows is still the most popular, but adds there is a growing interest in Eclipse on other platforms like Linux and MacOS X. Now, onto the features:
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.