Borland JBuilder 7
Review VERDICT: It's laden with features, but at version 7 JBuilder faces stiff competition from leaner, more modular alternatives.
SPECIFICATIONS: Written in Java and runs on JDK 1.3.1 and anywhere that JDK runs. Supports Windows NT 4, 2000 or XP, Red Hat Linux, Solaris on UltraSPARC II or higher and Mac OS X.
PRICE: £2,149 (JBuilder 7 Enterprise; JBuilder 7 SE, £299; JBuilder 7 Personal, £39; upgrade terms also available all prices exc VAT)
JBuilder may well be a regular award winner and among the most popular Java tools around, but with this release Borland faces a new and powerful rival, Tim Anderson writes. The latest shake-up to hit the Java world is Eclipse, an open-source project heavily sponsored by IBM. Eclipse offers a free and highly extensible IDE that runs on Windows, Linux, AIX, Solaris, QNX and HP-UX.
There are several interesting aspects to Eclipse. One is that it uses the SWT (Standard Widget Toolkit), which is a GUI API offering a thin layer over the operating system's native widgets. Microsoft couldn't get away with this, especially with Windows-only support, but IBM is doing so and winning friends for the fast performance of the resultant tools. Another aspect of Eclipse is that it's designed to be a universal IDE, initially targeting Java, but with support for C/C++ in preparation and potentially other languages to follow. Third, it's the basis for IBM's Visual Age family, replacing the previous SmallTalk-based products. Finally, it has polarised the Java community, with Sun a notable absentee from the Eclipse consortium.
Borland is part of the Eclipse group, although it's doubtful whether the company revels in this situation much. JBuilder is pure Java and Swing-based, which until recently has been considered a benefit. But the great performance of Eclipse, along with the threat of something approaching a standard Java IDE, must concern Borland. Still, JBuilder offers a different development model, based on visual designers rather than pure code. Eclipse lacks any sort of GUI designer, although with Java more prominently used for server-side programming this isn't yet a major factor for developers.
The biggest problem for Borland is that the company lives or dies on the success of its tools. Companies like IBM, Sun and Oracle aren't primarily focused on tools, but use them to promote their hardware, application servers or support services. Borland is showing signs of stress by repackaging JBuilder 7 to push developers towards its own application server.
Previous JBuilder releases have featured a Personal edition for non-commercial use, a Professional edition encompassing most of what day-to-day Java developers need, and an Enterprise edition with EJB (Enterprise JavaBeans) support. The Personal edition remains in JBuilder 7, but the Professional edition has gone, replaced by JBuilder SE. This version is crippled by the omission of database features or any support for Java Servlets. Borland argues that Servlets and JSP (JavaServer Pages) are part of J2EE (Java 2 Enterprise Edition), which is technically true, but many developers use these features without needing EJB or distributed transactions.
As a result, the only JBuilder version that makes sense for real work is now the Enterprise edition. Naturally, this cuts both ways. By promoting the Enterprise edition, complete with the Borland Enterprise Server and the prospect of lucrative deployment licences, Borland hopes to escape its dependence on tools. The other side of the coin is that loyal JBuilder customers, faced with a large price increase to pay for unnecessary features, may turn to other tools.
So, what's in JBuilder 7?
JBuilder 7 is a development environment built around an editor with visual tools. The main work area, called the AppBrowser, has a project pane showing the files in your project, a structure pane displaying the structure of the currently selected file, and a content pane with various views accessed by tabs. The content pane is the essence of JBuilder, letting you edit in different ways without worrying about synchronisation. For example, you can edit a Swing JFrame in the visual form designer or in the Code view, and changes in one view are instantly reflected in the other.
The Bean view has a grid-based property editor and an event editor where you can create event methods and listener interfaces by checking boxes. Doc view shows the JavaDoc reference, UML view draws the content as a read-only UML diagram, and History view lets you compare versions. There are other specialist editors in the package, such as one for XML that lets you edit source, see a hierarchical view or automatically apply an XSLT transformation. Note that while visual editing is a feature of all JBuilder editions, many features aren't available in the low-end versions.
Developers typically spend most of their time in the code editor. JBuilder has a generous set of features, including auto-pop-up class members and parameters, smart indenting, matching brace highlighting, auto-expanding templates and curly underline error indications. New to this version is that error detection takes place while you type - a significant productivity benefit.
Another strong aspect of JBuilder is its array of Wizards. JBuilder will get you started on numerous Java items, including GUI applications, database applications, web applications using Apache Tomcat or another application server, Servlets and JavaServer pages, Sax handlers for parsing XML, CORBA clients and servers, and EJB. The EJB designer is considerably enhanced in this version. EJBs can be organised into views, making complex applications more manageable. The designer lets you add new ejbCreate methods, you can create a schema from an entity bean, and there's some support for bean-managed persistence.
JBuilder's database features are little changed in this release but are still worth noting, as they're a major part of the product's appeal. The database architecture is based on dataset components linked to data sources via provider and resolver interfaces. Cacheing data on the client is enabled via an in-memory store or the powerful JDataStore component, which provides an all-Java database manager. JDataStore is expensive to deploy, since it requires client licences, but it enables high-performance mobile applications that synchronise to a back-end database when connected to the network. JBuilder also simplifies rich database clients through databound Swing controls.
JBuilder's installer has a promising option for Web Services. In the Internet era, we're all used to going online for bits and pieces when installing software, but the way Borland's installer handles the Web Services option is convoluted. Selecting the Web Services Kit merely takes you to a page on Borland's website offering a Trial edition. This is because the product is still unfinished.
Select the Trial and you're prompted to log into the Borland community. Log in and you have to complete an online survey, validated so there's no way to bypass it. Borland must realise that the quality of response from such arm-twisting is unlikely to be stellar. Finally, you get to download a ZIP file containing the real installer and to watch your email for a registration key to make it work. Note that this is for an installation of JBuilder Enterprise that was already fully registered.
Despite the installation hassle, Borland's Web Services Kit offers an easy and flexible route to enabling an application with Web Services. SOAP servers can be created using either the SAX-based Apache Axis toolkit or the older DOM-based Apache SOAP 2. There are Wizards for generating Java from WSDL, the SOAP service definition language, and for exporting a class as a Web Service. A UDDI Explorer lets you browse published Web Services, and there are also tools to publish to UDDI sites.
Borland has considerable interest in making Web Services work, since it also offers support in its Windows development tools, Delphi and C++ Builder, and in Kylix on Linux. Therefore, the company can offer a single-vendor Java-to-Windows route, which is an advantage in these early stages of SOAP, where incompatibilities remain a problem.
Refactoring, optimisation and UML
Refactoring is a big topic today as the industry wakes up to the fact that more time and money is spent on maintaining and enhancing code than on first creating it. JBuilder Enterprise comes with new refactoring and optimisation tools. The editor has integrated support for common tasks such as surrounding a block of code with 'try ... catch', introducing a variable to simplify code, and extracting a section of code into a separate method. The OptimizeIt suite is a separate set of utilities, offering code coverage, memory leak detection, profiling and thread debugging. The code coverage module comes with JBuilder 7, while others are a separate purchase but integrate with the IDE.
JBuilder 7 includes a UML view in its designer, but this is read-only and not intended for full application design. In order to use integrated UML, developers must purchase the Enterprise Studio edition, which bundles Rational Rose Professional J. Integration is good and Borland is right to draw on Rational's market-leading product rather than attempting to create its own equivalent.
These days, everyone seems to be using Ant, the open-source build tool, and JBuilder now has integrated support. Although JBuilder comes with Borland's application server, the product targets other J2EE platforms, and this has been extended to include Sun ONE (iPlanet) and Oracle9i, alongside BEA WebLogic and IBM WebSphere.
A handy new deployment feature is the native executable wrapper. This allows developers to deploy a small native code executable that starts up the Java application. Windows, Linux, Solaris and Mac OS X are supported. It's also worth mentioning Team Source DSP (Development Services Platform). This is aimed at dispersed teams and permits secure connection to source code management over the Internet.
Ultimately, the business case for JBuilder is founded on its huge array of productivity tools, including components, visual designers, Wizards and utilities. It's excellent for building Swing interfaces, strong for database work and, unlike some tools, supports a range of application servers, including those from IBM, BEA, Oracle and Sun.
The case against JBuilder is that deployment costs soon mount up if you take advantage of features like JDataStore or, of course, Borland Enterprise Server. In addition, JBuilder is a heavyweight with its many Wizards and designers, and the leaner, brisker performance of a tool like Eclipse will be preferred by many developers. The price of JBuilder is fair, but being primarily a tools vendor Borland will struggle to offer the best value, especially bearing in mind the frequent and expensive upgrades the company produces.
Borland keeps pouring new features into JBuilder and the process is perhaps reaching its limit. The new mode for development tools is to be leaner and more modular, and more able to fit the tools around the way the developer wants to work. At version 7, JBuilder is a mature product, which is probably a hint to Borland that some radical redesign and simplification is due.
© PC Pro