Ruminations on the System i Market
There seems to be a little confusion across the board about what constitutes an "application generator." In particular, the boundaries between application generators and such overlapping terms as conversion/migration tools, code generators, and tools that generate database inquries are sometimes so vague that various products claim some or all of these categorizations. If you're looking for one tool type or another, how can you sort this out? How can you be sure you're looking at the right kind of tool for your needs if you're doing a product search?
Unless you've been actively surfing for one of these solution types, you've probably been only vaguely aware of this situation. Finishing research for a product roundup of application generator products, which will be appearing in the Route Finder insert of October System iNEWS, has brought this discrepancy home to me more clearly.
I think the confusion mostly stems from the similarities between these tool types. The ultimate desired outcome for all of them is an application that carries out one or many functions. This application consists of source code that is largely generated by some automated means. The end product is something that can be tinkered with by hand to provide some additional features or status notifications.
So what are the differences? Let's define our terms.
Basically, an application generator is software that lets you build applications by describing a problem in various ways, for example, electronic forms, diagrams, and other design tools that let you define an application and its parts. It also provides a central repository in which to store those definitions, and uses them in various combinations to automate building source code for producing applications that fulfill the defined functions. A conversion/migration tool, on the other hand, takes an existing application and translates it to another high-level language, or to a form that can run on a computer platform different from the application's original host. Trouble is, in so doing it can undeniably be said to be "generating" an application, and some vendors claim their conversion tools are application generators on that basis.
The definition of code generator is more murky. What I'd call a conventional definition of this tool type is that it's one that generates blocks of code (but not whole applications) in response to, for example, a developer answering a series of questions or presenting a schema. But if you browse many freeware and Java sites, for instance, you'll find references to inputs for code generators being defined as "templates," which are often no different in practice from the electronic forms and diagrams an application generator uses to gather information. What's worse, some vendors outside of our market who offer application generators call them code generators. Then at the other extreme are sources like Wikipedia, which essentially holds that a code generator is nothing more than a compiler.
Finally, there is a group of tools that focus on databases and that simply generate database inquiry programs. But on the basis of the argument that a simple inquiry is an "application," some of those tools also lay claim to the "application generator" mantle.
If you plug the term "application generator" into a search engine, you''ll come up with examples of all of these cases. Wouldn't it be helpful if we could get all the software companies to agree on what these terms mean? Of course, that's unlikely to happen, simply because vendors are always going to want to describe their products in the most attractive terms possible, and those attractive terms often seem synonymous with the most advanced-sounding technology types, at least from a marketing point of view. But I think it's worth making a statement to help ourselves try to realign the boundaries between these product types, at least intellectually. That way, we can engage in a less-confusing internal dialogue about what we need even if the signposts in the market remain ambiguous. (Hey, we can dream, can't we?)
In my opinion, the best answer is to keep a few guidelines in mind. A true application generator generates a new application that carries out different and multiple task types, built from descriptions of what you want the output to be, and stores this information in a repository. Products that offer only some of these features don't qualify. Conversion/migration tools need to stay in that niche (although perhaps we could give them a grander-sounding name like "application platform reconfigurator") because they're not generating a new application, they're simply generating a new form of an application that already exists. Code generators should be confined to defining tools that automate the building of pieces of applications, reusable or not. And those tools that help users interact with databases to retrieve information shouldn't claim to be building applications in the full sense and should be called something else, like "inquiry program generators."
By the names I've suggested, you can tell I'm not a marketer, I'm guessing. But would you draw the lines between these tool types differently? And what are some more glitzy names we could give them?
Posted by at August 13, 2007 3:29 PM
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 | 31 |
Our blogs are editorial content of System iNetwork. We welcome your comments and opinions and encourage lively debate on the issues, and we reserve the right to edit all postings for clarity, length, civility of tone, and appropriateness to the topic under discussion. Comments consisting of product or job solicitations and other spam, profanity, and extreme rudeness will be deleted. We also reserve the right to publish excerpts from the blogs in our e-mail newsletters and print magazine.