GET TECHNOLOGY RIGHT I T

S t r a t e

Java IDE Comparison Strategy Guide: g y

InfoWorld’s IDE of the Year G u i

Takes on the Best That the d Industry Has to Offer e

INSIDE Introduction 1 Java Development Productivity and Quality Using : A Comparative Study of Commercial Eclipse-based IDEs 2 Java IDEs Perk Up 4 Application Factories: Moving from a Generic IDE to an Application-specific IDE 10

Compliments of: Java IDE

Introduction

When it comes to development environments for cre- 2007, IBM Rational Application Developer (IRAD) and ating Java-based applications, there are two words to Genuitec MyEclipse against the free open-source Eclipse keep in mind – Eclipse and JBuilder. The first leverages platform. The results are startling and impressive: the work by open source communities to build an ex- the leader, JBuilder 2007, boosts productivity signifi- tensible tools platform for software development. The cantly. In fact, for every dollar spent on JBuilder, an or- second leverages Eclipse to create commercial-grade ganization can expect a return of $90-$165 in savings tooling for the enterprise. Eclipse is both a phenomenon through increased developer productivity and improved and an incredible success story. The Eclipse Foundation software quality. and the Eclipse Project have become standards-bearers What about Sun? It’s easy to think that Sun – which both for open source in general, and software develop- created Java, and manages the Java Community Pro- ment specifically. cess — would have a natural The Eclipse Foundation is … for every dollar spent on JBuilder, advantage when it comes to incredibly vibrant and suc- an organization can expect a return of development tools. However, cessful, and it has created the $90-$165 in savings through increased the reality of the situation, as de facto standard platform for developer productivity and improved verified by the InfoWorld Test building Java software. Doz- software quality. Center, proves otherwise. ens of top-rated software and Our in-depth review shows hardware companies, from how Sun NetBeans 5.5 fared IBM to Intel, from Oracle to SAP, from CA to Borland, against the two biggest names in Java: IRAD 7.0 and drive the Eclipse Foundation forward. JBuilder 2007 Enterprise Edition. As the reviewer said, The Eclipse tools platform can be used on its own as a free “JBuilder … is a truly standout IDE.” open-source development environment, but it also serves We close this IT Strategy Guide with a look at an ad- as the foundation for many commercially available Inte- vanced concept in Java development: Application Facto- grated Development Environments (IDE). Companies using ries. We’ll show how these models transfer knowledge the Eclipse framework as the foundation of their product between team members, so that everyone can under- offerings include IBM, Genuitec and CodeGear. Of course, stand the intent of the architects, interface designers there are also tools and platforms available to enterprise and other senior developers throughout the organiza- Java developers which are not based on Eclipse, but as this tion. Application Factories are a new approach to soft- IT Strategy Guild shows, the momentum is clearly behind ware development and code reuse. This innovative de- the Eclipse-based solutions. velopment metaphor and associated collection of tools If you’re looking for a commercial software develop- allows developers to focus more on the nature and pur- ment platform for Java, you want one based on Eclipse. pose of the application, and less on the underlying plat- But which commercial offering do you want? We’ll go form, framework, and technologies being used. deep into the details, comparing CodeGear JBuilder — Alan Zeichick

INFOWORLD IT STRATEGY GUIDE  Java IDE

Java Development Productivity and Quality Using Eclipse:

A Comparative Study of Commercial Eclipse-based IDEs

The productivity benefits of using commercial Eclipse- completing software development projects successfully. based Java IDE products from IBM (IBM Rational Appli- Our staff combines real-world software project man- cation Developer), Genuitec (MyEclipse), and CodeGear agement experience with technical training in areas (JBuilder) compared to the freely downloadable baseline such as parametric cost analysis, system dynamic Eclipse configuration. modeling of software processes, knowledge based modeling of risk, and both stochastic and determin- Report Prepared by CostXperts istic optimization of project operations. Many of our The Cost Xpert Group, Inc. (www.CostXpert.com) spe- consultants are world-renowned leaders in their field cializes in software metrics and predictive models. Con- of expertise. The CostXpert Group has over 5,000 cus- sidered one of the top experts in the field of software tomers including Boeing Corporation, Chevron Informa- development cost analysis our services are focused on tion Technology, Ernst & Young, Hewlett-Packard, and helping clients substantially increase the probability of Unisys Corporation

INFOWORLD IT STRATEGY GUIDE  Java IDE

Executive Summary

