CodeGear bets on Application Factories to transform JBuilder
CodeGear is betting on something called Application Factories to distinguish its Eclipse-based JBuilder developer suite from the rest of the Java tools herd.
Application Factories will be part of JBuilder 2008, now going into beta, and be "a major leap in development paradigm" according to CodeGear principal architect Ravi Kumar - as if we had not heard such things a thousand times before.
Unveiled for during a "sneek peek" session at CodeGear's virtual CodeRage conference late on Friday, Application Factories will generate applications from pre-defined scripts and templates.
The concept also includes a new approach to organizing and navigating application code, using diagrams and even a fashionable tag cloud instead of rooting through folders.
"We're trying to shift to an application-driven paradigm, by overlaying a bunch of metadata on top of the existing structure," Kumar said. Many applications today begin with a whiteboard sketch showing the basic architecture. Kumar's idea is to preserve that high-level view in the IDE, so that even new team members can quickly understand and navigate the code.
In JBuilder's Application Factories, reusable code is delivered in the form of modules, which both contain code and capture knowledge about its purpose and design. Developers will choose from a palette of modules, stored in a factory repository. Kumar showed how JBuilder lets you preview a new project and then click Create Application to generate the code. The output includes the metadata as well as the code, thus enabling the new navigation tools. However, once the code is generated there is no way back; the Create Application button is the boundary of reuse.
The roadmap looks like this. JBuilder "Bonanza" is due in the first half of 2008, and will include the first iteration of Application Factories, targeting specific frameworks including Tomcat, MySQL, Struts 2, Spring, Hibernate and JSF. This will also be offered as a JGear add-in for Eclipse users who do not require the full JBuilder.
Later in 2008 we are promised JBuilder "Grasshopper", which will extend Application Factories to allow user-defined modules. In 2009 JBuilder "Optimus" will further update the feature "to enable the rapid assembly of applications by composing existing applications and services into managed assemblies."
The factory concept has several attractions. In theory, it enables faster development. "We will establish very high starting points for applications," Kumar said. "You wouldn't start with a Java class, a JSP or a servlet, an EJB or a session bean. Our base line will be higher."
One use case is where a team is delivering similar but slightly different applications for different customers. CodeGear also envisages a third-party market for commercial modules, along with free modules shared by the community.
It is a bold idea, but will it fare better than countless other attempts to promote software reuse? Notably, Microsoft two years ago embraced the re-use concept along with the "factory" name when it launched Visual Studio 2005, and introduced Software Factories. Unfortunately Kumar's session was big on buzzwords, but light on detail.
CodeGear - the unwanted Borland Software subsidiary its parent pimped on the market for about year but failed to find a buyer for - is trying to give JBuilder a lift in a commoditized market, but risks sapping energy that could go into less visionary but more immediately useful coding tools.®