COBOL Celebrates 50 Years
oranghutan writes "The language used to power most of the world's ATMs, COBOL, is turning 50. It also runs about 75 per cent of the world's business applications, so COBOL should be celebrated for making it to half a century. In cricketing terms, that's a good knock. The author says: 'COBOL's fate was decided during a meeting of the Short Range Committee, the organization responsible for submitting the first version of the language in 1959. The meeting was convened after a meeting at the Pentagon first laid down the guidelines for the language. Half a century later, Micro Focus published research which showed people still use COBOL at least 10 times throughout the course of an average working day in Australia. Only 18 per cent of those surveyed, however, had ever actually heard of COBOL.'"
I used to program in FORTRAN and COBOL. Now I just visit video chat sites :P
Though, to be fair, 50 years isn't quite as long as the average cricket game.
"It also runs about 75 per cent of the world's business applications"
Gee, I didn't know Windows Apps were coded in COBOL.
Come on, 75% is a HIGHLY dubious claim. Where's the source / proof / evidence? Where I work, we have nearly 200 business apps and I'm pretty sure less than 2% of business apps were made in COBOL - possibly even 0%.
Adeptus
No trees were killed in the making of this post; however, many trillions of electrons were horribly inconvenienced.
I don't imagine "Celebrates" is the right term for it. COBOL has no excuse to not have died long ago.
People "use" applications and embedded systems.
It would be more accurate to say people use applications written in the language several times a day.
I wonder how many times people use applications written in C or languages common to embedded systems? What languages, for example, are used to create the code that makes their automobiles, home entertainment centers, voicemail, etc. work?
How many times a day do people use applications that rely other languages that predate the moon landing?
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
Happy birthday, Crappy Old Bad Obsolete Language! You need to take better care of yourself, you look a lot older than fifty.
Free Martian Whores!
For those of you still hanging on:
http://www.amazon.com/C-COBOL-Programmers-Business-Approach/dp/0805316604/ref=sr_1_1?ie=UTF8&s=books&qid=1253538164&sr=8-1
Kriston
Okay, now let's hear from everybody that can write a few lines of C code and considers themselves a 'programmer'. Please chime in about how language X is so much more advanced than COBOL and also please throw in an anecdote about how this brings you back to the old days. Come on, I've teed it up for you, now knock it out of the park!
... and GET OFF MY LAWN!
We were taught COBOL at college 25 years ago and i'm still a grumpy old git
Given how much programming in COBOL is analogous to building computers with vacuum tubes, I think that celebrations are not really called for. I'm thinking we need a Dr. Kevorkian style mercy killing here.
Unbreakable toys can be used to break other toys.
"COBOL Celebrates 50 Years"
Should read:
"COBOL Bemoans 50 Years"
COBOL did a lot of things right, things that a lot of modern languages ignored.
Little things like:
* Having a manufacturer and machine and OS-independent standard.
* Quasi human-readable code.
* "MOVE CORRESPONDING"
that said, it's just as easy for numbskulls to write bad COBOL as to write bad C++ or bad Ruby.
Most businesses did not see any need to port mainframe stuff to WinDoze.
COBOL is solid. WinDoze is flakey. RM COBOL extended COBOL to modern
programmers. If it isn't broke, you don't 'fix' it.
Get a grip, and learn. I suggest going back to school. Just my opinion
though.
"Come on, 75% is a HIGHLY dubious claim. Where's the source / proof / evidence? Where I work, we have nearly 200 business apps and I'm pretty sure less than 2% of business apps were made in COBOL - possibly even 0%."
I suggest YOU go to work for any major business and work on their accounting software. Highly dubious? Hardly. Your business 'Apps' are probably front ends for a real language on a mainframe.
Visual this or that.
... "apt-get install open-cobol" would actually work. Yegads...
-- This
identification division.
program-id. birthday.
environment division.
data division.
procedure division.
main section.
display "get off my lawn!"
stop run.
If all else fails, immortality can always be assured by spectacular error.
I worked at a company that had a Cobol-based program that went live back in 1969. A team of programmers had kept it going ever since. Shortly after I started (mid 1995), I was in a meeting when one of the Cobol programmers mentioned that so-and-so had died over the weekend. Everybody started talking about her, what a great person she was, etc. After the meeting, I asked who she was, and was told that she was the last surviving member of the original team that wrote and deployed the application. When the system was finally shut down back in 2003 or so (I had long since left, but still had some contacts there to tell me what was going on), I really felt weird about hearing it; here was this thing that had outlived its creators (and some of the later maintainers), and now it was gone too.
Isn't it strange how computer software is both unbelievably ephemeral, yet also incredibly long-lived. I've worked on both sides and I'm not sure which is more fulfilling; it apparently took several years to write the aforementioned Cobol program, but it outlived its creators. I wonder what a programmer on something like, say, Madden, would feel, knowing that this thing they're working so hard on will be totally supplanted by the next version, next year.
Strange business, this computing machinery. Strange indeed.
The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offence.
Edsger W.Dijkstra, 18 June 1975
Ordo Militum Unix.
Thinking about COBOL gives me nightmares.
In one of our classes ('87), we had to pass a programming test in which you are required to pick a problem from a box (Simplex method) and a language in which you have to implement (COBOL).
We were given 3 hours, needless to say I took the entire 3 hours and more (examiner was very sympathetic) while all my friends were outside the exam hall in 30 mins after doing problems like Gauss-Sidel in pascal & c.
Funnily enough, 50 years is half a century in ... you know, the ENGLISH LANGUAGE (and I'm sure it's also half of the foreign equivalents to the word century. Except in Russia, of course).
How is SNOBOL doing? Better or worse than COBOL? Tim S.
How many programmers today have ever programmed Cobol, and used punch cards. That is how I started out.
Why when I was young we used we used rocks and we were grateful!
Now that I think about it, I'm pretty sure everything I just said is completely wrong.
COBOL and Mainframe stories serve a great purpose. We see how many of /. readers (commenters in fact) doesn't have the slightest clue about how real World goes on without breaking. Right, you can't logon to a bank mainframe which is likely underground in some forgotten place, monitored by armed guards but it doesn't grant you to say things like "COBOL runs on vacuum tubes" or "mainframes are dead".
If you don't have any clue, do as I do... Mute.
For example, I learned to shut up about audio processing software in movies and leave people do the real work as a video guy when I saw DTS movie audio track of a Hollywood movie was done on a MacOS 9 running Mac, back in 2003.
As they enjoy spending money for obvious, I suggest them to ask those general and professional Apple users (Macbook and iPhone included) if they know UNIX and if they know it celebrates its 40th year today. In fact, start with NeXT.
and still very much alive.
You cannot kill it (quite literally, mainframes have a MTBF of what, 40 years? How is your windows box doing?).
You can sneer at it, disregard it, ridicule it. But it is still there after decades of getting bad rep and no fresh blood. That is actually pretty impressive.
...and I'm happy for you and all, but FORTRAN was the best old-school language of all time!
Down with the career politician! SUPPORT TERM LIMITS
a few slogans we could tag this one with: ...so i CAN use goto?
COBOL: yeah but the frontend is java.
COBOL: and so the AS400 is in the inventory once again.
COBOL: break it and we're fscked.
COBOL:
Good people go to bed earlier.
creating a graphical sketch wasn't possible on a text-mode system
Unless the text-mode system can output an SVG document for a graphical client to display.
on most of our newer systems we use MAYBE 20% of of the features included, and I'd gladly trade the other 80% for stability and accuracy.
All clients use the same basic 10% of the features, but they have a different other 10% that they use. Once software became off-the-shelf rather than bespoke, software publishers started to try to include every client's other 10% in the same product.
"...research which showed people still use COBOL at least 10 times throughout the course of an average working day in Australia."
Given that the average Australian works about 2 hours a day, that's a lot of COBOL...
"They looked deep into my soul and assigned me a number based on the order in which I joined"
Given how much programming in COBOL is analogous to building computers with vacuum tubes
Computers with vacuum tubes didn't die until about half a decade ago, when LCDs became the norm in desktops.
http://www.reuters.com/article/pressRelease/idUS121649+18-Sep-2009+PRN20090918
"I don't think it's selfish, to eat defenseless shellfish." -NOFX
http://www.xent.com/FoRK-archive/spring97/0143.html
I agree, but so what? COBOL is a programming language; Windows is an operating system. I could replace your statement with "C++ is solid. VAX/VMS is flakey." and it would make as much sense to your argument.
How major? GM, Walmart, Citibank? Sure they have mainframes running COBOL apps, but most businesses are not that "major", and the "minor" ones outnumber them significantly. Also, not all business apps (which was the original claim) are accounting apps. I'm sure in some dusty closet somewhere you can find word processor or email app written in COBOL, but that's not what business use today.
Support Right To Repair Legislation.
For any of you tempted to wax nostalgic about COBOL, let me explain[*] just one charming feature: Procedure calls in COBOL are not stack based. That's right, there is no call stack.
In fact, you can't even really call a procedure in COBOL. Instead, you invoke what amounts to a GOTO/COMEFROM pair. COBOL programs are divided into "paragraphs". When you want to execute a procedure, you PERFORM PARA-1 THRU PARA-N. Yes, that's right - the return point of the invocation varies at the whim of the caller. Heck, the return point of the invocation can even appear *before* the starting point.
But wait, it gets even better! These invocations can overlap (again, rather than stacking). So if I PERFORM PARA-1 THRU PARA-5, then in the middle of PARA-3 I decide to PERFORM PARA-4 THRU PARA-6, guess what happens? As the instruction pointer passes the end of PARA-5, it doesn't continue through to PARA-6. No! There's still an active "COMEFROM" at the end of PARA-5 from the first invocation that returns control to the statement following that invocation. From there, it's like a whack-a-mole. The COMEFROM at the end of PARA-5 is cleared, but should control ever pass the end of PARA-6 for any reason whatsoever, there's still an active COMEFROM waiting there to send the instruction pointer back to the statement following the second invocation.
In short, pray that you never have to debug a poorly structured COBOL program. It is essentially impossible.
[*]Disclaimer: This information is based on suppressed traumatic memories from 20 years ago, so some details may be incorrect.
The most rabid believers in American Exceptionalism are the exact same people whose policies are destroying it.
Some tools' useful life is very short, they fall by the wayside quickly as either technology marches on or they get out-maneuvered in the marketplace a la BetaMax or are obsoleted by law or regulation a la analog television and the 42-50MHz FM Radio band.
I still use pen, paper, and pencils, all inventions which are well over a century old, every day. I rely on the modern printing press and laser printer, which are decades old, almost every day as well. On the other hand, my parents' and grandparents' generations used typewriters every day in business, but those are well on their way to obsolescence for most everyday business uses. My grandchildren's grandchildren may never have to even see a "typewriter style keyboard" outside a museum, holo-vid, or historical RPG.
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
Jack was a COBOL programmer in the mid to late 1990s. After years of being taken for granted and treated as a technological dinosaur by all the Client/Server programmers and website developers, he was finally getting some respect. He'd become a private consultant specializing in Year 2000 conversions. Several years of this relentless, mind-numbing work had taken its toll on Jack. He began having anxiety dreams about the Year 2000. All he could think about was how he could avoid the year 2000 and all that came with it. He tried getting a job with an Orange County web development firm, but couldn't hack it in the end. Jack decided to contact a company that specialized in cryogenics. He made a deal to have himself frozen until March 15th, 2000. The next thing he would know is he'd wake up in the year 2000; after the New Year celebrations and computer debacles; after the leap day. Nothing else to worry about except getting on with his life. He was put into his cryogenic receptacle, the technicians set the revive date, he was given injections to slow his heartbeat to a bare minimum, and that was that. The next thing that Jack saw was an enormous and very modern room filled with excited people. They were all shouting "I can't believe it!" and "It's a miracle" and "He's alive!". There were cameras (unlike any he'd ever seen) and equipment that looked like it came out of a science fiction movie. Someone who was obviously a spokesperson for the group stepped forward. Jack couldn't contain his enthusiasm. "Is it over?" he asked. "Is the year 2000 already here? Are all the millennial parties and promotions and crises all over and done with?" The spokesman explained that there had been a problem with the programming of the timer on Jack's cryogenic receptacle, it hadn't been year 2000 compliant. It was actually eight thousand years later, not the year 2000. Technology had advanced to such a degree that everyone had virtual reality interfaces which allowed them to contact anyone else on the planet. "That sounds terrific," said Jack. "But I'm curious. Why is everybody so interested in me?" "Well," said the spokesman. "The year 10000 is just around the corner, and it says in your files that you know COBOL".
Also, many people would probably consider the second item of your list one of the greatest failings of COBOL; specialized notations are usually used for specialized purposes for good reason.
Yet we don't want all languages to become APL-style inscrutable symbol-fests either. For example, Python uses "and" where PHP and C use &&, and Python uses "is not" where (roughly) PHP uses !==. If a manager can quickly learn to read the notation without it impeding other desirable features, that's a plus (or should I say a +).
Compare "add 1 to cobol" to "c++".
I invented a similar language once called BOLOC. But I never had the balls to carry it through to market.
It's hard to predict the future, but it seems that Java is becoming the new COBOL. It shares many features with COBOL:
1. Open-standard (or at least semi-open)
2. Runs on many different platforms
3. Not the latest and slickest, but "good enough"
4. Known for its verbosity
5. Compiled
6. More popular on the back-end than the client
Not too many companies want to bet their future infrastructure on MS Dot-Net, especially after MS pulled that VB language switcheroo.
Table-ized A.I.
For you youngsters, that's how you write ++age in COBOL. Now get off my lawn.
Which prick tagged this !kobol ? Does it SAY kobol anywhere in the title, summary or article ? Or is so that you can easily search for kobol later and not find this story (in which case you could have saved your typing) ? FFS. Next time there is a story about google I'm going to tag it !poodle.
Where were they surveying exactly? Right outside an programming convention?
Not that I've ever been to Australia, so maybe u guys are all really tech savvy, but I doubt that 18% of the population of Britain would know what C or Java are (nevermind cobol), or even what an operating system is...
COBOL will be around for a long time. According to some of the StarTrek episodes, they still in the 24th century use COBOL yield warheads. I find it amazing that a truly hated programming language of our era will still be used to cripple people 300 years in the future.
"Civis Europaeus sum!"
This is not a joke.
Yes, server side scripting in interpreted COBOL.
Back in the IT Pleistocene, I had to document and revise a business program that had been converted by software from Autocoder to COBOL. That conversion produced working code with elements named 'variable 1', 'constant 1' and 'subroutine 1'. So my first step was to use the known inputs and outputs to start naming things. The second step was to use the first wave of named things to deduce what the calculations were doing, and therefore be able to name the results of those calculations. Finally, I could put names to the routines. With all that in place, I was able to document the code, and then figure out how to make the requested changes.
My point is that analysis is important, and unless you really understand what that code in front of you is actually doing, you're likely to make assumptions based on what it was supposed to be doing. Black box programming is as reliable as black box voting.
+ + +
What's at the intersection of H. P. Lovecraft and politics? http://wp.me/p4ZDr-4R
Mainframe transaction platforms are rock solid - much more than one can say for most web app platforms.
If you could make a program bug-free just by choosing a particular language, don't you think all programmers would use that language to the exclusion of all others?
But odds are those weren't girls. Unless of course money changed hands.
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
In Soviet Russia.......
we still write in cobol..
It was always a sight whenever one of those students would drop their stack of cards all over the computing room floor....
A little pencilled number on each one goes a long way. ;)
Reply to That ||
For a while... :-(
;-)
Get the Facts: LSE and Microsoft
Unfortunately, I can't find the proud LSE case study on Microsoft's Get the Facts webpage anymore
Strange
To be, or not to be: isn't that quite logical, Slashdot Beta?
"So, we switched to a Windows app with a SQL Server backend. FWIW the database backend has been rock-solid, but the actual client? It's junk. That old clunky COBOL system might have been awkward to use and a bit long in the tooth, but it NEVER crashed, and its mistakes were minimal to say the least. This new Windows system crashes constantly (including crashing if you work too fast - yeah I literally have to do a "one one-thousand" count when switching between properties or the client will lock up), and it goofs up the data frequently enough that in another 5 years I think our data will be reduced to an unreliable mess."
I'm having difficulty imagining how the answer isn't "fire the incompetent front end developer".
All but a few of the complaints about COBOL are just mindless groans with nothing specific to say. The only specific complaints are about COBOL's verbosity. The irony is that, now that we can have long names for things, verbosity has become a preferred programming practice.
It would be interesting to see a feature-for-feature review of COBOL 2002 against other big, compiled languages.
I'm a Programmer. That's one level above Software Engineer and one level below Engineer.
I doubt it. ATM's talking to a system running COBOL? I doubt it. ATM's talking to a proxy running on Windows or Unix that talks to a mainframe running an app written in COBOL? That's more like it, but probably omits another intermediate step.
Edith Keeler Must Die
Way back when I was taking my Comp Sci BSc using stone tools,
I refused to do the COBOL programming assignment, which was
maybe worth 1% of the course mark in Programming Languages.
I didn't want to be qualified for a COBOL job.
I guess I was prejudiced against the all caps and most particularly
the lack of an ELSE statement to go with the IF.
I guess these problems have since been fixed, but I was
also trying to avoid programming accounting systems, which
would have been pretty much certain to have me banging my head
against the desk in boredom.
Where are we going and why are we in a handbasket?
No, my credit card is processed by a machine running TAL. Seriously, I checked, about twelve years ago. I visited the data center and spoke to the programmers. I doubt they have gone backwards into COBOL since then.
COBOL 50 coming out?
TOP DSLR Cameras Reviews of the top DSLRs
And I bet they were so grateful to learn! Now lets bring in the accountants, to open our eyes to all the lovely ways that double-entry bookkeeping touches our lives, and the concrete pourers, to explain how frequently we take reinforced concrete for granted.
Seriously, it's supposed to be surprising that most non-programmers haven't heard of your programming language? Most people don't even know what their own organs do.
If COBOL still mattered that much today, then WHY can you hardly find any tutorials online? let alone formal language definitions! all I could find were some code examples which acutally look like the language is designed to be "compiled" using search & replace! seriously, it hardly looks like more than ASM with different names for the opcodes...
The MAFIAA is a bunch of mindless jerks who will be the first up against the wall when the revolution comes
maybe cobol and language x same in reliability, just the bad cobol stuff got dropped 30 years ago.
like in mutual funds: took economists a long time to realize financial industry skewing results of mutual funds by not including all the funds that are started, but die early
One of the rare experiences in my life is to encounter a technology platform that just does its job, only that and nothing more with only reasonable downtime for explainable problems. I have a robot lawnmower that works like that -- just keeps the grass cut to the length I set. As long as I clean it off every so often and lube it on occasion it just keeps going. Pity my robot vacuums are not so well designed.
My experiences with COBOL fall into the same catagory. While I managed to miss working with the stuff, I did take a Cobol course in school and except for the first program (missing period in the environment division) the rest all compiled and ran correctly the first time. Some years later I built a pre-compiler for my employer that modified Cobol programs to permit use of relational expressions with non-relational file architectures. While what I was doing was experimental, the Cobol side of it was stable and predictable -- a far cry from many other languages I have used over the years.
It is a pity that we are in love with the new -- COBOL just does its job and if I had to support business programming again I would prefer a language that the boss could actually read over something new that spread the logic of the program over a vast pool of disconnected pieces. Functionality is where it is at -- especially if there is money involved.
when I was a mainframe computer operator in the late 70's I wrote a COBOL program to simulate a slot machine. It ran as a batch job, with the gaming interaction taking place on the system console. it was quite entertaining for long idle night shifts, but management didn't like seeing my timestamped game sessions in the console logs, so the program was quickly retired...
Ask Me About... The 80's!
The Almighty Combo.
That Cobol is but a whippersnapper. Mark my words.
F. Ortran
you fail massively... your line 7 is even missing its full-stop. BIG mistake.
BIG.
And you don't terminate your program. Second major fail.
And the most obvious - where are your CAPS, YOU STUPID LITTLE BOY?
Typical teenager - now, get off our lawns, you idiot.
Dear Cobol. Thanks for the memories and all that. We couldnt have done it without you. But, the times they are a moving. And its time you moved on with them. If I had disposal income in the millions. Id hold you the grandest of funerals. For now. I'll have to settle with a pint after work and peeing your name on the alley wall. RIP Cobol.
P.S. Make it two pints so I can pee a heart next to that too
And this has been another installament of Captain Obvious!