Eclipse is both a phenomenon and success story in developers. By comparison, some companies, such as the Java eco-system and in the overall software develop- Sun Microsystems and JetBrains, license development ment field. More than just a software development tool, tools based on proprietary technologies developed inde- Eclipse represents an open source community dedicat- pendently from Eclipse’s open framework. ed to building a development platform and to offering The goal of this study was to objectively measure a wide range of extensible frameworks, tools and run- the benefits of using commercial Eclipse-based Java times for building, deploying and managing software IDE products from IBM® (IBM Rational Application across the application lifecycle. Developer®), Genuitec® (MyEclipse®), and CodeGear The attraction of Eclipse can be attributed to many (JBuilder® 2007 Enterprise Edition). These benefits are factors including its open source model, flexibility, ex- compared to the freely downloadable baseline Eclipse pandability, extensive commercial industry support, configuration. and of course low cost; a baseline Eclipse configuration In this study, team configurations and projects of vary- ing sizes and purposes were modeled and measured un- der two scenarios: (1) building new Java software and (2) enhancing/maintaining existing Java applications. The study measured development cost, time to completion, and resulting application quality. In all situations, all three commercial IDEs (MyEclipse, JBuilder, and IRAD) were found to offer substantial development cost sav- ings and project quality improvements over the baseline for Java can be downloaded for free. Many vendors en- free Eclipse distribution. hance this base configuration with value-added tech- For typical software development organizations, these nologies and services for which they charge a license percentages translate into substantial net hard dollar or support fee. savings in terms of software development personnel, For instance, companies such as IBM, Genuitec, and time and quality. For the representative organizations CodeGear (Borland’s Developer Tools spin-off) have de- used in this study, the return on investment (ROI) of ac- veloped new Java IDE solutions based on Eclipse. Each quiring JBuilder ranged from 90:1 to 165:1. That is, for of these three Eclipse-based solutions has taken a dif- every dollar spent on JBuilder, an organization can ex- ferent strategy and approach to enhancing the baseline pect a return of $90-165 in savings through developer Eclipse configuration, delivering unique value to Java productivity and improved quality.

For a free download of this complete report, visit www.codegear.com/products/jbuilder. No registration is required.

INFOWORLD IT STRATEGY GUIDE  We test a triple shot of Java dev tools: IBM and Borland/CodeGear’s Eclipse-based platforms and Sun’s open-source NetBeans

BY ANDREW BINSTOCK ava IDEs are one of the most used app dev tools in corporate development. They are also among the most capable developer products on the market. With that in mind, it’s time to Jask yourself: Are you using the Java IDE best suited to your needs, or is it time to re-evaluate?

J INFOWORLD.COM 03.26.07 4 InfoWorld last did a head-to-head comparison of these products in March 2005 (infoworld .com/2677) and since then, the IDEs have all undergone important changes. This time, I decided to examine the winner of that review (Borland JBuilder) plus the winners of InfoWorld’s Tech- nology of the Year awards, in the Java IDE product category, for 2006 and 2007 — IBM Rational and Sun NetBeans, respectively. Diagrams, code, and Javadoc are all synchronized in I was impressed by how much IBM’s Rational Application Developer 7. these products have matured dur- ing the past two years, but surprised IBM, many of these are oriented and coding that they haven’t advanced further in toward enterprise applications. They errors. While some respects. Other products in the include portlet and portal develop- the other IDEs in this review offer Java developer’s toolkit — static code ment tools, and extensive more rules, IBM’s solution flagged analysis, unit testing, and build man- support. The database support, which errors that those productss did not agement, for example — have seen predictably favors IBM’s DB2, includes catch. The rules were enhanced by more progress in this time frame. the ability to write user-defined func- good descriptions of the reasons for tions (UDFs), stored procedures, and the rules and sample code for fixing IBM Rational Application Developer SQLJ code—all unique capabilities the problems. for WebSphere Software 7.0 among the products reviewed here. This extensive help reflects IBM’s Big Blue’s entry, colloquially referred Diagramming and modeling are long-standing tradition of great to as RAD 7, is based on Eclipse, the limited, however: RAD 7 supports documentation. RAD has links to open-source software framework only two UML diagrams (versus eight comprehensive tutorials and IBM’s that also powers Borland/CodeGear’s for NetBeans and nine for JBuilder). Web site—well known in the devel- JBuilder product line. Eclipse was ini- For fuller diagram support from IBM, oper community for its rich collec- tially a Java IDE, but in recent years, you must buy the more expensive IBM tion of articles—provides additional it’s been repositioned as a framework Rational Software Architect. resources. into which manifold plug-ins can be With RAD 7, you can develop Web If applications require a scripting added, thereby constructing all sorts services and Web service clients, gen- language to “glue” portions together, of tools (many of which have nothing erate WSDL, and even do unit test- RAD 7 has built-in support for Jython to do with Java development). ing against a private UDDI service. In (Java-based Python). Unfortunately, Eclipse’s new framework orienta- addition, there is support for IBM’s the IDE cannot tell automatically what tion has raised some concerns that DADX, a DB2 XML extension for use by is Jython and what is Java although the original Java IDE concept has been Web services. Alas, the IBM-centricity syntactically the languages are entirely deprioritized. This perception prob- factors into the UDDI testing as well: different. This can lead to actions that ably has some validity, but it’s offset It supports only private registries that make the IDE balk. by the fact that Eclipse currently has use IBM-based technologies. This flaw, small as it is, reflects a the largest community of Java plug-ins At the coding level, RAD 7 provides frequent experience I had with RAD currently available. a static analysis tool that incorpo- 7: many features are not implemented RAD 7 adds several components to rates more than 200 rules developed well. For example, installing the soft- its modified Eclipse base. As befits by IBM regarding possible Java defects ware was very difficult. After consid-

