Experts tell us that the rate of change in business today has increased dramatically. This creates demands for rapid software development and quick changes to existing software. The compelling story for ABL as a fourth generation language (4GL) has always been productivity. However, the productivity advantage ABL once enjoyed over third generation languages seems not to be as great as it was 20 years ago. I review issues in ABL productivity leading to a proposal for Progress Software to explore Model-to-Code translation techniques as a means of substantially boosting ABL productivity and responsiveness.
Increasing Rate of Change
Lately, the theme of increasing rate of business change has dominated PSC publications and conference presentations. This rate of change creates a need for productivity, both in the speed of creation of new applications and, perhaps even more importantly, in the speed with which existing applications can “nimbly” respond to changing requirements and needs. This capacity is further reflected in the theme of Responsive Process Management. Naturally, PSC has a number of products which facilitate building such nimble, responsive systems, not the least of which is ABL itself.
At the recent Global Partner Conference, the theme of rapid change was reinforced in several ways. One provoking remark1 was that Java, C# and similar languages were a dead end because they were not sufficiently productive to meet the needs for rapid change which characterized modern business2. However, the persistence of COBOL is sufficient lesson that Java and C# are not about to disappear. Clearly, a dramatic short term retreat from the use of these languages is unlikely because there is just too much entrenchment, too much momentum for the majority of development sites to make a rapid switch. It does, however, provocatively underscore the importance of productivity in responding to modern business needs.
Those commenting on the need for rapid change typically do not propose specific languages or tools as the solution, but rather suggest that the solution lies in the use of multiple tools. One example is Progress | Savvion in which Business Process Modeling (BPM) designer allows defining processes without coding and a BPM server executes these models. Some coding is likely for some process steps to provide interfaces to databases and other application software, but this coding is a tiny fraction of what would be needed to provide such process automation entirely through custom code. Consequently, processes can be developed quickly and be easily modified, providing the needed productivity and responsiveness. As a bonus, monitoring of the process execution provides valuable feedback for process improvement.
While several such tools undoubtedly have an important rôle in meeting the needs of modern business, there is still a major need for writing business applications. What can address the need for high productivity and nimble response in traditional application development?