Continuing a year of hot pursuit of developers attention, Borland Software Corp.s JBuilder 7 arrived this month in the wake of Oracle Corp.s Oracle9i JDeveloper and Microsoft Corp.s Visual Studio .Net. (See eWeek Labs Jan. 14 review of JDeveloper and Feb. 11 review of Visual Studio .Net at www.eweek.com/links.)
JBuilder 7 adds Mac OS X to the list of platforms (Windows 2000/NT/XP, Linux and Solaris) that are supported by both JBuilder and JDeveloper. Despite this broader multiplatform capability, though, JBuilder shows closer conformity to native application behaviors and offers somewhat better overall interaction and integration than even Oracles impressive suite. On the other hand, JBuilders user interface, involving multiple tiers of tabbed windows, might feel more cumbersome to some than Oracles easily reshuffled panes.
All enterprise developers will want to see how Borland has responded to Microsofts .Net tool suite, with its emphasis on Web services. The difference is striking: JBuilder 7 Enterprise, the high-end edition (at $2,999) that we tested in gold-code form, offers standards-based evolution, with accessible (but not integral) on-ramps to Web services in a downloadable Web Services Kit.
Borlands incremental approach should prove less wrenching than the "services portal" redesign that the $2,499 Visual Studio .Net Enterprise Architect has impressively, although imperfectly, delivered—often to teams that have told us theyre concerned about the radical relearning that Visual Studio .Net will entail.
With Mac OS X finally giving Macintosh users a first-rate Java platform, a development team can now credibly choose Java either for portable end-user client software or for server-side and middle-tier business logic—although with caveats that are spurring controversy even among Javas fans (see story, below). In either setting, however, the many refinements in JBuilder 7 will accelerate work and help to maintain engineering direction.
Platform-neutral tool sets typically suffer from two failure modes. Either a portable environment tries to mimic the look and feel of the local platform, using the tool sets own user interface code and almost always betraying the imitation with tiny but annoying differences in behavior, or it tries to carve out a middle ground, offering its own novel user interface conventions. Oracles JDeveloper does both, although we liked many of its original touches and the resulting freedom to design new project views.
In contrast, JBuilder 7 will pleasantly surprise well-habituated developers by looking and behaving (as far as we could discern) like a native tool set on both Windows 2000 and Mac OS X workstations. This is a mixed blessing: The chameleon behavior creates a few small burdens for developers who move back and forth between the two platforms because some visual cues are quite different. For example, unsaved changes in JBuilders tabbed panes are flagged by an obvious broken X on Windows but by a subtle, darker-red dot on the Mac.
Mending the Code
no matter how many high-level design aids a toolmaker touts, at some point the front-line symbol grinders want to know what help theyll get in writing code that compiles and runs. As in Visual Studio .Net, JBuilders source code editor works hard to identify common errors the moment theyre made, instead of waiting for the compilation to signal mistakes such as missing semicolons. Oracles editor doesnt catch as many of these errors on the fly.
We preferred Visual Studio .Nets presentation of errors on a dynamic task list to JBuilders sprouting of an Errors branch in its Explorer-style Structure view, but JBuilder 7 was better overall at keeping the current state of unfixed errors readily visible—and especially in showing us what changes we had made to a source file since it was last saved.
Higher and Higher
were suspicious of source code editors that try to be smarter than we are, and we were therefore skeptical upon encountering the expanded re-factoring commands in JBuilder 7s Edit menu. On balance, though, we approve of the resulting ease of performing such operations as extracting a group of statements into a method, automatically replacing the original lines with the corresponding method call—and having that method now available for invocation elsewhere.
Without recanting our devotion to getting the source code right, we want to compliment Borland on the excellent integration of UML (Unified Modeling Language) diagramming and application modeling aids in JBuilder 7. We found it easy to examine code modules in diagrammatic form and to trace dependencies in either direction—that is, to find both the sources of inherited code and the consumers of classes and components. We readily found our way through multilevel models, then just as quickly returned to a source code view.
JBuilder 7s UML facilities are more granular than those in JDeveloper and developers are thus more likely to see them as a productivity aid, rather than a constraint on their approach to work; we also preferred Borlands abstract modeling orientation to the lower-level, source code text orientation of Microsofts outlining tools.
Technology Editor Peter Coffee can be reached at firstname.lastname@example.org.