5 INFOWORLD.COM 03.26.07 I was impressed by how much these IDEs matured during the past two years, but surprised that they haven’t advanced further in some respects.

erable support from IBM, I got the same IDE for developers in many analyzers: the open-source PMD, Find- product installed correctly, although countries will also like RAD 7, as it is bugs, and Borland’s own code-inspec- the original problems were never implemented in far more foreign lan- tion tool. These work well together identified. guages than any other IDE. However, (in fact, they run the risk of overflow- There’s more. An option to spell- the comparatively high price and my ing the developer with flagged items), check comments and literals (a use- other complaints should encourage although they lack actionable expla- ful capability) does not work because sites to examine all options before nations of the problem as well as the IBM ships no dictionary; if the feature committing their dollars. thoughtful resolution recommenda- is enabled, it marks all words as mis- tions found in IBM’s RAD7 product. spelled. The code-checking tools occa- Borland/CodeGear JBuilder 2007 JBuilder bundles a metrics pack- sionally prescribe invalid corrections. Enterprise Edition age that is more extensive than any Dynamic help in dialogs frequently JBuilder 2007 garnered first place in I’ve seen in any IDE. It generates more takes you to the wrong level of help, so our last round-up. This edition is the than 80 different metrics, displaying you’re forced to navigate back to your first release since the product was them diagrammatically or in spread- specific context. ported to the Eclipse platform. It is sheet format. (Curiously, the metrics Over time, the accumulation of shipped by CodeGear, a division of do not include the maintainability these problems makes this otherwise Borland that focuses on IDE tools. index, although all the metrics that good product frustrating to use. Due to Borland’s well-publicized make up this index are computed.) I have one other complaint: IBM is far difficulties and the fact that this is You can turn off the metrics you’re not behind the other vendors in supporting the first release on a new platform, I interested in and set thresholds for existing Java standards. It is the only expected a good product with rough those you do want to track. JBuilder IDE in this review that has no support edges. Instead, I found a very smooth, also saves metrics snapshots, so that for either Java EE 5 or Java SE 6. very robust IDE with many innovative you can compare the current state of I’d recommend RAD 7 to sites features. It’s safe to say that CodeGear the codebase with previous runs to already heavily committed to IBM, decided to throw everything it had at make sure the numbers are trending due to the product’s special support this release, and succeeded brilliantly. in the right direction. for those products, especially DB2 For Java coding, JBuilder has three CodeGear integrates JBuilder’s Opti- and WebSphere. Sites that want the different sets of code auditors and mizeIt suite of tools, which Borland

