Eclipse is an open, universal tool platform or tool base. Open means that Eclipse is an open-source project. Universal means that Eclipse uses an innovative plug-in architecture allowing near-infinite extensions to the base IDE. These plug-ins can do anything from syntax highlighting to interfacing with a source code control system. While the Eclipse project started with just a Java IDE, IBM and RedHat jointly released a C/C++ IDE earlier this year.
Eclipse 3.1
In June 2005, after a full year of development, the Eclipse Foundation released a significant new version of Eclipse: V3.1. Improvements in the new release span from the core Eclipse platform to the Eclipse JDT and the Eclipse Plug-in Development Environment (PDE), a complete environment for developing software that extends Eclipse. If you haven't tried Eclipse for a while or have yet to use Eclipse, V3.1 deserves a close look. The following are few new features introduced in Eclipse 3.1:
-
Better performance
Prior to V3.1, Eclipse had a reputation for being sluggish. To address the concerns of many developers, considerable time and effort was spent to optimize the platform, with impressive results. In V3.1, Eclipse's memory footprint is smaller, and the entire Eclipse platform is faster and more responsive across all platforms (including Mac OS X, Windows, and Linux). Moreover, the platform has been instrumented thoroughly, making performance degradations (and improvements) quite visible.
-
Smarter Help
Eclipse V3.1 includes a new context-sensitive dynamic Help system that keeps pace with you as you change from task to task. Move from one view to another -- even from one line of code to the next -- and the dynamic Help view updates to present the most relevant list of topics and documentation for the task at hand.
-
Improved usability
Major and minor changes make the Eclipse platform simpler to use. For example, the entire platform now supports bi-directional languages, you can use a keyword to filter preferences or properties -- no more frantic browsing through long lists (Figure 2 shows the preferences that match the keyword tab), you can import multiple projects at a time and can even import from a tar or zip archive, plug-in installation is as simple as installing a single jar file, and the new Install Wizard installs all plug-in dependencies automatically.
-
J2SE V1.5
In addition to the many niceties listed above, all the new Java language enhancements found in J2SE V1.5 are supported in Eclipse V3.1, including generics, auto-boxing, enhanced for loops, annotations, and enumerated types (enums), among others. J2SE V1.5 not only expands the Java language but many of its features make the programming language more type-safe, leading to more compile-time errors and fewer runtime errors.
Eclipse 3.2 Features
-
Refactoring scripts and API-awareness
Let’s say you need to replace a method your public Java API with a new method. In Eclipse 3.2, when you rename the method you can have it automatically:
- keep the original method as a delegate to call the renamed method,
- mark the original method as deprecated, and
- export this refactorization and others in a script as part of your Jar file
- Clean Up Wizard
Now you can enforce coding standards across your entire team at no cost to the team. For example you can force curly brackets to be used for every if statement, convert all for loops to enhanced for loops, and so forth. Simply have them run the Clean Up Wizard before checking in code.
- Pervasive filtering support
Import, Export, New, Show View, Preferences, and launch configurations all have a little text area where you can type a few characters to narrow down the list of items being displayed. It might not sound like a big feature but in practice it’s a real time saver.
- Improved patching support
A patch file is a text file containing a list of differences between two different versions of software, usually your playpen version and the version pushed to the source repository. This is a very handy thing to have, for example you can use it to share changes with colleagues without committing changes to CVS. Eclipse 3.2 refines patch creation and application to allow patches that span multiple projects and let you save them anywhere in the file system.
- CVS Quick Diff annotations
Turn on annotations for any source file, and a bar will appear on the left hand side showing ranges of changes that different users have made in that file. If you hover your mouse over the bar, a popup window will show the details of that revision, and a bar on the right hand side will light up with all the other changes they made at the same time.
- Null reference analysis
The compiler is smart enough to figure out many cases where you are accessing a null variable, or conversely checking for null when it can’t possibly be null. One common mistake this catches is when you meant to test if a variable was NOT null and then use it, but you tested to make sure it WAS null instead.
- File system API
Eclipse 3.2 introduces a new layer for interacting with file systems. Rather than use the java.io API directly, the platform has been migrated to use this file system API instead. Thus resources can be created in arbitrary backing file systems provided by plug-ins. An example file system is provided that lets you use files inside zip files just like they were in regular directories. This has got a lot of potential that has yet to be explored by plug-in writers.
- JFace field assistance
Rich client programs can take advantage of new features in JFace (Eclipse’s high level user interface layer) to mark required fields, show field-based error conditions, and provide content assistance (as you type or when the user hits Ctrl+1).
- Custom draw trees and tables
Most UI toolkits have had this ability for years but finally SWT (Eclipse’s low level user interface layer) lets you customize how cells are drawn in tables and trees. For example you can display data as bar charts, show multiple lines of text, change colors and fonts, override native selection appearance, and so forth.
- Faster and smaller
Finally, Eclipse 3.2 adds all this while being faster than 3.1 and taking less memory. All during the 3.2 development cycle, performance has been monitored and adjusted to provide a faster experience on larger projects.
|