COBOL not dead, not yet

Shekar Shetty of Keane Software argues that Cobol has a future, though it is very old. He tells the readers not to write or read an obituary of this language, which many consider redundant.

Admiral Grace Hopper, the first female admiral of the US Navy in April 1960, invented the COBOL language. It was designed to be a business language that was problem oriented and machine independent. COBOL was an effort to make a programming language that was like natural English, easy to write and easier to read so that even the user can read the source and see exactly what the computer is doing or supposed to do. 
The primary goal of COBOL was to solve accounting problems for government and business organizations. The CODASYL charter for COBOL, commonly referred to as the Business Application Paradigm, states: 
  • Business Applications are large, very large and very, very large 
  • Business Applications are magnitudes of order more complex than dog and pony show demos 
  • Business Applications are long-lived (10, 20 and 30 year-old applications are common) 
  • Business Applications are dynamic - during the time business applications spend in production they grow in complexity, and evolve well beyond the original design and specification requirements 
  • Business Applications are critical - applications must be stable at high transaction and data access volume and capacity (often measured in the millions/day). If applications crash, they must be fix-able, and restartable 
  • Business Computing Architectures evolve and change 
  • Business comes first 
  • Business projects will be understaffed and overworked 
  • Millions of business programmers are needed to meet worldwide business application development requirements 
  • Business project teams change - individuals responsible for writing applications rarely maintain and support them in production 
  • I/S departments are unique - no two shops employ the same methods, standards and practices in developing, maintaining and supporting production code
Some of the major strong points of COBOL are: 
Self-documenting
COBOL is an English-like, readable, self-documenting semantic programming language. Large, complex, and long-lived application development projects benefit from COBOL's self-documenting syntax and semantics. 
Most importantly - maintenance and production support-related tasks benefit, particularly when done by I/S technicians who are not the original application authors. 
Simple
COBOL encourages a simple, straightforward programming style. Programmers develop complex applications combining simple procedural constructs, instead of writing impenetrable, terse code. 
This facilitates maintainable, production-enabled programs for large, long-lived, dynamic, complex applications. 
Non-Proprietary - (portable)
COBOL is far and away the most portable language. Because the independent ANSI-COBOL committee legislates non-vendor-specific syntax and semantic standards, COBOL applications can be developed, ported, down-sized, upsized, re-hosted, reused and right-sized to every operating system on every hardware platform - PC, Network, mid-range, mainframe, Windows, OS/2, every flavor of Unix, DOS, AS/400, VSE, VMS, VM, MVS, you name it, COBOL's been there, done that. 
Efficient
COBOL has a 40+ year history of optimizing compiler technology, which by now is sophisticated to the point of object code re-engineering for greatest run-time efficiency specific to given hardware platforms. 
Scalable
Through COBOL's availability on all common I/S run-time environments, and through non-proprietary CALL USING constructs COBOL applications can scale up with loose or tight coupling - and even O-O message binding with ease. Complex business data processing activity which is supported by huge COBOL applications (millions of lines of code) is common and maintained through this simple, scalable construct. 
Portable
COBOL has tremendous portability. COBOL can operate on PCs, Networks, mid-range, and mainframes. This language is also compatible with Windows, OS/2, every flavor of Unix, DOS, AS/400, VSE, VMS, VM, and MVS. 
Universal
Well over 1,500,000 I/S technicians and programmers worldwide are experts in COBOL. COBOL solutions do not require hard-to-find, expensive consultants to develop, maintain and support them (although lately, with all the fuss and attention paid to non-COBOL technologies, want-ads for COBOL programmers are dramatically on the rise!). Through the efforts of the ANSI committee COBOL programs written in Germany run on mainframes from Deli to Santa Cruz to Manhattan. The COBOL language is a constant from shop-to-shop, from project-to-project. 
Open
COBOL integrates and can converse with all other 3GLs (C, PL/I Fortran, etc.) all 4GLs (CA-Eztrieve, FOCUS, Visual Basic, PowerBuilder, Delphi), assembler languages (ALC), pure and hybrid O-O languages (Smalltalk, C++...), API-based technologies (Windows SDK, DCE...), relational (aka Client/Server) DBMSs, non-relational DBMSs (IMS, CA-IDMS, Total), object DBMSs, and all pointer-based and sequential file systems. 
Complete
In spite of its simplicity and in addition to its business orientation COBOL is "computationally complete" - and can be used in applications that run the gamut from simple batch reporting to complex transaction and windowed systems across all industries and business and computing requirements. 
Mature
COBOL has thousands of 3rd-party products from hundreds of companies with upwards of thirty years of support for the COBOL market. 
Hundreds of products exist in the critical areas of application testing, debugging, application analysis, maintenance, production support and code reuse. New COBOL compilers and development tools are announced every quarter. 
Reliable and Proven
Perhaps most significantly COBOL is used in more production systems and has a more proven and reliable production history than all other business languages combined. 
To put it in another way, COBOL's main advantages are: 
  • The purpose of COBOL is to be used as a business tool. 
  • It is built for relatively simple algorithms combined with high input-output volumes. 
  • The English like syntax and rigid program structure make it somewhat self-documenting. 
  • The program structure makes it inherently modular. 
  • The syntax standard promotes coding discipline. The ANSI defined syntax makes COBOL machine independent. The minor/major updates are made regularly every six to ten years. 
  • Since COBOL was intended for business use the standards ensured it developed into a powerful tool for data editing, formatting and file management capabilities for simple sequential files to indexed files to relational database tables. 
  • No other general-purpose language can match its powerful and versatile data handling capabilities under so many methods of data storage. 
    It is no wonder then that COBOL remains the preferred language in the business world of today. There are between 2 and 3 million COBOL programmers in the world of which up to 2 million are in the US. The estimates range up to 200 billion lines of existing COBOL code, which is about 30 million man-years (6000 to 7000 lines of finished, tested and implemented code per year).