IBM Rational Application Devel- Borland/CodeGear JBuilder 2007 oper for WebSphere Software 7.0 Enterprise Edition Sun NetBeans 5.5 IBM, ibm.com Borland/CodeGear, codegear.com/jbuilder Sun Microsystems, .org Good 7.9 Very Good 8.6 Good 7.4 Features (40%) 8 8 Features (40%) 9 9 Features (40%) 7 7 Ease-of-use (20%) 8 8 Ease-of-use (20%) 8 8 Ease-of-use (20%) 8 8 Integration (20%) 8 8 Integration (20%) 9 9 Integration (20%) 6 6 Performance (10%) 8 8 Performance (10%) 8 8 Performance (10%) 8 8 Value (10%) 7 7 Value (10%) 8 8 Value (10%) 1010 Cost: $4,120 (includes 12 months of support) Cost: $1,999 Cost: Free Platforms: Windows, Platforms: Windows (Linux, Mac OS ship in Platforms: Windows, Linux, Mac OS, Solaris May) Bottom Line: IBM’s RAD 7 is a robust, Bottom Line: JBuilder is a smooth, well- Bottom Line: Great collaboration tools and a capable IDE that integrates especially well designed, capable IDE. It offers excellent metrics superior GUI designer distinguish this open- with other IBM technologies and has good and code inspections plus stellar team integra- source Java IDE, but missing features (some visual editors. However, it does not support tion tools. It works seamlessly with numerous of which will appear in the imminent 6.0 Java EE 5 or Java SE 6, and it has limited open-source tools, Java servers, and . release) and lack of integration with enter- modeling capabilities — two big drawbacks. It is limited for the moment to Windows only. prise technologies diminish NetBeans 5.5.

INFOWORLD.COM 03.26.07 6 prise pack and a Visual Web pack (both used in this review), a mobility pack for J2ME programming, and a / C++ pack. A profiler (also included in this review) is a separate pack. These packs are supersets of the common IDE plug-ins and generally provide substantial new functionality. Once I downloaded the packs, I installed them with no difficulty. When I first examined NetBeans, several years ago, it was more of a tag- Metrics in JBuilder 2007 can be shown spreadsheet style (top along IDE with some good features, circle) or in a Kiviat diagram (bottom circle). rather than a true peer of the other Java IDE products. This is no longer offered for years as a separate product. tus as a first release on Eclipse. The the case, and NetBeans’ popularity OptimizeIt provides numerous high- only bugs I ran into were frequent reflects this: A December 2006 survey resolution views into the performance help icons that did not work. My com- by BZ Research shows that NetBeans and memory consumption of the soft- plaints focus on features that are not enjoyed robust growth last year and ware. It includes code coverage analy- implemented, such as the lack of visual is now in second place behind only sis (although only as a percentage of designers for JSP or JSF (although Eclipse (which maintains a comfort- the class covered, rather than on a these are coming shortly). The prod- able lead). line-by-line basis) and other insights uct also does not generate deployment For enterprise computing, Net- into what is happening beneath the files for applications using DB2, which Beans provides several useful fea- covers, including per-thread data. is a curious omission. Finally, it cur- tures, including support for Java EE 5 JBuilder also offers impressive col- rently ships on Windows only. Linux in the form of Sun’s Glassfish project. laborative features. It sports a devel- and Mac versions are slated for May. The IDE has good tooling for services- oper-oriented messaging system, At $1,999 for the edition I reviewed, based enterprise development be it which helps with code reviews as well JBuilder is not cheap, but it provides SOA or just plain Web services. For as developer communication. It uses tremendous bang for the buck. For example, NetBeans is the only product a peer-to-peer design that, unfortu- developers who don’t need all the reviewed here with full diagramming nately, works only with peers on the high-end features, there are profes- and modeling capabilities for BPEL. same network segment. sional and developer versions of The enterprise services offerings For team coordination, JBuilder JBuilder available for $799 and $399 are offset, however, by lack of support provides TeamInsight, which is an respectively. for common products. NetBeans does easily configurable portal server that not support IBM’s WebSphere app comprises key open-source tools: Sun NetBeans 5.5 server and it lacks integrated support Subversion, Bugzilla, Continuum, Sun’s NetBeans product is the only for any database other than JavaDB. and XPlanner. This portal is acces- completely open-source product in The latter point needs some clarifi- sible through a Web interface or via this review, available at no cost from cation, though: NetBeans will recog- JBuilder and includes numerous proj- netbeans.org. Unlike the other pack- nize any JDBC-accessible database, ect reports and metrics. Neither of the ages, NetBeans requires a little assem- but it generates deployment files and other IDEs comes close to this level of bly; you start with the core NetBeans exploits DBMS-specific features only team integration. platform, and add several “packs,” for JavaDB. JBuilder feels solid throughout — a depending on your needs. Collaboration features are very remarkable achievement given its sta- Currently, Sun offers an Enter- good. NetBeans has built-in facilities

