LANGUAGES AND DEVELOPMENT ENVIRONMENTS
The Eclipse IDE and Application Framework 2.1
Sebastien Marineau-Mes, Eclipse CDT Project Lead, QNX Software; Jacob Lehrbaum, Project Marketing Manager for Tools, MontaVista Software; Anthony Green, Director of Business Relations, Red Hat
Eclipse is changing the way we write code: To prevent squinting at compiler errors, the quick-fix feature corrects them automatically. To prevent relaunching and referring to console output, the debugger lets classes be modified and variables be changed while running. To prevent text searches and lengthy edits, the tool support makes adding a method parameter as easy as changing a variable.
Eclipse promises to be more than a Java IDE—and it delivers. Its tight integration into the popular operating system and native look and feel have sidestepped the common problems of Java applications on the desktop. The open sources, transparent development process and independent Eclipse.org organization have spawned a vibrant developer community.
As a Java tool, Eclipse contains all the features that we expect from a modern IDE, plus a few that put it ahead of the pack. Refactoring support is thorough and growing. The editor and content assist are state of the art. Structure views of revisions make even primitive version-control systems easy to use. If you’re doing agile development on the Java platform, this is the IDE you want.
IntelliJ IDEA 3.0
Programmers working in Java need this tool. True, getting a hacker to switch IDEs is like trying to pry a badger out of its hole: You’ll be pretty hacked up by the time you’re done. But it’ll entertain you and educate the badger, so why not give it a try?
Prague-based JetBrains’ priorities are simple: Refactoring, refactoring, refactoring. Have you repented of explicit constructor calls and seen the Factory Method light? Despair not—you needn’t hunt down all eleventy-kajillion instantiations. Pull “Replace With Factory Method” down from the menu, boom, oneness with the Gang of Four. They’ve even included Generify to leverage the support for generics in Java 1.5. They’ve also answered the Java GUI programmer’s lament: Instead of polluting your source with mindless Swing prattle, IDEA factors out what you do in the visual designer into XML files; a GUI compiler takes it from there.
“Here, badger, badger …”
Developers are always looking for new abstractions and technologies for the next advance in productivity: Aspects are one such advance.
Aspects are objects whose behavior is triggered not by explicit calls, but when program execution matches a particular pattern. They work with existing code without requiring that code to be touched in any way. AspectJ, the premier aspect-oriented language whose source code is available under the Common Public License, was developed at Xerox Parc and is now an open source project based at http:// eclipse.org/aspectj. Since AspectJ is a compatible extension to Java, all legal Java programs are legal AspectJ programs and run on standard Java virtual machines. Even more importantly, AspectJ is easy for a Java programmer to learn and appreciate. It behooves you to check it out.
OS X Xcode Tools
Cupertino, Calif.-based Apple’s Macintosh continues to belie the rap that it’s a niche product for the Hollywood crowd, graphic artists and Web designers—thanks in no small part to its new series of machines running Unix-based OS X. But with the release of the Xcode IDE and suite of programmers’ tools included with every shipping copy of 10.3 Panther, programmers too can find reasons to switch to the highly integrated and productive Macintosh programming environment. Whether you write code in C, C++ or Objective-C for Cocoa (Mac) applications, or you write Java code for everyone, Xcode will jolt you. It includes an interface builder for designing native OS X apps, predictive compiling and builds that can be distributed to other Macs on your network. But what really makes the Mac shine as a programmer’s workstation is how smoothly and unobtrusively everything collaborates.