Columns

JBuilder: a powerful and special IDE

JBuilder 2005 Enterprise
Borland Software Corporation
Scotts Valley, Calif.
800-632-2864
www.borland.com
Rating: (four out of five)

A commercial IDE such as JBuilder 2005, whose enterprise edition costs several thousand dollars, needs to be something pretty special. With this in mind, Borland has made the wise decision to target enterprise developers with a toolset that screams corporate, from the sleek, black packaging and Chinese puzzle CD box to its enterprise and teamware features.

JBuilder is available in three editions: Foundation, Developer, and Enterprise. Foundation is free, designed to compete with NetBeans and Eclipse. The Developer Edition is developer-focused, with tools designed to support JavaServer Faces and the new language features of J2SE 5.0. This review focuses on Enterprise, the most feature-packed of the three.

New Features
This latest version of the enterprise edition adds to an already formidable toolbox with a variety of new features. Among the more impressive are the following:

• Built-in support for the latest JDK (Java 5.0, formerly known as JDK 1.5) There’s also a Java 5.0 refactoring tool to help convert your code to take advantage of the new Java 5.0 language features. Less cool but more useful is the support the IDE provides for Java 5.0’s new debugging capabilities.

• New source-code audit and security audit features Programmers hate code inspections and find them demoralizing, so why not let the IDE perform an objective inspection of the team’s code for you, identifying commonly accepted antipatterns in their code?

In practice, this strategy works quite well. Each antipattern is accompanied by an explanation, providing what amounts to an ever-present code tutor, which is especially useful for junior programmers or interns. For the rest of us, it serves as a reminder if we slip into bad habits.

• The new CaliberRM plug-in This brings a useful, developer-centric view of requirements to the IDE, providing a method of tracing requirements directly from the source code. This type of automation will make full requirements traceability viable for teams that might have been too pressed for time to do it.

• UML code visualization The new enterprise edition really excels here (the UML features are only available in this edition), offering programmers the ability to generate class diagrams with full, browser-based navigation.

The user interface One of the first things that struck me about JBuilder 2005 Enterprise was the sheer slickness of the user interface. It looks the part, and perhaps more importantly, it’s snappy and responsive, just like a native application, although I noticed some considerable slowdown when I started doing serious work with it.

JBuilder’s windows are highly customizable, mostly through drag-and-drop operations. For example, it’s possible to create a split view (with two or more Java editors visible simultaneously) by dragging an editor tab to the edge of the window.

The user interface also enhances usability. If you cut and paste a block of code, for example, the code is automatically adjusted to the correct level of indentation—a nice touch. Also, when you paste the code into a different class, the Code Insight tool automatically suggests which packages to import.

Refactoring
It’s good to see that JBuilder supports the usual refactorings, such as Extract to Interface, Inline Method, and Change Parameters, and provides the important ability to find all references to the current method.

Enterprise goes a step further and provides support for so-called distributed refactoring. This allows developers to save their refactorings to a file and share them with other teams, so they can apply them when it’s convenient.

I find this approach slightly dubious because it doesn’t address the real issue. If teams must tread carefully around each other in this way when making changes to the code, they really should be focusing on the architecture, making it more loosely coupled so that individual teams are working on more insular areas of the product. Distributed refactorings, while feasibly useful, treat the symptom rather than the cause.

J2EE Support
If you’re an EJB developer, Enterprise provides good support for a variety of application servers. The IDE provides wizards for creating EJBs and deployment descriptors, and, of course, for deploying them.

Support for XDoclet (a JavaDoc-based code generator used primarily for automating EJB drudgery) is limited to a brief mention in the help file about adding XDoclet-style Javadoc tags. This seems odd, as XDoclet is hugely popular in the J2EE developer community. I suspect that the thinking here is that if you’re using JBuilder, you’ll be using its own wizard-based automation features, so you won’t need XDoclet. But this could be a difficult sell, because, given the choice, developers tend to stick with their preferred sets of tools.

But on the positive side, JBuilder’s support for developing Web applications is phenomenal.  The way it provides integrated support for developing JSPs, for example, far exceeds that of other IDEs.

The IDE’s support for Web app development goes beyond JSPs. Enterprise supports a wide variety of Web frameworks and libraries, including Struts/Tiles, Java ServerFaces (JSF), Cocoon, and even taglibs for Crystal Reports Engine and JSR168 Portlets and, of course, the Java Standard Tag Library (JSTL).

Setting up a project
JBuilder allows you to have multiple projects open, which is very useful, especially for large projects in which separate modules are often divided into independent project views. Once a project is set up, you can see all your source files in the Project tree view on the left, which is standard for all IDEs. A nice touch here is that JBuilder munges the first few package names in the hierarchy into a single-tree node at the root. For example, say your Java code is in a package called com.acme.toys, and includes subpackages, such as com.acme.toys. rubberduck and com.acme.toys.spacehopper. The root tree node will be called com.acme.toys, and you open it to get rubberduck and spacehopper.

It sounds like a small thing, but it’s really nice not to have to mouse-click your way down through com (click)… acme (click)… toys (click)… and so on every time, which in other IDEs gets really tedious.

This is a worthy product, packed with intelligently configured features to support corporate developers. Although it tends to force users into a particular way of working that might not suit everyone’s tastes, it’s a powerful tool. But if you relax and go with the flow, it’ll work hard for you.

Description
Borland’s JBuilder 2005 Enterprise is an all-Java IDE written by Java developers, for Java developers. This version targets enterprise developers with support for EJBs, Web services, XML, mobile, and database application development.

Bottom Line
JBuilder 2005 Enterprise is highly recommended if you don’t mind the steep asking price. However, depending on your needs, you may find that its cheaper (or free, open-source) rivals might be entirely sufficient.

Pricing and Availability
Developer edition: $299 Upgrade, $500 New User; Enterprise Edition: $1,900 Upgrade, $3,500 New User. (The Foundation Edition is available for free download at www.borland.com/products/downloads/download_jbuilder.html )

More Information A complete feature matrix of both new and existing features is available on the company Web site: www.borland.com/jbuilder/pdf/jb2005_feature_matrix.pdf .

Pros: - Packed with features - Easy to learn - Time-saving features improve productivity

Cons : - Restricts you into a certain way of developing - Weak support for industry code-automation tools (e.g. Ant, XDoclet)

Matt Stephens, a senior architect based in London, writes books and articles on software design. Check out his Web site at www.softwarereality.com.

Editor’s note: Product Reviews are independent reviews written by software development professionals, from in-the-trenches coders to big-picture architects, who offer ADT readers warts-and-all portraits of the tools and technologies they use.

About the Author

Matt Stephens is a senior architect, programmer and project leader based in Central London. He co-wrote Agile Development with ICONIX Process, Extreme Programming Refactored, and Use Case Driven Object Modeling with UML - Theory and Practice.