7 INFOWORLD.COM 03.26.07 JBuilder feels solid throughout — a remarkable achievement given its status as a first release on Eclipse.

for real-time collaboration between developers, including chat and code- sharing capabilities. Java Support, Coding Set IDEs Apart Unlike these features in JBuilder, Borland/CodeGear has a more complete overall feature set, but NetBeans’ platform NetBeans’ design is server-based. support and IBM’s testing tools are areas of strength for their IDEs. You can set up your own server for this communication, or use one pro- IBM Rational Application Borland/CodeGear Sun NetBeans 5.5 vided by Sun at no charge. You simply Developer 7 JBuilder 2007 (Enterprise) login to Sun’s server and any develop- Diagrams and Visual Editors ers in your group are displayed along UML Diagrams 2 9 8 with their login status—a design that is similar to presence awareness in Code-UML diagram Class, sequence only Class, sequence only Class, sequence only round-tripping IM products. Other diagrams Browse, Topic EJB, Web services BPEL As for GUI design, NetBeans bun- WYSIWYG visual editors HTML, JSP, JSF HTML HTML, JSP, JSF1 dles Matisse, which is the best GUI GUI designers Swing, SWT, AWT Swing, SWT, AWT Swing layout tool of its kind. As you drag and drop widgets onto panels and Java Coding dialogs, they automatically arrange Support for Java SE 6 No Complete Minimal themselves correctly. Guidelines for Static code analysis tools Proprietary PMD, Findbugs, Proprietary None optimal and alternative placements Spell checking comments Broken No No pop up during the drag and drop and literals operations. Matisse then generates Code metrics No Extensive No Fix-n-go debugging/ Yes/Yes Yes/Yes Yes/Yes code from the design. remote debugging This tool alone makes NetBeans the Process to generate Complex Trivial Trivial IDE of choice for sites that do a lot of Ant file Swing-based interfaces, as Matisse Testing and Tuning works only with Swing. Fortunately, Performance/memory Yes/Yes Yes/Yes Yes/Yes due to steady advances in Swing per- profilers formance and look-and-feel, this is no JUnit test generation Stubs No Stubs longer the limitation it once was. Web services testing Yes/TCP/IP monitor Yes/Yes Yes/Yes Whereas the other Java IDEs in this tool/HTTP monitor review all use their own proprietary Enterprise Java formats to store project metadata, Support for Java EE5 None Complete Complete NetBeans smartly relies on Ant files Create files for J2EE Geronimo, JBoss, WebLogic, Geronimo, Glassfish, Glassfish, JBoss, Sun, to hold project configuration data (in servers WebSphere JBoss, Oracle, WebLogic, WebLogic WebSphere, fact, it uses Ant, the open-source Java DBMS built-in support 9 9 (but not DB2) JavaDB only equivalent of make, to drive builds). Other data support SDO EJB3, Hibernate JPA This has one important advantage: in teams that use multiple Java IDEs, any Miscellaneous Collaboration features Minimal Extensive Good other IDE can load and run a NetBeans project without having to convert it Foreign languages Many Few Few manually or import it piecemeal. supported Platforms Windows, Linux Windows2 Windows, Linux, MacOS, There is a downside to the use of Ant Solaris files: NetBeans supports only a single runtime configuration. Most other 1Requires freely available Visual Web Pack IDEs let you choose from as many run- 2Linux and Mac versions ship in May time configurations as you’re willing

INFOWORLD.COM 03.26.07 8 sidering NetBeans, examine the version 6 beta currently available before making your decision.