COBOL is not dead. The generally accepted notion that COBOL is old and not suitable for the cyber age definitely impacts the products and tools created by the large number of COBOL software vendors active today. 

There are tools in the market that help extend COBOL to the web. In addition, new COBOL compilers include OOP/GUI/Web features, making them not only competitive with VB, Java and C++ but superior to them in many ways. 
Today, there are several compiler vendors of OO COBOL. The main features of OO COBOL are: 

  • It integrates COBOL with Microsoft Visual Basic, Visual C++, Visual J++, Visual InterDev and many other tools such as Crystal Reports, Data Junction, Oracle, MS-Access, ODBC data access support, Excel and more. 
  • It even allows integrating ActiveX controls. 
  • It supports CGI web scripting. 
  • By using CALL USING constructs and new object-oriented message binding (OO COBOL) COBOL can be scaled accordingly. 
  • It can integrate and exchange data with 3GLS(like C, PL/I), work with 4GLS(like Visual Basic, PowerBuilder, Delphi), assembler language, pure and hybrid OO languages (like Smalltalk, C++) and API based technologies (Like Windows SDK), relational/non-relational and object DBMS, as well as pointer based and sequential file systems.

'E-Business' is the new buzz word of the new millennium. You must be in E-Business if you want to stay in business. Large corporations and governments rely on 'legacy' COBOL-based applications for mission critical tasks, and E-Business means that these systems need to be integrated and connected to the outside world. Many key E-business transactions are processed on COBOL application servers. 

For example, Federal Express and Schwab use COBOL extensively for the application servers for high-volume transaction processing. COBOL, particularly Object-Oriented COBOL, will play a major role in allowing companies to migrate their 'legacy' applications into an E-Business environment. 

Summary
COBOL has received significant ridicule throughout its long lifetime. Most of the ridicules are unfounded and in spite of all things said and done against it, COBOL will continue to be relevant. 

It will not only survive but prosper in the new millennium in one form or another. The key is using the right programming language for the right job. One would not consider writing a real-time anti-missile control system in COBOL: Assembler or machine codes would be better suited than COBOL. 
Similarly, one should not write a mission-critical business application, say payroll, in C, because writing and debugging large complex applications in C and other low-level languages would take a long time and be cost-prohibitive. With that in mind, COBOL may be one of the oldest languages but it still has a bright future. 




Added on April 26, 2007 Comment

Comments

Post a comment