Friday, April 29, 2011

COBOL Universe - Life is better with Cobol !!!

COBOL. The Acronym for COmman Buisness Oriented Lanuage.Name itself explains the story.The Programming Language which recently celebrated it's 50th anniversary, which was developed with sponsorship from the U.S. Department of Defense.

Oh wait a minute.. are u talking about cobol..??

COBOL is dead, right? All the IT developer jobs now are in modern languages like C++, .NET and Java, right?

Wrong!

Don't belive me ..

Facts about Cobol that might surprise you!

According to a 2009 survey commissioned by Micro Focus and conducted by Harris Interactive:

• 70-75% of the business and transaction systems around the world run on COBOL. This includes credit card systems, ATMs, ticket purchasing, retail/POS systems, banking, payroll systems, telephone/cell calls, grocery stores, hospital systems, government systems, airline systems, insurance systems, automotive systems, traffic signal systems.

• 90% of global financial transactions are processed in COBOL.

• The language supports over 30 billion transactions per day.

• The average American still interacts with a COBOL program 13 times a day.

• There are 1.5-2 million developers, globally, working with COBOL code.

• There are around 200 billion lines of COBOL code in use.

• Around 5 billion lines of new COBOL code are added to live systems every year.

• The investment made into COBOL systems over the past 50 years is said to be worth about $2 trillion dollars.

What makes these facts even more amazing is that in a field such as Information Technology (IT) that is constantly changing with new operating system and programming platforms being released regularly, COBOL has remained this pervasive for the past 50 years.

On the history and pervasiveness of COBOL, Micro Focus United Kingdom Country General Manager, David Stephenson recently stated:

"COBOL emerged at the very birth of the computer industry, yet despite numerous other languages’ attempts to steal its crown, none have proved to be as well-suited to their tasks as COBOL. It predates the microprocessor by a whole decade (1969), and was already running the bulk of the world’s biggest businesses before the likes of Microsoft (1975), Apple (1976) and Oracle (1977) had even been established. The founders of Google, arguably the most pervasive of modern technologies, were mere toddlers at this time, yet COBOL’s robustness, core performance and ability to adapt to newer technologies means there are still 200 times more COBOL transactions every day than searches on Google itself.”

Yet despite how much COBOL is still in use and how intertwined it is in our daily lives, the language has a great many vocal critics. Turing Award-winning computer scientist Edsger Dijkstra once said, "The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense." (See Swain, Dr Dobb’s report article) The Jargon File defines COBOL as "a weak, verbose, and flabby language used by card wallopers to do boring mindless things on dinosaur mainframes," and adding that COBOL is "synonymous with evil."

In a Slashdot article “COBOL IDE,” readers posted such responses as “[COBOL] is a Vietnam-era computer language so outdated that many college students don’t even bother to learn it anymore”. When the question of whether COBOL will see a comeback in industry and jobs, many posters simply laughed. Another poster wrote: “What kind of college class would teach COBOL except as a historical curiosity in passing? Their job is to teach kids how to design good software and understand theory.” “The sooner the dinosaur is extinct... the better” was the thought of another poster. According to Micro Focus/Harris study, only one in four survey respondents have heard of COBOL or know what it is.

Clearly, many people do not enjoy COBOL programming. COBOL is a verbose language requiring a lot of code and is probably not the best quite for complex mathematics. But, after all, COBOL, is a business language, hence the acronym, COmmon Business-Oriented Language. And while leading up to the Y2K scare many IT managers thought the industry would move away from COBOL, the reality is, it hasn’t.
Why? Like it or not, the facts above are the facts. With over 200 billion lines of existing COBOL code, much of it running mission-critical 24/7 applications, it is simply too costly (in the short run) for many organizations to convert.

A recent Federal Computer Week article cited several organizations who converted or are considered converting their systems off of COBOL :

“The U.S. Postal Service considered rewriting its COBOL-based product tracking system in Java but, with 15 years of business logic embedded in that COBOL code, USPS officials eventually realized that it would be a massive job. They opted instead to use a Micro Focus compiler to repurpose the code so it could run on a mainframe Linux system.
‘It would have been much more costly to convert to Java,’ said John Byrne, manager of USPS’ Integrated Business Systems Solution Centers and the point person for the agency’s application development. ‘There are also unknown risks. We’ve done other things in Java, and they’ve not gone well.’

