The highs and lows of former-Borland's Dumbledore

Magic of application factories

"The early versions of Eclipse weren't that good," he recalled, "and we originally saw it as a competing product. But after a couple of years of conversation inside Borland - and with the release of Eclipse 3, with its clean plug-in architecture - we had that 'ah-ha' moment. Here was this set of general purpose, open-source frameworks that actually freed us to focus our efforts on value built on top."

JBuilder 2007 was the first version of the IDE built on the Eclipse framework, in 2006.

While Eclipse was creating a forced paradigm shift among software development toolmakers, Intersimone was considering a shift in the development paradigm itself.

"In the early days, programming was just about the languages, high-speed compilers, and debuggers," he said. "Then it was about the frameworks - the ObjectWindows and MFC [Microsoft Foundation Class] libraries, user-interface frameworks, database frameworks. Then it was components. Now it's application modules and higher levels of abstractions, not just in fundamental data types and operating system components, but applications as well."

And that leads to what Intersimone calls "application-driven development." This model, he explained, pulls the structure, evolution, and logic behind developing an application into the application itself. The result is reusable software modules that capture the intent of the coder in annotated templates or "cheat sheets" that stay with the architecture of the applications.

Intersimone calls these code-plus-metadata modules "application factories."

Application factories debuted in JBuilder 2008, released in April.

"Say you need to build a shopping cart, or an ecommerce system, or an ERP system," Intersimone said. "All of those things have been built before, so if the tooling can help make that code into a reusable module - into an app factory - then you don't have to think about the infrastructure. All you have to think about is the kind of application you need to build. People do this all the time in consulting gigs, or in the large system integrators. If they build a financial system for one bank, they build it for a hundred banks."

Developers working with application factories navigate through an application using the metadata, and then use a scripter, such as JavaScript, to drive the application customization.

"We think of that as tooling, not for the IDE, but for the application," Intersimone said. "In application factories, the programmers can do tooling for their applications, so they can provide simpler interfaces for making changes at the application level and to the application code."

The metadata captured in application factories would also help with the maintenance of existing applications, Intersimone said. "The everyday things that can be captured by the person who is producing these modules can free other developers from wasting time finding all the places where they have to make changes, or figuring out what the person did the last time they touched an application."

Unfortunately for Intersimone's optimism and enthusiasm, CodeGear's lack of resources showed and JBuilder 2008 was rough around the edges.

Once again, with feeling

Intersimone appears to believe things will be different under the new owner, Embarcadero. His blog makes repeated references to the company's combined staff of 500 and revenues of $100m, which could help to build and deliver more innovation and more polish than the unwanted CodeGear child of Borland was able to achieve.

And, as with the old days of Borland when Microsoft was the main competitor on Windows, the ethos remains as ever: platform independence. This time, it's independence at the database layer. Also, there's the continued belief in vendors adding innovation on top of open source frameworks, rather than leaving it up to the community to come up with something wonderful on its own.

"Some people would tell you that tools don't matter. That open source or the platform and stack vendors will solve every problem and satisfy every pain point," Intersimone blogged after we spoke to him.

"Today, software is no more reliable, no more predictable than it was before. We need to build better applications, faster, and with higher reliability. Our economy needs every designer, architect, developer, and administrator to be performing at the top of their game".®

Additional reporting by Gavin Clarke

Sponsored: Designing and building an open ITOA architecture