COBOL Software Modernization - Franck Barbier, Jean-Luc Recoussine


 The digital economy is expanding faster and faster. This results from recurrent advances in information technology (IT). There is a virtuous circle such that, in turn, more and more (often unpredictable) innovative usages boost IT. These usages are social and, in a broad sense, economical. More generally, the impact of IT on business is immense nowadays.

 In this dynamical context, two decades ago software became the premier economy sector in terms of revenue. Substantial overturning occurred: the progress and multiplication of operating systems (LINUX, Windows, OS X, etc.) and associated product lines (e.g. mobile variants), the development and increasing re(use) of opensource software, outsourcing in developing countries, etc. United States and Europe tried to keep their advanced positioning through “differential software engineering”: inventing new programming languages like Java or C#, new software development approaches like agile development, model-driven development (MDD), new software architecture paradigms like service-oriented architecture (SOA) and related middleware like Java Enterprise Edition (Java EE) or .NET and new computing paradigms like mobile computing, cloud computing or Internet computing as the superset of all modern computing paradigms.

 However, a great paradox persists, as technological entry costs, human involvement, the acquisition of new technologies and take-up initiatives, etc., are not easily and straightforwardly controllable. In other words, the great majority of people and teams in software development continue to use “old” technologies. First, a very good reason for this is that information systems on the top of these cannot be thrown overboard. Second, development hides maintenance. Challenges relate to software evolution not to software creation, especially from scratch. Seacord in [SEA 02] highlights this point as follows: “For large enterprise systems, a strategy of design for evolvability is a need. This approach does not distinguish between development and maintenance; maintenance is simply continued product development”.

Go to >

Beginning COBOL for Programmers - Michael Coughlan


 When, in 1975, Edsger Dijkstra made his comment that “The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offence,1 ” he gave voice to, and solidified, the opposition to COBOL in academia. That opposition has resulted in fewer and fewer academic institutions teaching COBOL so that now it has become difficult to find young programmers to replace the aging COBOL workforce.2-3 This scarcity is leading to an impending COBOL crisis. Despite Dijkstra’s comments and the claims regarding COBOL’s imminent death, COBOL remains a dominant force in the world of enterprise computing, and attempts to replace legacy COBOL systems have been shown to be difficult, dangerous, and expensive.

 In this chapter, I discuss some of the reasons for COBOL’s longevity. You’re introduced to the notion of an application domain and shown the suitability of COBOL for its target domain. COBOL is one of the oldest computer languages, and the chapter gives a brief history of the language and its four official versions. Later, the chapter presents the evidence for COBOL’s dominance in enterprise computing and discusses the enigma of its relatively low profile.

An obvious solution to the scarcity of COBOL programmers is to replace COBOL with a more fashionable programming language. This chapter exposes the problems with this approach and reveals the benefits of retaining, renovating, and migrating the COBOL code.

 Finally, I discuss why learning COBOL and having COBOL on your résumé could be useful additions to your armory in an increasingly competitive job market.

Go to >