It can be done … The Defense Logistics Agency used concerns about the Year 2000 date changeover as the catalyst to move away from a COBOL system to an SAP enterprise resource platform, though it cost about $750 million.”

An August 5, 2008 article in the Sacramento Bee described how California Governor Arnold Schwarzenegger’s order to immediately cut the pay of some 200,000 state workers to minimum wage could not be carried out because the State Controller indicated the payroll system was too antiquated to do it in a short time period. The Controller indicated that six months would be required. Califormaia has made attempts in the past to modernize its payroll system, which now has an estimated cost of $177 million. Fred Forrer, the Sacramento-based CEO of MGT of America, a public-sector consulting firm, commented on the COBOL market: "COBOL programmers are hard to come by these days. It's certainly not a language that is taught. Oftentimes, you have to rely on retired annuitants to come back and help maintain the system until you're able to find a replacement." (See: Yamamura, Sacramento Bee article)
Mickey Rosen, a sales representative with Alchemy Solutions, added that COBOL may continue in use for quite some time because so many of the large COBOL systems still work so well. Rosen states, “There's a lot of code out there in use in a lot of companies … I think a lot of companies right now are looking and saying, 'If I spend a bunch of money to get rid of COBOL, I don't end up with more than I started out with. If I can leverage what I've got, and I don't touch a lot of it too often, I'm better off.'"

There are a host of other reasons IT is slow to convert COBOL systems:

• COBOL is robust. A myriad of third-party products exist to support COBOL in testing, debugging, code reuse, and application analysis.

• COBOL is extremely scalable.

• COBOL can support large volumes of transactional data.

• COBOL is extremely reliable for mission-critical applications, particularly when run on mainframes.

• COBOL is an easy-to-learn language that adapts well to business needs.

• COBOL is extremely portable across platforms.

• COBOL continues to be updated. There are now object-oriented (OO) COBOL compilers with polymorphism and overloading. Many companies now use COBOL alongside Java, Oracle, .NET and other modern technologies, including COBOL systems with graphical and Web-based front-ends.
So, is this blog post intended to persuade you to embrace COBOL as your favorite programming language? Certainly not. It is intended to examine the reality of COBOL’s use in IT today and the potential job market of COBOL developers. The preponderance of the IT literature indicates several key facts that those of us in IT should know:

COBOL is not going away anytime soon.

From the Dr. Dobb’s report article: “Replacing COBOL entirely can be an expensive proposition, and many companies (and State governments) have for decades thought it cheaper to keep it.” When organizations do decide to migrate that migration can take years and employ COBOL programmers at top dollar. From the SD Times article: “It's been 50 years since the initial specifications of COBOL were laid out, yet the future remains bright for the venerable programming language.” The reality of it is that many of these COBOL systems just aren’t going away anytime soon.

COBOL programmers are in demand.

This leads us to the fact that COBOL programmers are in demand. From the Dr. Dobb’s Report article: “As long-time COBOL coders die or retire, they are not being replaced. Few schools teach COBOL any more. And demand is still strong … Micro Focus and IBM have tried to nudge universities to train more COBOL programmers, offering free courseware and technology, but this hasn't resulted in a huge flood of new COBOL programmers. So adding COBOL to your toolkit does make you more employable. And you can definitely do better than minimum wage.” A comment posted on the Sacramento Bee article that was highlighted as the most popular comment states, “a major problem has developed in that the schools are failing to offer training in a language [COBOL] that is still being written and maintained.”
Another article in the Dr. Dobb’s Codetalk web site quotes Leon Stevens, a computer science professor at Lincoln University of Missouri, “a number of business organizations, including the Missouri State Government, report that they are looking for COBOL programmers. Hint for those who didn't go for COBOL: Find out what your parent's didn't tell you: THERE IS a **STRONG** market for COBOL programmers."

The following is an excerpt from the Brian Robinson Federal Week article:

“Agencies could face a shortage of experienced Cobol programmers during the next few years, as the people who have that longtime expertise retire. Most universities and colleges have dropped Cobol from their curriculum in favor of teaching more modern languages, such as Java.
But Cobol could be making a comeback at the university level, with an assist from industry. For example, Micro Focus, a software developer with customers around the world, has been working with schools in a number of countries to boost the level of graduates with Cobol skills.
In the U.S., those include Texas A&M University at Kingsville, New York City College of Technology, Kansas State University, University of Wisconsin at Platteville, Central Carolina Technical College, and Colorado Tech University. “

