Don't Count Cobol Out
Hugh Pickens writes "Although 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,' Michael Swaine has an interesting entry to Dr. Dobb's Journal asserting that Cobol is the most widely used language in the 21st century, critical to some of the hottest areas of software development today, and may be the next language you'll be learning. In 1997, the Gartner Group estimated that there were 240 billion lines of Cobol code in active apps, and billions of lines of new Cobol code are being written every year. Cobol is a key element in the realization of modern distributed business software architecture concepts — XML/metadata, Web Services, Service Oriented Architecture — and e-business."
Dijkstra was not known for being conservative in his statements of opinion. His "GOTO considered harmful" essay did a lot of good, but it also did quite a bit of damage. To the point where we ended up with a variety of "considered Harmful" Considered Harmful essays.
(I wonder if ""Considered Harmful" Considered Harmful" Considered Harmful is soon to follow? Oh wait. That already happened in '87.)
A more conservative viewing of COBOL would show that it held a useful place in history, but is now antiquated. You'd need to be extremely conservative to think that COBOL has a place for growth in the modern world.
Oh snap. We got another one.
Let's be realistic here.
1. 1997 was 11 years ago
2. Everyone was preparing for Y2K
3. Those billions of lines of code were often replacing billions of lines of coded that were removed
As someone who once worked with mainframes, I can tell you that COBOL isn't dead. However, it's not exactly thriving, either. Legacy systems do their jobs well, so there is little reason to replace them. Instead, many companies use technologies like Java->CICS connectors to bridge the gap between old and new. But that doesn't mean that anyone is going to be developing "millions of lines of COBOL".
Quite the opposite, in fact. Business moves more quickly today than in any period in history. And with business moving so quickly, companies find they need to develop new aspects to their businesses. Those new aspects often take the form of new opportunities to develop new software.
If anything, I think COBOL is still hanging on because the mindset for technology is still external facing. Remember the Dot Com Boom? Well, one of the side effects was that technology shifted from optimizing internal operations to interacting with customers directly. Which is not a bad thing, except that internal operations shouldn't be neglected. Thus I see a lot of companies with inefficient internal procedures because they have not invested in proper internal technology infrastructure. This has left a niche where old COBOL programs are nursed along despite a growing amount of manual work for employees at many companies.
Wouldn't it be nice if technology could solve their problems? Well, it can. All we need is someone to make the investment.
With the economy going bust at the moment, I have a feeling the pendulum is going to swing back the other way. Companies are going to need to tighten their belts and become more competitive on price. Which means that they need more efficient operations. With the massive advancements in technology and ensuring code quality in the last 10 years, I fully expect that companies will soon have systems every bit as solid as their COBOL mainframes. Except they will be designed with more rapid change and flexibility in mind.
Javascript + Nintendo DSi = DSiCade
I'm gonna go ahead and count COBOL out. Don't be silly.
Prediction: The real iPhone killer is going to be sex robots from Japan. Think about it.
Long Live the Lords of COBOL.
Oh, say does that Star-Spangled Banner entwine / The myrtle of Venus with Bacchus's vine?
It may seem surprising that it takes any programming at all to implement a salary change in a payroll system, but a commenter on Slashdot said it was at least plausible, and that's good enough for us.
I think this alone should be enough to discredit the author.
Prediction: The real iPhone killer is going to be sex robots from Japan. Think about it.
What many people don't get is that a good business person goes after ROI. If you spend money on something, you want to get money out of it. Squeeze every dime until it screams (which I respect, BTW). Ripping out something just because it isn't cool doesn't play. Enhancing or building on top of it when there is a good business case does play. If it ain't broke, don't fix it.
Having to upgrade every 3-5 years means no ROI. This is a great argument against closed source proprietary vendors.
BTW, there is OO COBOL out there. And FORTRAN 95 is OO as well, which I am ramping up to do a project in soon (I hope).
putting the 'B' in LGBTQ+
My University (Texas A&M Kingsville) still requires COBOL for every IT-related degree, even those not oriented towards programming. My jaw almost hit the ground when I found out that I was going to have to take a COBOL class to earn my CIS degree. Although there is obviously still a need for people to support applications written in that archaic language, I really wish that the bureaucracies of the world would let it die already.
As a younger person in the world of IT, I question how much longer things like COBOL survive. My theory is that with the aging Baby Boomer population, those IT managers will soon head off to retirement. Younger folks will look at that COBOL as something that needs to go and with Bob gone, we can slowly bring that system to the 21th century.
As an aside, /. had this little quote at the bottom of the page when reading TFS: "senility, n.: The state of mind of elderly persons with whom one happens to disagree." I thought it was fitting.
Roughly half my comments are never submitted. You may be reading the better half...
Gov. Schwarzenegger ordered a cut in pay to California state workers, and was told that it would be impossible to implement because the payroll system is in Cobol and nobody can touch it.
Sounded like political bull to me, but then again...
and may be the next language you'll be learning
Just impossible. Basically because it was the second language (after FORTRAN) that I learned. I don't really understand the fuss about COBOL. Never found it either much worse or much better than other languages. The thing to remember about COBOL is that it was developed to solve a specific kind of problems. Today we would call it a Domain-Specific Language. And that kind of problems it solves with relative straightforwardness. Most of the critics I see of COBOL are for trying to use it as a general-purpose language. I mean, you don't try to write a text editor in PL-SQL, even if you probably could. And nobody criticizes PL-SQL for that reason.
So COBOL is outdated and verbose. True. So what. It's been years since a wrote a line of the beast, but I wouldn't have a problem to start working with it tomorrow. Also, as the set of problems that it was designed to solve was reduced, it as very pliable to being automatically generated.
So, a language is a language, all have their problems and advantages. Me, I care much more about the size of my screen or the strength of the air conditioning in my workplace than about the particular dialect that I have to program this week.
Rome taught me patience and assiduous application to detail. Virtues which temper the boldness of great, general views.
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 "NO THANKS!" LINE 15 POSITION 10.
100600 STOP RUN.
100700 MAIN-LOGIC-EXIT.
100800 EXIT.
Are you wading the waters to determine how palletable COBOL would be in your buzzword soup? Web 2.0 COBOL cloud computing does have a ring to it. Old is the new "new".
they're going to be telling us that Fortran is the new Java.
Censorship is obscene. Patriotism is bigotry. Faith is a vice. Slashdot 2.0 sucks.
What do COBOL coders make these days? Is it worth learning?
Can someone give me a side-by-side example of C and Cobol program or statement to do the same thing which would illustrate why Cobol is so "evil"?
C (No bells or whistles): http://99-bottles-of-beer.net/language-c-116.html
COBOL (or as I call it, COBALD): http://99-bottles-of-beer.net/language-cobol-1820.html
Not being a COBOL programmer (nor a C programmer either), I can't give you a code by code example on why C is better. But I can tell you that a lot more things have to be rewritten to do simple changes in COBOL compared to the equivalent code in C.
Taxation is legalized theft, no more, no less.
In 1997, the Gartner Group estimated that there were 240 billion lines of Cobol code in active apps, and billions of lines of new Cobol code are being written every year.
The report neglected to mention that 239.9 billion of those lines were boilerplate headers and math operators spelled out with English verbs.
No, I just switched his COBOL quote out for the BASIC one on my whiteboard at work on Monday.
The BASIC one is
See: Wikiquote
GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
Noooooooooooooooooooooooooooooooooooooo!!!!!
What I got when I tried to post the original:
Filter error: Don't use so many caps. It's like YELLING.
So what do you do when yelling is appropriate?
"When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
You picked the wrong choice to show him why COBOL is hated.
Typical Mainframe COBOL
Peter predicted that you would "deliberately forget" creation 2000 years ago...
COBOL may be the best "self-documenting" language. Which I guess isn't very relevant as we know developers love to document their code.
"billions of lines of new Cobol code are being written every year"
that accounts two hello worlds, and one program that shows the first 1000 fibonacci numbers.
factor 966971: 966971
So, Tumbleweed wakes up after almost 8000 years in suspended animation. An official in the year 9999 says, "Having searched the ancient archives of Slashdot, we see that you appear to have a working knowledge of COBOL. We have this Y10K problem coming up and we were wondering if you could possibly give us a hand with it."
Have gnu, will travel.
#include "stdio.h"
#define e 3
#define g (e/e)
#define h ((g+e)/2)
#define f (e-g-h)
#define j (e*e-g)
#define k (j-h)
#define l(x) tab2[x]/h
#define m(n,a) ((n&(a))==(a))
long tab1[]={ 989L,5L,26L,0L,88319L,123L,0L,9367L };
int tab2[]={ 4,6,10,14,22,26,34,38,46,58,62,74,82,86 };
main(m1,s) char *s; {
int a,b,c,d,o[k],n=(int)s;
if(m1==1){ char b[2*j+f-g]; main(l(h+e)+h+e,b); printf(b); }
else switch(m1-=h){
case f:
a=(b=(c=(d=g)g)'g)g;
return(m(n,a|c)|m(n,b)|m(n,a|d)|m(n,c|d));
case h:
for(a=f;a=e)for(b=gg;bn;++b)o[b]=o[b-h]+o[b-g]+c;
return(o[b-g]%n+k-h);
default:
if(m1-=e) main(m1-g+e+h,s+g); else *(s+g)=f;
for(*s=a=f;ae;) *s=(*se)|main(h+a++,(char *)m1);
}
}
The Kruger Dunning explains most post on
SO?
Comparing the number of lines is a waste of time and shows a lack of knowledge about what is actual important about programming.
Most people don't understand COBOL, and there for think it's bad becasue its old and give crappy examples the show how ignorant they are.
The Kruger Dunning explains most post on
I guess someone who quotes Gandhi showing off his complete ignorance shouldn't be expected to know the many new COBOL apps are used, and there are some very widely used enterprise systems that sue a language very similar to COBOL.
The Kruger Dunning explains most post on
Ever tried doing recursion in early Cobol? Maybe they've fixed this in later versions, but in the past the return pointer was stored in program space at the head of the function. This means that if you ever had any recursion, the return would loop back forever. How's that for a 3rd generation imperative language? You have to implement your own call stack!
My main complaint is the verbosity of the language, and the clunky set of program flow verbs. It almost forced you to use GOTO (and indeed, many people used GOTO as a way of implementing exception logic).
It had a couple of nice features for business applications: built in decimal arithmetic, and character-by-character print formatting (less messy than eg Fortran was at the time).
It is "evil" in the sense of being a poor language to teach programming. It is not general purpose enough, which means that students of the language are being constrained in their thinking about how to solve problems ("crippling" the mind).
I have no problem with using it as an application specific language, but surely now there are better choices even in that niche (for example the various database languages).
there will still be COBOL.
MOVE A TO B.
COMPUTE GROSS-PAY = HOURS-WORKED * HOURLY-RATE
SET MY-INDEX TO 1
SET ADDRESS OF MY-LINKAGE-SECTION-ITEM TO MY-POINTER
READ TRANSACTION-FILE INTO TRANSACTION-RECORD-WS
MOVE 2101 to AD
BEGIN WAR
SET CAPTAIN = "What happen?"
SET MECHANIC = "We get signal"
SET CAPTAIN = "What?"
OPERATOR MAINSCREEN = TURN-ON
SET CAPTAIN = "It's you!"
SET CATS = "How are you gentlemen?"
SET ALLYOURBASE = BELONGTOUS
SET YOU = AREONTHEWAYTODESCTURCTION
SET CHANCE != SURVIVE
SET LAUGH = "Ha ha ha ha"
OPERATOR CAPTAIN = "!!*"
SET CAPTAIN = "Take off every Zig"
MOVE ZIG FOR GREAT-JUSTICE
Remember, Slashdot does not have a -1 disagree moderation, and no, troll, flamebait, and overrated are not substitutes.
I keep hearing "COBOL is dead", "COBOL IS NOT DEAD".
But if COBOL were to go, what could replace it?
Requirements would have to include:
- performance (when processing millions of transactions)
- reliability (both hardware & software base)
- maintainability of code (easy for someone to take a program they never seen before, and make needed changes)
- follows business logic
- widely used
Officially: "No comments"
i am 20 something... i code in cobol for a bank... its their core banking solution... a microsoft system that was to integrate with the Mainframe was unable to handle the speed with which data was posted to it...(the mainframe is 39 years old, surpring a new language on a new platform couldn'thandle it LOL... an earlier attempt to migrate the system to java failed when the new application was twice as slow with only a portion of logic .. ) we are short on good cobol developers... thankgod we have a team of folks from india who are now busy coding in cobol and earning big bucks... yes cobol is old ... yes it is museum material but it does the job and combine it with mainframes ... the speed and reliability is unmatchable...
Merril Lynch reports that 70 percent of its business runs on Cobol apps.
That explains a lot.
This pretty much blows my mind:
http://www.sorn.net/media/photos/blog/cobol-gtk-sharp.png
The compiler here is called Wildcat, and it's a .NET compiler (runs on the CLR).