Final Round-Up So which of these IDEs should you choose? If you’re running IBM’s software stack or you have multiple languages spoken at your site, RAD 7 is your best bet — as long as you don’t need support for Java EE 5 or Java SE 6. If you want an inexpen- The NetBeans Profiler shows per-thread metrics (middle pane) and sive solution or one that memory usage (in circles) in easy-to-read diagrams. runs on Mac OS and Solaris (in addition to Windows and to write; not NetBeans. Instead, you company is preparing version Linux), your choice is NetBeans. must change the one configuration 6 of its IDE, which fixes many of my For all other situations, JBuilder 2007 by hand each time you want to change complaints including the fonts and the is the clear choice — and a truly stand- the parameters you pass to your appli- run-time configuration. If you’re con- out IDE. i cation. (The upcoming 6.0 release of the IDE remedies this problem.) I ran into no bugs using NetBeans and it has a snappy feel except when running instrumented code in the More Tools to Try profiler. My only complaint about the key to choosing an IDE is selecting one that makes you as produc- the user experience is that Sun does tive as comfortably possible. Here’s a overview of three alternatives to the not use anti-aliased fonts, so text is IBM, Borland/CodeGear, and Sun NetBeans products discussed in this review. more difficult to read than in Eclipse- Eclipse. If you don’t need the advanced features of RAD 7 or JBuilder, you might based solutions. consider a vanilla version of Eclipse, which is available at no cost from eclipse. Clearly, NetBeans has an unusual org. If you need a few advanced features, consider MyEclipse from Genuitec mix of features—some superbly (infoworld.com/4546), which integrates many open-source tools (including Net- implemented, others entirely miss- Beans’ Matisse) into Eclipse for $54/year per seat. ing. If the mix of features appeals to JetBrains IntelliJ. This Java IDE is considered by many developers to be the most you, NetBeans is definitely your ticket. productive and enjoyable environment for pure coding. IntelliJ is more intuitive Not only is it free, but it is snappier than the IBM, Borland, or Sun IDEs, which is how it earns its great reputation. It has than the Eclipse-based products and some unique features, too. For example, code rules are run in background, so that easier to navigate, as it forgoes the errors or poor style show up as you code, and correcting the issues results in their “views” design embraced by Eclipse immediate removal from the screen. These rules are more numerous than in any of and simply uses windows. Also, Net- the three products in this review. For sites that write a lot of Java code and do not Beans is frequently revved, enjoys a need modeling tools, IntelliJ is a very strong, inexpensive option. very active community, and benefits Oracle JDeveloper. JDeveloper is a feature-rich and free (but not open-source) from a plug-in inventory second only Java IDE available at Oracle’s site (infoworld.com/5147). Like NetBeans, it is not to that of Eclipse. based on Eclipse. It has strong support for enterprise features including SOA and To be fair, NetBeans is most disfa- Web services and, of course, special integration with Oracle’s database technolo- vored by the timing of this review—the gies and OC4J Java application server. — A.B.

9 INFOWORLD.COM 03.26.07 TechnologyJava IDE

Application Factories: Moving from a Generic IDE to an Application-specific IDE Development tools have come a long way over the last Through what we call “Application Factories”, the IDE can few decades. Today’s IDEs are an indispensable part of any be transformed to play a central role in capturing both the developer’s tool box - most tout a rich array of features that application evolution and the developers’ knowledge. span the entire development lifecycle. What are Application Factories? Tools vendors such as CodeGear have made significant con- Let’s start by saying Application Factories are a set of tools to tributions to this evolution. For example, CodeGear JBuilder® enable producing and consuming of Application Modules. includes features such as a Visual Workbench for EJB, JPA and What are Application Modules? Web services development; TeamInsightTM to manage com- Application Modules are simply a collection of applica- plex projects across multiple locations through distributed tion source artifacts as standard projects accompanied by development and collaboration tools; powerful code archeol- Application Factory Metadata. ogy tools such as LiveSourceTM UML; code audit and metrics What is Application Factory Metadata? tools; and OptimizeITTM performance management tools for Application Factory Metadata is a repository of applica- profiling, code coverage and JEE performance among others. tion-specific artifacts. These artifacts capture the structure, Now, what’s next for IDEs? evolution, and logic used in the development and mainte- Let’s take a look at software development today. nance of the accompanying application. Over the last few decades a ton of code has been writ- How is the metadata manifested in my day to day ten, and thanks to open source, a large part of it is in the development? public domain. The capability as well as the complexity of This manifestation takes several forms: new behavior applications has continued to grow exponentially. Most ap- overlaid on existing views, new views, editors and con- plications are developed in teams, often geographically dis- text actions. The logic captured as scripts contributes tributed. Most applications have evolved over a number of new code-generation options. Code-generation in turn years with many nuances, patterns and best practices very leverages the Application Factory framework to enable specific to each application, and with a tremendous flux learning and archeology. All these capabilities working of personnel that leave their fingerprints on applications together transform the IDE from a generic IDE to an Ap- throughout their evolution. plication-specific IDE. One of the biggest challenges in application develop- Let’s illustrate this phenomenon of transforming the IDE ment today is to factor in application-specific information. from one that is generic to one that’s application-specific. The answer lies in the ability to capture application evolu- In most development tools today, you navigate the ap- tion and developers’ knowledge of building and extending plication based on a generic explorer paradigm, super- the application as metadata so that it’s not lost in time or imposed by a domain – say Java projects and packages. translation. Once that can be done effectively, the combina- Diagramming tools navigate to resources based on a tion of the application code with metadata pertaining to modeling construct. Quick search tools jump to known application evolution can be meaningfully packaged into resources quickly. All of these tools are very useful, ge- reusable software asset libraries. neric IDE tools which will work with any application.