When organizations can’t lure former COBOL developers out of retirement and cannot find any from the current job applicants, they often turn to internal training. The Federal Week article reports that the U.S. Social Security Administration is finding it challenging to find COBOL programmers willing to learn and use modern languages with COBOL, so they have turned to hiring new developers willing to learn COBOL.
The other option when an organization cannot find COBOL developers is to train existing developers in COBOL. Why? Because there is a demand for COBOL developers. The Paul Krill Tech World articles notes that ”if you're a Java or C# developer, to actually do or become productive in COBOL, only takes two or three weeks in reality.”
[And finally] Working with COBOL does not mean your IT skills are out of date.

Large organizations (the type that most often use COBOL) typically have complex IT infrastructures with a myriad of hardware, software and operating system platforms in use. As a result, the programmers who develop and maintain these systems are very often required to be skilled in numerous technologies. This is actually the norm in IT. Experienced web developers are often skilled in HTML, CSS, PHP, Dreamweaver, JavaScript, SQL, and PhotoShop, to name only a few. Similarly, a software developer maintaining COBOL code may need to know COBOL, SQL, Oracle, DB2, Unix scripting, C++, and/or Java. A visit and search for COBOL in any IT job web site, such as Dice.com, will illustrate this.
COBOL, in fact, has come a long way in the past 50 years. The following are excerpts from the Swine, Michael, Dr. Dobb’s Report on the new capabilities of COBOL:

“The 1985 standard introduced structured programming and the 2002 standard gave Cobol object-oriented capability … Last year, Micro Focus and Microsoft announced a strategic relationship to help businesses modernize Cobol apps by porting them to the Windows platform, so a lot of Micro Focus development happens in the world of .NET, J2EE, and Web 2.0. Micro Focus's Cobol implementation within .NET, Crook says, "’is on a par with any other .NET language in terms of capability.’”
The article also describes how COBOL can be translated or called from Java making it highly portable. In addition, the Eclipse Foundation is developing a fully functional COBOL graphical Integrated Development Environment (IDE)that will allow for development on the Windows, Solaris, or Linux platforms. IBM, Microsoft, Fujitsu, Micro Focus, and Veryant are all working to making COBOL as portable as possible.

COBOL is even going Web and Web 2.0. The Dr. Dobb Report article continues:
“The role of the Cobol programmer in moving from traditional implementations to web-based models can take many forms. The programmer may bridge between Cobol code and new apps, which requires understanding Cobol, the business rules underlying legacy Cobol code, and modern languages and systems. With the emergence of SOA and IBM's Language Environment, with its common runtime environment, existing Cobol code can be integrated with other code more easily. The tools available for integrating Cobol and the Web are evolving quickly. Veryant is making it possible to do Web 2.0 development directly in Cobol: ‘the same graphical resizing of windows that is part of most Web applications today is now easily implemented for Cobol program end users.’”
The Robinson, Federal Week, article states: “The Social Security Administration is wrapping essential Cobol applications in Extensible Markup Language envelopes and publishing them as service-oriented architecture services. It will retain about 20 percent of the 36 million lines of Cobol code it uses.” Mickey Rosen, of Alchemy Solutions, states, “.NET is often used to either replace or wrap COBOL applications” (Handy, SD Times article). The process of calling COBOL from other languages is called “wrapping”. A COBOL program can be wrapped within, integrated into, called from, or call most other commonly-used modern technologies, including C, C++, C#, .NET, Java, PHP, AJAX, and Oracle, to name a few.

For those who have never seen a COBOL program and are interested, here is an example of the classic “Hello World” program in COBOL.

000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. HELLOWORLD.
000300
000400*
000500 ENVIRONMENT DIVISION.
000600 CONFIGURATION SECTION.
000700 SOURCE-COMPUTER. RM-COBOL.
000800 OBJECT-COMPUTER. RM-COBOL.
000900
001000 DATA DIVISION.
001100 FILE SECTION.
001200
100000 PROCEDURE DIVISION.
100100
100200 MAIN-LOGIC SECTION.
100300 BEGIN.
100400 DISPLAY " " LINE 1 POSITION 1 ERASE EOS.
100500 DISPLAY "Hello world!" LINE 15 POSITION 10.
100600 STOP RUN.
100700 MAIN-LOGIC-EXIT.
100800 EXIT.


Now, that’s not too scary is it? Yes, it’s verbose, but again, industry is trying to maintain and leverage several hundred billion lines of existing code in a modern and cost-effective way.