INFOWORLD IT STRATEGY GUIDE 10 TechnologyJava IDE Application Factories: Moving from a Generic IDE to an Application-specific IDE

Application Factories will transform these very tools and of the primary customizations available now is to modify add additional ones by applying application-specific meta- the code generation itself, adapting it as the application data. These tools not only let you navigate based on a gener- evolves over time. On acceptance of the presented modi- ic construct, but let you both organize and navigate based fications in the learn mode, the application is modified. on an application-specific construct. Some of these help in This is illustrated in Figure 2. manifesting application comprehension, visualization and anchored navigation. These are some of the features that help others (and the original developer, six months later) remember and understand the nuances of the application. This is illustrated in Figure 1.

The examples above help illustrate how Application Fac- tories with the help of metadata transform the IDE from a generic tool to an application-specific tool. But, how do the Application Module and the accompanying metadata get created in the first place? This is where the consumer part Take another example to illustrate the transformation of Application Factories comes into play. from the generic to the application-specific using scripts. Using the Application Factories tools you can browse (But how did the script get created in the first place? The pre-created Modules. The browsing of the module is again application module producer chose to use a script as an anchored on metadata – allowing you to filter based on ar- efficient way to deliver new functionality. The Application bitrary facets, resulting look and feel of the application, the Factory producer tools help to create such a script. I will architectural view of the application’s internals and others. discuss the process of creating scripts in Part 2 of this ar- A view of the module browser is shown in Figure 3. ticle. For the sake of this illustration assume that a module contains the collected wisdom from people who needed to do something similar on the same type of framework) The illustration is a Web application module which con- tains a script to add AJAX enabled type-ahead capability to a HTML table in your web application. Application Fac- tories surface the presence of that kind of metadata and lets you execute it in the Application Factory framework, prompting for user input as needed. As you do so, Appli- cation Factories prepares by generating the code modi- fications required and presents it in an optional learn mode with various kinds of customization options. One

INFOWORLD IT STRATEGY GUIDE 11 TechnologyJava IDE Application Factories: Moving from a Generic IDE to an Application-specific IDE

An Application-first development today – avoiding constant relearn, capturing Development Model valuable data about the application, application reuse, and The approach of creating application metadata to capture a meaningful software asset library. the intent and knowledge of developers provides an appli- For more information on Application Factories watch cation-driven development model. The IDE now evolves to for upcoming announcements at www.codegear.com and take the role of manifesting the application-specific meta- read about CodeGear’s Eclipse-based JBuilder, JGear and data with interactive, just-in-time tooling. 3rdRail IDEs. We invite you as well to join in discussions This approach to creating metadata that easily captures and share best practices with the more than 6 million de- the intent and knowledge of developers working on an ap- velopers doing Java, Eclipse, Rails, Windows, PHP and da- plication provides a new model for designing software. Ap- tabase development in our CodeGear’s Developer Network plications evolve over a number of years with many nuances, - http://dn.codegear.com/ patterns and best practices very specific to each applica- — Ravi Kumar tion. Many developers work on an application throughout its lifecycle, gaining knowledge of its inner workings and Ravi Kumar is principal architect in the Java tools group developing effective ways to maintain and enhance it. These at CodeGear and is responsible for the vision and archi- are invaluable assets to hold on to and deploy as modules. tecture of CodeGear’s Eclipse-based JBuilder product line. Starting from such a base, developers can customize and He was the driving force behind the JBuilder ProjectAssist build applications more efficiently—thereby greatly reduc- team system vision. He specializes in SOA, Web Services ing the cost and overhead associated with the complexity and Database tooling. These days he is working on mak- of today’s applications. ing the new paradigm of Application Factories a reality in Such a model addresses the core challenges in software future versions of CodeGear products.

INFOWORLD IT STRATEGY GUIDE 12 Congratulations codegear for being named Best Java ide