Slashdot Mirror


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."

274 comments

  1. Another one? by AKAImBatman · · Score: 5, Insightful

    Edsger Dijkstra once said, 'the use of Cobol cripples the mind; its teaching should, therefore, be regarded as a criminal offense,'

    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.

    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.

    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.

    1. Re:Another one? by number6x · · Score: 4, Interesting

      I absolutely agree. There is a lot of new COBOL being written, but it is usually done to enhance existing systems.

      I am currently on a project at a major insurer on a system that is about 90% COBOL. Over the nextre year most of the Batch functionality will be replaced with smaller Real-time enabled called routines running as headless transactions in a CICS region.

      The code base will be greatly reduced because the majority of the field validation is being moved into the new front end web app from the old COBOL based CICS green screens and the Nightly batch routines. The COBOL code will just wait for messages to show up over the Queue and either update, create, read or delete things in DB2.

      The software system is really pretty robust for a Mid-80's era design. It has no central database, each separate portion of the company processes transactions in a distributed peer to peer fashion. Quite advanced for mainframe systems of any era let alone when PC's were just breaking into the 16 bit cpu and greater than 640 k era.

      Mainframes are much cheaper now as well. The models produced by IBM today run on air cooled power PC CMOS design chips and start in the $300K range (and go way up). Paying for comparable computing power on an Intel based platform would cost less, but if you start demanding the 9 nine's of uptime that mainframes deliver the cost of the high availability Intel based machines goes way up and you get into the $250K range.

      People used to believe that 'network' computing would kill the mainframe. Now the mainframe is just a part of the network.

    2. Re:Another one? by morgan_greywolf · · Score: 1

      If anything, I think COBOL is still hanging on because the mindset for technology is still external facing.

      Yes and no. In the financial industry, for example, COBOL mainframes hang on primarily because their reliable. They're not looking for just 'three 9s'. That's because 'three 9s' just ain't good enough! These people run 24x7x365 global businesses. They can't afford to have ANYTHING go down. Ever. A missed transaction means EXTREME costs. Multiply that by the millions of transactions they do in a second, and, well, you can just forget about 'three 9s.'

    3. Re:Another one? by syousef · · Score: 2, Interesting

      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.)

      Typical COBOL developer. That's so last century. Don't you know we call them Anti-patterns now? Get with it already!

      (Moderation Hint: This was a tongue in cheek joke not a troll).

      --
      These posts express my own personal views, not those of my employer
    4. Re:Another one? by Mike+Buddha · · Score: 3, Insightful

      Yes and no. In the financial industry, for example, COBOL mainframes hang on primarily because their reliable.

      BS. In the financial industry COBOL mainframes hang on because they're PAID FOR.

      --
      by Mike Buddha -- Someday the mountain might get him, but the law never will.
    5. Re:Another one? by Anonymous Coward · · Score: 0

      I absolutely agree. There is a lot of new COBOL being written, but it is usually done to enhance existing systems.

      I am currently on a project at a major insurer on a system that is about 90% COBOL. Over the nextre year most of the Batch functionality will be replaced with smaller Real-time enabled called routines running as headless transactions in a CICS region.

      The code base will be greatly reduced because the majority of the field validation is being moved into the new front end web app from the old COBOL based CICS green screens and the Nightly batch routines. The COBOL code will just wait for messages to show up over the Queue and either update, create, read or delete things in DB2.

      The software system is really pretty robust for a Mid-80's era design. It has no central database, each separate portion of the company processes transactions in a distributed peer to peer fashion. Quite advanced for mainframe systems of any era let alone when PC's were just breaking into the 16 bit cpu and greater than 640 k era.

      I hope COBOL wasn't the cause the seemingly random noun capitalization above (boldfaced by me).

    6. Re:Another one? by Anonymous Coward · · Score: 1, Funny

      Over the next year most of the Batch functionality will be replaced with smaller Real-time enabled called routines running as headless transactions in a CICS region.

      I've gotta admit. This make absolutely no sense to me what soever.

    7. Re:Another one? by Belial6 · · Score: 1

      the majority of the field validation is being moved into the new front end web app

      That sounds scary...

    8. Re:Another one? by Anonymous Coward · · Score: 1, Interesting

      COmmon Business Oriented Language, COBOL.. I was first exposed to this abomination in college in the eightys. My exact words were WTF!.

      Teacher said,"It's so businessmen can understand it." I said."So let the fuckin' MBA's program in it," and went back to Pascal.

      Love,
      Steve

    9. Re:Another one? by plover · · Score: 4, Interesting

      Yes and no. In the financial industry, for example, COBOL mainframes hang on primarily because their reliable.

      BS. In the financial industry COBOL mainframes hang on because they're PAID FOR.

      Almost. The mainframes are definitely not paid for (we continue to lease and upgrade our mainframes), but the COBOL code is.

      Mainframes hang on because they have a huge legacy base of working code. Replacing all that is seen as a giant expensive effort for no immediate gain. And because we have more and more work to do with that data, we keep adding more and more code to the legacy base.

      It'll take a mandate from on high to get us to stop adding to the morass. And that's not forthcoming, because honestly the COBOL work is still as cheap as anything else, especially for the giant record-oriented processing work that we ask of the beasts. They may not be glamorous, but their ugliness is well understood, and has a stable price tag.

      --
      John
    10. Re:Another one? by TopShelf · · Score: 1

      One step that some companies are taking is to migrate their COBOL apps from a mainframe down to an iSeries (AS400), which provides rock-solid stability and scalability at a much lower cost. It's not a trivial effort, but poses far less risk than migrating to an entirely new app developed in "modern" languages.

      A major annoyance to such firms are the software vendors who are forcing them away from COBOL (or RPG) applications to newer versions built around Java, for example. While there are some obvious benefits, the risks involved in replacing mission-critical systems and the likely obsoleting of IT employees familiar with the legacy app just don't make it worthwhile.

      --
      Stop by my site where I write about ERP systems & more
    11. Re:Another one? by Z00L00K · · Score: 1

      The biggest problem with Cobol is all the Cobolists that thinks that everyone else has to adapt to their way of doing things and not necessarily accept that there are more reliable ways of doing things.

      Still Cobol systems relies mostly on the exchange of fixed-record files without any real reliability built in and transferred via FTP or tape. Any field not correctly formatted is considered zero or empty and is passed right through causing havoc on invoices etc.

      So even though there are a few systems running Web Services and other technology they are still a minority.

      Many Cobol programmers are also unwilling to touch more than necessary of the code because it may cause unexpected side-effects. So don't rely on getting the bug fixed in a Cobol system, you may have to make a workaround on the client side.

      So there is no wonder that there are funny invoices and things popping up now and then.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    12. Re:Another one? by techno-vampire · · Score: 1

      Excuse me, but back when I was in programming school that was Confused Obsolete Badly Organized Language. I only wish that the obsolete bit had been true, because that was back in the early '80s and it's still around. Oh, and while I'm thinking about it, I was always taught that it was so verbose so that the accountants could follow the code and make sure that the programmers weren't stealing anything.

      --
      Good, inexpensive web hosting
    13. Re:Another one? by Hognoxious · · Score: 1

      Any field not correctly formatted is considered zero or empty and is passed right through causing havoc on invoices etc.

      That sounds like a problem with the application, not the language. I'm speaking as someone who has used COBOL in action, and hated it with a passion.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    14. Re:Another one? by Sique · · Score: 1

      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

      If you ever encounter a SAP R/3 program, you will find COBOL mixed with SQL statements (the whole called ABAP). So COBOL is not dead, it just has mutated.

      --
      .sig: Sique *sigh*
    15. Re:Another one? by TheLink · · Score: 1

      Well maybe someone should port COBOL onto a JVM, and also the rest of the mainframe style environment it needs.

      IBM might even do that - so it can add X more choices to the billions of choices it gives to prospective customers (so that they can pay IBM more $$$ to help them decide which is "right for them").

      --
    16. Re:Another one? by morgan_greywolf · · Score: 1

      Well maybe someone should port COBOL onto a JVM, and also the rest of the mainframe style environment it needs.

      You mean like this?

    17. Re:Another one? by number6x · · Score: 1

      I hope COBOL wasn't the cause the seemingly random noun capitalization above (boldfaced by me).

      Nasty habit ingrained by years of programming mainframes. Symptoms include a strange aversion to the words 'go' and 'to'.

    18. Re:Another one? by TheLink · · Score: 1

      That's only the first part.

      I suspect that most practical mainframe COBOL programs in use will assume a mainframe environment.

      Even if you have a JVM that runs COBOL it doesn't mean the COBOL programs will work usefully. I assume those guys haven't done the "virtual mainframe" part yet.

      If I take a bash script that assumes an Ubuntu/Debian environment, there's a high chance that it won't work on Suse or Redhat, even if bash is available.

      If the porting effort is high enough (rewrites, retests etc), one might as well just rewrite in a different language.

      --
  2. No by Gat0r30y · · Score: 2, Insightful

    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.
    1. Re:No by thePowerOfGrayskull · · Score: 1

      You'd be surprised how many major banks, insurance companies, and governments have their entire back-end systems written in COBOL... with no intention whatsoever of changing.

  3. BSG by HTH+NE1 · · Score: 3, Funny

    Long Live the Lords of COBOL.

    --
    Oh, say does that Star-Spangled Banner entwine / The myrtle of Venus with Bacchus's vine?
    1. Re:BSG by Kethinov · · Score: 1

      Long Live the Lords of COBOL.

      I'm definitely not counting it out. Galactica and fleet could still settle there now that they've discovered Earth is a devastated wasteland!

      --
      You're right, I wouldn't steal a car. But if it were possible, I sure as hell would download one!
    2. Re:BSG by Simmeh · · Score: 1

      "and may be the next language you'll be learning."

      Been there done that.

      So say we all.

    3. Re:BSG by pilgrim23 · · Score: 3, Funny

      COBOL? bah! FORTRAN rulz!

      -and he said with a face quite solemn: "You better start in the 7th column"

      --
      - Minutus cantorum, minutus balorum, minutus carborata descendum pantorum.
    4. Re:BSG by morgan_greywolf · · Score: 1

      Been there done that.

      So say we all.

      Yeah, but you can tell the posers from the real deal. Real COBOL programmers have stubs where there fingers should be.

    5. Re:BSG by xouumalperxe · · Score: 1

      Bah, COBOL is outdated, nowadays we program with objects! And, for that, ADD 1 TO COBOL GIVING COBOL is a great language!

  4. Best Part by Gat0r30y · · Score: 5, Insightful

    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.
    1. Re:Best Part by Rayeth · · Score: 1

      Mod Parent Up. Seriously that comment should basically disqualify anyone attempting to do scientific research or prove anything about anything.

    2. Re:Best Part by oldhack · · Score: 2, Insightful

      Btw, I had been a long-time subsrcriber of Dr. Dobbs, until about a year ago. About the only thing worth saving from what it has become is Swaine's column.

      --
      Fuck systemd. Fuck Redhat. Fuck Soylent, too. Wait, scratch the last one.
    3. Re:Best Part by Xiaran · · Score: 1

      Agreed. I recall the good old days when I waited with anticipation for the next DDJ to come out. Always informative and interesting. There was always at least one article that had nothing to do with my day to day programming job that I read all the way thru because it was cool. RIP DDJ.

    4. Re:Best Part by Anonymous Coward · · Score: 0

      Is XML a programming or markup language?

      <salary amount="2500" />

    5. Re:Best Part by Anonymous Coward · · Score: 0

      A commenter on slashdot said that the author should be discredited, so that's good enough for us.

    6. Re:Best Part by Anonymous Coward · · Score: 0

      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.

      said the same commenter from Slashdot.

    7. Re:Best Part by bytesex · · Score: 1

      If you earn that much, it's a programming language. Really.

      --
      Religion is what happens when nature strikes and groupthink goes wrong.
  5. ROI by plopez · · Score: 4, Insightful

    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+
    1. Re:ROI by John+Hasler · · Score: 1

      > BTW, there is OO COBOL out there.

      OO is so twentieth century. Where is the functional COBOL?

      --
      Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
    2. Re:ROI by Darkness404 · · Score: 3, Interesting

      The problem with COBOL is that it isn't flexible. I have heard of many businesses having to rewrite many lines of COBOL in order to do simple things such as payroll changes, etc. Also, COBOL isn't very quick to write, what can be done in 50 lines of COBOL can be done in 30 lines of C, and about 20 lines of Python or Java.

      --
      Taxation is legalized theft, no more, no less.
    3. Re:ROI by hey! · · Score: 5, Insightful

      Well, that's a matter of being in a hurry go get the program out the door. There's lots of parameter input through the compiler going on. Always has been.

      I personally like terse languages, but I think coupling is a bigger issue. Fifty lines of self-contained COBOL are easier to understand than twenty lines of highly coupled Python that depends on assumptions spread far and wide in the system.

      One of the reasons that so many COBOL systems remain is that they were written in a day when most tasks ran top to bottom. It was before the "event loop" became a familiar pattern to most programmers. In a sense, it shows how reusability can shoot you in the foot (there's few worthwhile tools that can't be dangerous some of the time). Back in the day the vast majority of programs had well defined input, performed a well characterized calculation on that input, and produced a well defined output. Now consider something that is a component in a framework. It has to be damn well conceived because it's meant to operate in situations the designer has never even conceived of.

      So, I'll bet that the COBOL that survives is stuff which does something that is clearly defined, simple, and useful. Why convert it to Java if it works fine and is part of a large body of software that works fine?

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    4. Re:ROI by geekoid · · Score: 4, Interesting

      Anecdotal.
      Properly written COBOL is as flexible as anything else.
      Badly written COBOL isn't flexible--just like every other language.

      "COBOL isn't very quick to write, what can be done in 50 lines of COBOL can be done in 30 lines of C, and about 20 lines of Python or Java."
      and 1 line in perl.

      Where do you get your numbers. I can do things in 20 lines of COBOL that would take 100's of lines in C.And it performs faster then those languages. When you are doing millions of financial calculations and hour, you need reliability and rock solid performance.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    5. Re:ROI by Anonymous Coward · · Score: 0

      >. And FORTRAN 95 is OO as well, which I am ramping up to do a project in soon (I hope).

      Well it is Fortran, they lost the caps for Fortran 90. And also Fortran 2008 includes even more OO than any one before it.

      -- Pinski

    6. Re:ROI by gbjbaanb · · Score: 1

      I think the issue there is that companies have to rewrite their legacy COBOL in new languages becuase they cannot find anyone who knows COBOL (or charges too much).

      COBOL is perfect for its specific domain - batch processing business stuff. I think you'll find that some things (like payroll merges) can be done in 4 lines of COBOL that the equivalent Python or Java would take 1000 lines.

      Here's an interesting take on the subject.

      With the emergence of service-oriented architectures, companies are able to more easily reuse their Cobol code, notes Nate Murphy, president of Nate Murphy International, an IT professional services firm.

      The 66-year-old Murphy, who has decades of mainframe and Cobol experience, sees a resurgence in the value of Cobol because of the emergence of SOA and IBM's Language Environment, which provides a common runtime environment for combining many different languages, including Cobol.

      "Now you can extend and add subroutines for other Web-based features that you need," he says. "All of a sudden you've got a valuable asset in these old Cobol programs, and you can extend them and expand their capability without writing new code."

      Hmm, seems we'd be free of COBOL if it wasn't for those pesky IBM kids.

    7. Re:ROI by Perf · · Score: 0, Flamebait

      > BTW, there is OO COBOL out there.

      OO is so twentieth century. Where is the functional COBOL?

      (Functional languages are soooo 1950s.)

    8. Re:ROI by Bill,+Shooter+of+Bul · · Score: 2, Insightful

      That is true ROI is big. So is ROLOI. Return On Lack Of Investment. Believe it or not code rots. It depreciates in value and increases in maintenance costs over time without re factoring. This cost is brought on by a number of factors including labor costs ( as the industry changes its standards resulting in a smaller pool of potential employees),business growth ( if your software is critical to your business it should be improving in features and scalability), and talent retention ( go ahead keep your systems in Delphi 3, see how many applicants come a knocking and how many stick around.).

      Now this doesn't mean you always upgrade to the flavor of the month, but you should look at potential losses as well as potential profits when making a tech decision.

      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
    9. Re:ROI by neuromanc3r · · Score: 1

      Sorry for off-topic, but if you actually need the same number of lines for a task in Python as in Java, you're doing it (Python) wrong.

    10. Re:ROI by Kayamon · · Score: 2, Funny

      ADD 1 TO COBOL GIVING COBOL

      --
      Kayamon
    11. Re:ROI by S.O.B. · · Score: 1

      I think the issue there is that companies have to rewrite their legacy COBOL in new languages becuase they cannot find anyone who knows COBOL (or charges too much).

      I don't think it's because they can't find anyone who knows COBOL. Any developer who is capable of learning C++ or Java is more than capable of learning COBOL. In fact, it's the ease with which someone can learn the language that is one of it's strengths. The problem is that developers who work with newer technologies don't want to learn it because they think they're too cool for COBOL.

      Which leads to the more likely reason is that COBOL developers are too expensive. The reason they're expensive is that there are fewer and fewer COBOL developers as the years go on and the above mentioned "too cool for COBOL" developers. It's a simple case of supply and demand - a shrinking supply and a not so shrinking demand. COBOL developers are not expensive just because they feel like it, COBOL developers are expensive because companies will pay it.

      --
      Some of what I say is fact, some is conjecture, the rest I'm just blowing out my ass...you guess.
    12. Re:ROI by DuckDodgers · · Score: 1

      Speaking as an experienced Java developer and a Python novice, I agree completely.

    13. Re:ROI by lewko · · Score: 3, Funny

      When you are doing millions of financial calculations and [sic] hour, you need reliability and rock solid performance.

      When you are posting to Slashdot however...

      --
      Do you or your partner snore? - Visit www.snoring.com.au
    14. Re:ROI by Emperor+Shaddam+IV · · Score: 1

      Hmmm, C, C++ and Java maybe quicker for a simple and easy program - to do a simple task. But in the business world, the rules are different I think when you have hundreds of programs to deal with and lots of data.

      Change in business systems often involve dozens if not hundreds of programs...

      I've programmed in COBOL, C, C++, and Java - all extensively, and actually I'd have to say that C++ and even Java requires more time and thought than COBOL to code when you do it right and design and code reusable classes, especially on a big project.

      Yeah, the code used in C++ and Java maybe shorter than COBOL in the raw total number of lines.

      But I would argue if the interface of a method of a class has to change and its used by dozens of Java or C++ programs. Then you run into the same issues that you do with changing COBOL code... You have to track down every program using that class and modify it. Or if you add a database field, then you have to change every object that uses that field. Which requires tracking down and changing every program that needs to use that field.

      Also I would argue, editing, compiling, and running COBOL is a piece of cake on the mainframe compared to building C/C++ and Java projects. Edit, submit to compile, bang, your done. Then you just run the program with a JCL job.

      While I've worked on some C/C++ projects that had MAKE files with more code than a COBOL program!, with dozens of macros and 50 or more make targets. And after changes you have to rebuild your dll's or shared libraries and executables and redistribute them. And for Java you have recompile and then either distribute the new classes or a new JAR or WAR file. And sometimes it can take your entire lunch break to rebuild if you changed enough code...

      And add that to the fun you encouter when you have to link in Oracle, RogueWave or CORBA libraries into you executables!

      Or making sure you have all the header files included! And the pathes to those header files setup correctly!

      And add it to the fact you don't have to deal with memory leaks in COBOL, although you can do stupid things in COBOL to cause core dumps ( called ABENDS on the mainframe ) in COBOL. Like trying to move the wrong datatype from one field to another, or dividing by zero - you get the picture...

      So I actually think COBOL is much easier than C, C++ and Java to code in. The only time COBOL starts to get hard I think is when you start calling other COBOL programs from a COBOL program, or the COBOL program is a CICS COBOL program, or you do complex DB2 queries or VSAM file reads in your COBOL program.

      I think the problem actually has more to do with the current lack of COBOL knowledge, lack of resources, and the general lack of documentation with a lot of the older COBOL systems because they were written 10 or more years ago. Heck, sometimes companies even lose the source code!!! So New people coming in have to analyze and figure out what the heck is going on. I think that's what takes the most time...

    15. Re:ROI by Eudial · · Score: 1

      Where do you get your numbers. I can do things in 20 lines of COBOL that would take 100's of lines in C.And it performs faster then those languages. When you are doing millions of financial calculations and hour, you need reliability and rock solid performance.

      Except, in C, you can make order of magnitude millions of financial (or otherwise) calculations a second.

      --
      GAAH! MY PRINTER IS ON FIRE!!! PUT IT OUT! PUT IT OUT!
    16. Re:ROI by Anonymous Coward · · Score: 0

      You shouldn't make fun of him, English isn't his first language.

    17. Re:ROI by Anonymous Coward · · Score: 0

      The problem with COBOL is that it isn't flexible. I have heard of many businesses having to rewrite many lines of COBOL in order to do simple things such as payroll changes, etc. Also, COBOL isn't very quick to write, what can be done in 50 lines of COBOL can be done in 30 lines of C, and about 20 lines of Python or Java.

      In the late 80's I converted an simple address book application from COBOL to C. The different versions didn't use the same data/file formats, they used the data formats most suitable to the language. But they provided the same functionality. I never counted the actual lines, but Cobol was one and a half sheet of paper and C was about 80. I would say that Java would achieve a worse result, especially if you count all the f***ing XML you would have to write.

      And at the time I was much more experienced in C than in Cobol. And I really loathed programming in Cobol (I still do).

      The declarative (as in data (think SQL), not as in functional) parts of the Cobol language is really overlooked. Rivaled only by languages like Lua, JavaScript and Ruby (with the right modules, not as a standard built into the language).

      In the right environment (fixed position, textbased datafiles), it's an outstanding glue language.

      And following a few simple rules, it's nearly impossible to f*ck up your code.

      It's ugly and no fun at all. But thats true about Java and Python too.

    18. Re:ROI by Anonymous Coward · · Score: 0

      Or one hideous line of Perl.

    19. Re:ROI by BrotherBeal · · Score: 1

      Flamebait? Where's your sense of humor, mods?

      --
      I'm disabling ads until because I choose not to reward redesigns that are less usable than "view source".
    20. Re:ROI by HiThere · · Score: 1

      Does C have a BCD datatype? If not, then for financial calculations you are going to need something more complex.

      You can't use floats for financial calculations with money (unless they've changed the rules). You need to use int-s and calculate the values in pennies, and then convert to float dollars for output. Not that this is horrendous, but it does add to the complexity. I remember a co-worker who fought furiously with a rounding problem in a financial calculation. He finally had to resort to a bucket-rounding approach. (He was using Fortran, but the same problem happens with most languages that aren't specialized for financial calculations...don't know how Cobol handles this kind of thing.)

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    21. Re:ROI by Perf · · Score: 1

      Flamebait?
      Functional programming predates OO.
      Lisp is 50 years old -- older than COBOL.

    22. Re:ROI by Anonymous Coward · · Score: 0

      It was said some time ago that a good Cobol programmer only ever writes 3 programs in their life. a) a maintenance program b) a data entry program and c) a report program. Everything else is just a modification of these. A good programmer thus, in any language, needs to write flexibility (aka hooks) into their program. The 20 lines of code written in Python is useless if you have to completely rewrite it every time you have a new app. Cobol is specifically a business app language. It is used when you need to not worry about round off errors, garbage collection, etc and just want to get data from a file, updated it quickly and return the records. Also, as there is another old saying "Any program, once written, is obsolete", so Cobol tends to be written with a few extra lines that are self documenting so that points of change can be easily found later, when (not if) modifications need to be made.

      No one in their right mind would write a game or space shuttle program in Cobol. That is not what it was designed for. It was deigned to be easy to read, even by your supervisor, rather than be easy to write. As a first attempt as an AI language, it was a failure but as a stable commercial language, I always have to tip my hat to the designers.

      A lot of young programmers should take a good look at the old stuff to see why it still runs without bugs and really have a think about what is important to business and ROI.

      Certainly there is a use for cool languages that interface to our "instant gratification" society. But, behind the scenes, there still needs to be a solid core of processing power that does the real work and reports the results to management, etc. There are so many "glue" systems that bring these worlds together, I cannot see where the issues are. There are plenty of good reasons for all languages and the fact that a language has survived for so long is a testament that it has a place and should be accepted thus.

    23. Re:ROI by kraut · · Score: 1

      Well, there's financial calculations and financial calculations. I've been hanging around the finance industry for 1.8362 decades now, and still haven't seen a BCD in the wild.

      That's because I work in the front office with derivatives, and all the calculations are done in doubles. BCD shines in the backoffice and in retail banking where people do worry about every penny of interest - at least in theory ;)

      --
      no taxation without representation!
  6. Still taught in schools by Judinous · · Score: 3, Interesting

    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.

    1. Re:Still taught in schools by plover · · Score: 3, Interesting

      Perhaps you should be grateful that they're teaching you at least one commercially viable language.

      When I was in school, we learned several languages that have only microscopic utility in the business world today, and many that exist now only in moldy documentation and hazy memories. Trust me, SNOBOL and PL/1 are not going to get you in any doors. FORTRAN might get you into a few aerospace industries (the kind where the engineers still wear slide rules on their belts.) Pascal morphed into Delphi, and yes, there are jobs for those people (or so I hear.) LISP may still be big (in the (parenthetical (world)) of AI), but good luck finding that job. And I learned half a dozen assemblers for architectures that have now been out of production for over 20 years. Most of today's commercially valuable languages weren't even invented back then: C++, Java, Smalltalk, or any of the .Net flavors. They didn't even teach us C because it hadn't reached our school yet.

      But they taught us COBOL. What other languages have you had to take that you know will still be in use 30 years from today? :-)

      --
      John
    2. Re:Still taught in schools by techno-vampire · · Score: 3, Funny
      What other languages have you had to take that you know will still be in use 30 years from today?

      English comes to mind, but considering some of the posts I see here, I have my doubts.

      --
      Good, inexpensive web hosting
    3. Re:Still taught in schools by Coder+Blues · · Score: 1

      Good rebuttal, and yes there are still Delphi jobs out there. While Borland tried to resurrect it through Kylix and Delphi.net, it seems it is a dying language.

      --
      Coder Blues http://www.coderblues.com
    4. Re:Still taught in schools by Anonymous Coward · · Score: 0

      I used COBOL for YEARS. I found the BEST use for COBOL... was it's report writer. They didn't teach that to me in school. I had to learn it on the job. However, once I DID learn how to use the report-writer I can't see why they would THINK about teaching you to do stuff the hard way... without it. After about a year of writing reports in using the report-writer I could pop out a new report in like 20/30 minutes. If your teacher DOESN'T have the COBOL report-writer on the Syllabus, ask why.

      And here's any interesting point. Pick up ANY book on SAP ABAP... and tell me it's not COBOL with embedded SQL. The fact that I knew COBOL meant I was able to start coding in ABAP almost immediately. Totally blew away the team that I joined that was supporting SAP.

  7. Wasn't BASIC by stm2 · · Score: 1

    the use of Cobol cripples the mind; its teaching should, therefore, be regarded as a criminal offense

    I thought it was BASIC and not Cobol in that sentence.

    --
    DNA in your Linux: DNALinux
    1. Re:Wasn't BASIC by VGPowerlord · · Score: 4, Informative

      No, I just switched his COBOL quote out for the BASIC one on my whiteboard at work on Monday.

      The BASIC one is

      It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.

      See: Wikiquote

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    2. Re:Wasn't BASIC by acheron12 · · Score: 1

      But wasn't he talking about an unstructured version of BASIC: no loops, case statements, functions with parameters, etc?

      --
      there is no god but truth, and reality is its prophet
    3. Re:Wasn't BASIC by VGPowerlord · · Score: 1

      Well, these quotes were both from 1975...

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    4. Re:Wasn't BASIC by lordholm · · Score: 1

      This is the reason that some universities (like Chalmers in Gothenburg) are using Haskell and assembly (in parallell (well, the assembly has to be encoded in bits by hand, but anyway)) as first languages.

      Although while some might have hacked in assembly before uni, it is very unlikely that they would have written any Haskell, so they are basically telling the CSE students that start... "you don't know nothing yet". I kind of liked the idea, when I started there I was seriously suffering from the perfect programmer syndrome and it did give me some perspective on things.

      So, it is perfectly possible to teach people exposed to BASIC (though I was exposed to C/C++, assembly and Pascal when I started), you just have to shock them enough.

      --
      "Civis Europaeus sum!"
  8. Baby Boomers + COBOL by halsver · · Score: 2, Interesting

    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...
    1. Re:Baby Boomers + COBOL by jwegman · · Score: 1

      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.

      COBOL is not still around because "old Bob" won't get with the times, it's still around because there are untold millions of dollars invested in the code and it would cost many more untold millions to replace it. And for what? If it's working fine, there's no reason to rip it out and replace it. Business is about making money, not wasting money on today's latest fad.

    2. Re:Baby Boomers + COBOL by Anonymous Coward · · Score: 1, Insightful

      The old "sunk cost, cognitive dissonance" argument.

      You might say something "works just fine" but I, e.g., the VP of operations who gets to decide, might say it needs to be improved, that "just fine" is not going to be sufficient for our future.

       

    3. Re:Baby Boomers + COBOL by geekoid · · Score: 1

      COBOL is a 21st century language.
      Cost, reliability, and performance are the factors.

      COBOL will be here in 50 years.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    4. Re:Baby Boomers + COBOL by Ender_Stonebender · · Score: 1

      I think you dropped a zero. COBOL will be here in 500 years. It's like the dinosaurs in Dilbert: Everyone will think it's extinct, but really, it'll just be hiding behind the furniture.

      --
      Loose things are easy to lose. You're getting your hair cut. They're going there to see their aunt.
    5. Re:Baby Boomers + COBOL by atraintocry · · Score: 1

      I think you underestimate how many banks are actually run by immortal (daywalking) vampires.

    6. Re:Baby Boomers + COBOL by plover · · Score: 2, Funny

      I think you underestimate how many banks are actually run by immortal (daywalking) vampires.

      Two less.

      --
      John
    7. Re:Baby Boomers + COBOL by djdavetrouble · · Score: 1

      I think you underestimate how many banks are actually run by immortal (daywalking) vampires.

      Two less.

      I have never "programmed" a "computer" in any "language", but that is damn funny !

      --
      music lover since 1969
    8. Re:Baby Boomers + COBOL by kitgerrits · · Score: 1

      Please tell me that you don't run one of Bob Sharpe's old COBOL programs.
      I had to write shell scripts around it to actually produce something useful.

      --
      "I was in love with a beautiful blonde once, dear. She drove me to drink. It's the one thing I am indebted to her for."
    9. Re:Baby Boomers + COBOL by soliptic · · Score: 1

      Fewer :)

  9. Cobol defeated da Terminator by schwaang · · Score: 5, Informative

    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...

    1. Re:Cobol defeated da Terminator by guyminuslife · · Score: 5, Funny

      FYI: When he was reprogrammed by John Connor, it was in COBOL.

      --
      I don't believe in time. It's a grand conspiracy designed to sell watches.
    2. Re:Cobol defeated da Terminator by electrictroy · · Score: 4, Interesting

      Dear younglings (or oldlings):

      If you want a REAL challenge, forgot cobol. Try programming an Atari 2600 gaming console. You have just 128 bytes of RAM to create a playable video game. (No that was not a typo... 128 bytes.)

      I tried it once.
      I gave up.
      It gave me new respect for the original Atari geniuses who created playable versions of Space Invaders, Missile Command, Cosmic Ark, and Jr. Pacman, and turned a cheap console into the #1 system of its day (1977-to-1984).

      --
      The government is not your daddy. Its purpose is not to raid middle-class neighbors' wallets and give it to you.
    3. Re:Cobol defeated da Terminator by AKAImBatman · · Score: 3, Interesting

      The Atari 2600 isn't that hard. It may be limited, but the 6502 is actually a pretty developer friendly architecture. Modern debuggers like the one in Stella can make the process pretty straightforward. (Though I would never dispute the challenges posed by cycle counting in an effort to get better graphics out of the system!)

      If you want a real challenge, try programming the IBM PC in assembler sometime. As in the original systems from the early 80's. It won't take you long to start swearing at the stupid memory segments with their stupid memory models all focused on stupid interrupt calls that are stupidly undocumented! GAH! To add insult to injury, try 80286 protected mode. (Hint: It never actually worked.) For even more fun, try dealing with EMS and XMS memory using a DOS compiler. Yay! How fun! How wonderful! How challenging! And not in a good way!

      Stupid PC. It's amazing that we let it become the dominant platform. (Though in the defense of us geeks, a modern PC does look a LOT different than those beasts of yore.)

    4. Re:Cobol defeated da Terminator by mikael · · Score: 1

      There may have only been 128 bytes of RAM, but the game itself was stored in ROM. The RAM was used to store temporary variables (player scores, player positions, player state, game level, game mode). It would take more than 128 bytes to write something like the sprite tank battle game in the Combat cartridge. You would need 64 bytes to store the bitmaps for each tank orientation (8 directions x 8x8 bit sprite = 64 bytes).

      The most amazing cartridge was Atari 800 Basic which attempted to implement the Basic programming language on a console system. You only had 128 bytes to write a program in (keywords were tokenised). At most that gave you 20 lines to program in and graphics simply consisted of a red square and a white square. With some keywords to read the keypad, you could do a simple game like "dodge the white square".

      --
      Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
    5. Re:Cobol defeated da Terminator by dogboi · · Score: 1

      Arrr, if PCs rule the sea, I say we be raiding their coffers!

    6. Re:Cobol defeated da Terminator by AKAImBatman · · Score: 2, Interesting

      The most amazing cartridge was Atari 800 Basic

      I believe mikael intends to refer to Atari 2600 BASIC. It was limited to 9 characters per line and that only worked because it flickered like mad. Crazy, crazy idea. The 2600 simply didn't have enough hardware to generate a text display, even if we assume that cartridges could use superchips for an extra 128 bytes of memory. 2 sprites per scanline just isn't much to work with.

      The Atari 800 was a much more sophisticated piece of hardware with support for many more sprites, tillable backgrounds, and a full text display. (Most programmers don't think about it these days, but there is no real-world difference between rendering text and rendering background tiles in a game. That's why backgrounds showed up in video games. Because they needed text displays!)

    7. Re:Cobol defeated da Terminator by Ethanol-fueled · · Score: 1

      Another little-known fun fact is that Robocop sees assembly language and DOS commmands.

      For real. Unfortunately, I couldn't find any links :(

    8. Re:Cobol defeated da Terminator by Anonymous Coward · · Score: 0

      The most amazing cartridge was Atari 800 Basic

      I think you mean Atari 2600 Basic - the Basic cartridge for the Atari 800 was way more functional, you had almost 64K of RAM to work with.

    9. Re:Cobol defeated da Terminator by mikeabbott420 · · Score: 1

      Atari sprites were implemented by displaying the contents of a section of memory as a bit map in a column down the screen. you moved the sprite horizontally by writing to an 8 bit register ( many memory mapped i.o. addresses - which cost a lot of the 64K ). vertically was accomplished by actually changing the contents of the memory - rotating the non-zero and eraser edge part of the column of memory. everything ran off the TV vertical blank interrupt to rewrite the screen while it wasn't being drawn. there was a horizontal interrupt as well but only a very few cycles available when every op took multiple ticks. there was a collision detection register set as well to tell what had bumped into what. I had no idea what I was doing , ( some Byte magazine De Re Atari by chris ??? ) but I had a lot of fun.

      --
      This program was made possible by a grant from the Ultra-Humanite, and viewers like you.
    10. Re:Cobol defeated da Terminator by mikael · · Score: 1

      Yes, that's the one - I still remember the day I went into town with my parents to buy the cartridge and reading the manuals while taking the bus home. There were labels that were placed on top of the keypads to show which button did which. Like a ZX Spectrum, each key had at least three different color coded functions.

      The Atari 800 was definitely much nicer - plus the two bonus secret graphics modes which supported four color characters although these were only 4x8 pixels in size.

      --
      Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
    11. Re:Cobol defeated da Terminator by Bill_the_Engineer · · Score: 1

      We (well at least my generation) didn't see the low memory or EMS or XMS as much of a handicap. Hell we saw it as an improvement!

      I think its amusing that youngsters today can't grasp having to do something useful with such antiquated equipment...

      --
      These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
    12. Re:Cobol defeated da Terminator by AKAImBatman · · Score: 3, Interesting

      It was an improvement as our programs became more memory strapped. That didn't mean that they weren't a bear to program. Heck, they were a bear to use! No one remembers it anymore, but we used to have to create boot disks for nearly every game just to get all the necessary drivers loaded while simultaneously leaving enough low-mem to run the program. It actually got to the point where I was putting a boot disk in the box of each game I purchased.

      DOS Extenders did eventually get good enough to where the game effectively loaded its own Operating System. After that, you didn't care how much low memory there was. But man, was getting there ever a pain!

    13. Re:Cobol defeated da Terminator by rubycodez · · Score: 1

      right, the game cartridge had 4kb of rom, and later ones had multiple 4kb blocks, up to 8x4kb = 32bk with bank switching.

    14. Re:Cobol defeated da Terminator by Actually,+I+do+RTFA · · Score: 2, Informative

      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.

      Correction, Gov. Schwarzeneggar wanted to partially defer pay to California state workers, and pay them in the next quarter. That's what was impossible. And yes, that seems like it would be a lot of work, even if the language wasn't an issue, with the possibility of breaking quite high.

      --
      Your ad here. Ask me how!
    15. Re:Cobol defeated da Terminator by red_dragon · · Score: 5, Informative

      000100 IDENTIFICATION DIVISION.
      000200 PROGRAM-ID.     KILL-SARAH-CONNOR.
      000300
      000400*
      000500 ENVIRONMENT DIVISION.
      000600 CONFIGURATION SECTION.
      000700 SOURCE-COMPUTER. SKYNET.
      000800 OBJECT-COMPUTER. T-800.
      000900
      001000 DATA DIVISION.
      001100 FILE SECTION.
      001200
      100000 PROCEDURE DIVISION.
      100100
      100200 MAIN-LOGIC SECTION.
      100300 BEGIN.
      100400     PERFORM UNTIL SarahConnorIsDead.
      100500         FIND SARAH CONNOR.
      100600         SHOOT SARAH CONNOR.
      100700     END-PERFORM.
      100800 MAIN-LOGIC-EXIT.
      100900     EXIT.

      --
      In Soviet Russia, Jesus asks: "What Would You Do?"
    16. Re:Cobol defeated da Terminator by mikael · · Score: 1

      The 6502 CPU was actually clocked at the same rate as the pixels in the framebuffer were written out to the TV/monitor. All of this was documented by Chris Crawford and many others who wrote De Re Atari

      There were four sprites you could program - each had its own band of memory (we would call them cursor overlay planes these days). Each byte described a single scan line. Control registers defined the horizontal position and amount of stretching (power of two) of the band. You had to write some assembly language routines to shuffle these bands up or down. If you wrote a horizontal-blank interrupt you could have multiple moving sprites, each at a different position per row. These were the player in player-missile graphics. There was a fifth band which were the missiles (the ping-pong ball in video-pong and video-olympics). Each pair of bits in a byte defined the location of the missile associated with each player. Collisions between players and missiles were detected by reading various collision registers.

      It was great fun programming, but the hardware was capable of so much more than what was possible with the Basic compiler that you really needed the assembler cartridge. Otherwise you had spend your time writing assembly language using numbers rather than mnemonics. It was interesting to see that there were assembler routines to handle the floating point arithmetic, while other assembler routines handled the rendering of trapezoids - through an XIO command. Other Basic interpreters (the Dragon 32) had assembler routines for matrix/array calculations. If they had put all that together, where would the 3D industry have been now?

      --
      Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
    17. Re:Cobol defeated da Terminator by Anonymous Coward · · Score: 0, Flamebait

      Wow, you think 6502 assembly is hard? I hope you didn't go into programming (until it was a moron's language, like Java).

    18. Re:Cobol defeated da Terminator by seaturnip · · Score: 1

      You would need 64 bytes to store the bitmaps for each tank orientation (8 directions x 8x8 bit sprite = 64 bytes).

      Especially given the line-by-line vsync-aligned drawing of the 2600 doesn't especially encourage bitmap storage, I suspect it may have been more efficient than that. Since you need a hand-written assembly routine to draw the tank anyway, it may as well have run-length compression and mirroring.

    19. Re:Cobol defeated da Terminator by DerekLyons · · Score: 1

      If you want a REAL challenge, forgot cobol. Try programming an Atari 2600 gaming console. You have just 128 bytes of RAM to create a playable video game. (No that was not a typo... 128 bytes.)

      I tried it once.
      I gave up.
      It gave me new respect for the original Atari geniuses who created playable versions of Space Invaders, Missile Command, Cosmic Ark, and Jr. Pacman, and turned a cheap console into the #1 system of its day (1977-to-1984).

      That sure sounds impressive.
       
      But when you tell the whole story... not so much.
       
      They had 128 bytes for the runtime stack - I.E. variables. They had 4(or 8 depending on the version)Kbytes of ROM to hold the actual game.

    20. Re:Cobol defeated da Terminator by MBGMorden · · Score: 1

      Since we're talking about what they "see" (I assume you mean on the "HUD"), I was watching Terminator (the original movie) last week and when looking at Arnold's "screen" it looked like a form of assembly language was popping up on there. Everything looked like pretty low level instructions.

      --
      "People who think they know everything are very annoying to those of us who do."-Mark Twain
    21. Re:Cobol defeated da Terminator by Anonymous Coward · · Score: 0

      If you watch the original Terminator movie when he's in the hotel room cutting out his eye (this scene's been cut from a few versions due to foul language), the view from within his skull clearly shows 6502 assembler down one side.

      No wonder they were so easy to defeat.

    22. Re:Cobol defeated da Terminator by AKAImBatman · · Score: 4, Informative

      The 2600 only has TWO sprites. The missiles and the ball are 1-bit graphics and thus aren't really counted as "sprites". So there are 5 movable objects. Then there's the playfield. The playfield plots rather long lines (4 pixels per bit IIRC?) at fixed locations. Of course, there wasn't enough memory to store an extra 20 bits to fill the screen. That would be too easy. Instead, the [i]same bits[/i] were reused to draw the second half of the scanline. You could have the playfield repeat or you could have it mirror the bits. But if you wanted to actually have a full-width playfield, you had to "race the beam".

      And by "race the beam" I mean that you would time the processor cycles just right so that you would replace the bits in the registers immediately after they were written to the screen. Since you were working with only 2 1/2 bytes, and you could only write a full byte, that became somewhat challenging. Especially since the 6507 CPU was clocked at 1/3 the speed of the TIA chip. For every three pixels plotted, you'd get one CPU cycle. To add insult to injury, even the shortest instruction still used 2 CPU cycles. And God help you if you crossed a page boundary while reading or writing memory. The extra cycle you incurred would be enough to throw off the entire program and cause nothing but garbage to get written to the screen!

      Making things even more difficult was the way you moved sprites around. There was no way to say "show this sprite at location X". Instead, you had to use one scanline to mark the approximate pixel location of the sprite (remember, 3 cycles per CPU clock), then use the location counter function to advance the position forward or retard it backward by a few pixels. And by a few, I mean 0-3.

      As a result, you had to become a master at timing everything. You counted the cycles, you watched the memory locations, and you figured out how to beat the machine at its own game. Which (oddly enough) is more or less how the system was designed to be used. By the end of the 2600's lifetime, developers had pulled incredible graphics out of the system. Some were done with the assistance of special cart hardware, but most of it was simply the ingenuity of the developers.

    23. Re:Cobol defeated da Terminator by Xiaran · · Score: 1

      Its been a while since I've watched the first terminator but if I recall correctly I think they were 6502 instructions.

    24. Re:Cobol defeated da Terminator by Hal_Porter · · Score: 3, Informative

      Yup, maybe me laugh when I saw it because I was writing 6502 assembly at the time

      http://en.wikipedia.org/wiki/MOS_Technology_6502#6502_in_popular_culture
      In the science fiction movie The Terminator (1984), starring Arnold Schwarzenegger, the audience at one point is treated to a view through the T-800 Model-101 robot character's eye/camera display with some 6502 assembly/machine code program fragments scrolling down the screen. The program was listing the Apple ][ Disk Operating System (DOS) 3.3 disassembled program listing. Also shown is the output from a run of an Apple ][ checksum program called KEY PERFECT 4.0, published in Nibble magazine.

      --
      echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
    25. Re:Cobol defeated da Terminator by kitgerrits · · Score: 2, Interesting

      By the time of DOS 6, I found a different solution:
      I set up a config.sys menu that set up the system the way I wanted it to run.
      It had generic entries (XMS, EMS, Clean) and game-specific entries.
      (It even had sub-menus and entries to go back to the main menu)

      You could even pick up the current Config.sys mode in your autoexec.bat and automatically start a game!

      --
      "I was in love with a beautiful blonde once, dear. She drove me to drink. It's the one thing I am indebted to her for."
    26. Re:Cobol defeated da Terminator by geektastic · · Score: 1

      That is seriously scary -- I learned Cobol in high school in the early 80's and I could have written the same code. Why, oh why didn't that knowledge leave my head, like modern history and gerunds and geometry???

    27. Re:Cobol defeated da Terminator by Bill,+Shooter+of+Bul · · Score: 1

      Your a telling me. I helped port the jpeg library and flash 3 to DOS. Borland's c compiler wasn't that bad for dealing with memory with the huge modifier that abstracted most of the details. Comparatively, Pascal sucked. All sorts of 64k limitations, some with bizarre mind boggling work around ( ie overlays). Not the best platform for searching for new prime numbers ( as I tried at one time).

      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
    28. Re:Cobol defeated da Terminator by TheLink · · Score: 1

      128 bytes of RAM and up to 4K of ROM (without tricks like bank switching).

      4K of ROM isn't that cramped if you're doing 6507 stuff.

      --
    29. Re:Cobol defeated da Terminator by Anonymous Coward · · Score: 0

      OK, you only had 128 bytes of RAM, but your game logic was present in ROM, on the cartridge, where you had 4 Kb.

      You make it sound like the whole game had to fit in 128 bytes (emphasizing the fact that it's not a typo).

      4 Kb to create a playable video game, 128 bytes to maintain the game state. Hardly what you were talking about.

    30. Re:Cobol defeated da Terminator by MoeDrippins · · Score: 1

      I might be misreading here*, but from what I read the carts had 128 bytes of RAM, but the ROMs could have somewhere on the order of 4KB, up to around 35KB with paging/bank switching.

      So... yeah, the game had 128 bytes to store stuff once running, but the game CODE itself could be quite a bit bigger, and then burned to ROM.

      Or not? I really don't know.

      * http://library.thinkquest.org/06aug/01856/pastAtari.htm

      --
      Before you design for reuse, make sure to design it for use.
    31. Re:Cobol defeated da Terminator by turgid · · Score: 1

      Sad. I used to watch Knight Rider and wonder whether KITT was 16- or 32-bit and if that sort of thing could be done in 16MB or RAM. Was it a 286 or a 68000? Or even a Z800? Could it have been a Transputer?

      6502 must have been a joke since it was about the cheapest, simplest thing that was worthy of being called a computer.

    32. Re:Cobol defeated da Terminator by Anonymous Coward · · Score: 0

      128 bytes of workspace -- mind you, the actual game would be in ROM. An average game would be 4-8K of ROM, which, although still quite an achievement, isn't that bad.

    33. Re:Cobol defeated da Terminator by DaVince21 · · Score: 1

      Wait, the scene was cut because of foul language, not the fact that he was cutting his freaking eye out? o_O

      --
      I am not devoid of humor.
    34. Re:Cobol defeated da Terminator by gawdonblue · · Score: 1

      100400 PERFORM UNTIL SarahConnorIsDead.
      100500 FIND SARAH CONNOR.
      100600 SHOOT SARAH CONNOR.
      100700 END-PERFORM.

      This bit won't compile - too many terminators.

    35. Re:Cobol defeated da Terminator by Anonymous Coward · · Score: 0

      Won't compile, dude. You didn't define the variables SarahConnorIsDead and SARAH CONNOR.

      With best regards,

      From an old grey beard COBOL programmer.

    36. Re:Cobol defeated da Terminator by mattwarden · · Score: 1

      (Here are some lower case characters to get around the stupid lameness filter...)

      ERROR. FOLLOWING CHARACTERS NOT RECOGNIZED: arah onnor s ead

    37. Re:Cobol defeated da Terminator by tqft · · Score: 1

      I think this is the link i am looking for (can't get there from work)
      http://www.bluishcoder.co.nz/2008/09/javascript-space-invaders-emulator.html
      the stuff referenced is about emulating assembler with js

      --
      The Singularity is closer than you think
      Quant
    38. Re:Cobol defeated da Terminator by Vellmont · · Score: 1


      (No that was not a typo... 128 bytes.)

      While this is true, you also have to remember the 2600 had at least 4k of ROM, more if you did bank switching.

      --
      AccountKiller
    39. Re:Cobol defeated da Terminator by Fujisawa+Sensei · · Score: 1

      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...

      Do you think any of the state employeed developers actually want to write code to reduce themselves to minimum wage?

      --
      If someone is passing you on the right, you are an asshole for driving in the wrong lane.
  10. No way by OpenSourced · · Score: 5, Insightful

    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.
    1. Re:No way by plover · · Score: 1

      So COBOL is outdated and verbose. True. So what.

      The only problem I have with that statement is that a co-worker came to me today with a bug in a COBOL routine. Now, I honestly have not written a line of COBOL in 25 years, but I do know how to read it. So I looked, and saw that there were multiple return codes being kept in a variable, that an IF statement was reusing that variable within its conditional, and the following IF statement was expecting the original value to still be in there. I was absolutely astounded. I had long ago forgotten that some languages did not have the concept of "scope" or "local variables". I had assumed that every language had solved this problem 15 years ago.

      Yet there it was, larger than life. A bug that a developer would have had to go out of their way to create in a modern language, one based on one of the founding principles of OO (encapsulation.) I tried to explain the concept of local variables to this guy, and he said "oh, sure we have those. We put those in the WORKING-STORAGE SECTION."

      So no, COBOL itself still leads old programmers into mistakes that modern languages cure. That's the problem I have with it.

      --
      John
    2. Re:No way by vacuum_tuber · · Score: 1

      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 have written two mainframe Web servers. The first was a proof of concept and was written in COBOL. Yes, COBOL parsed the HTTP headers received from the browser and formatted the response, stringing together header fields then the HTTP body, including sending binary graphics.

      So much for COBOL only being able to handle simple processing of fixed-field records.

      --
      Look at the bright side: there's always seppuku.
    3. Re:No way by vishbar · · Score: 1

      So?

      Sure, COBOL can do that, but it's like creating a skyscraper using solely Medieval techniques. You might be able to do it, but that doesn't mean it's a good idea.

      --
      Ride the skies
    4. Re:No way by vacuum_tuber · · Score: 1

      It was actually surprisingly easy. Was it my first choice? No. Well, that's not quite accurate. COBOL was my first choice for one reason: other than Assembler, COBOL is the most efficient language for the type of mainframe that the Wang VS is. Most COBOL statements compile to one or two machine instructions on that type of machine. I ultimately wrote the full-blown Web server in another language but only because the Wang VS TCP/IP API was giving me some grief and I was more comfortable dealing with that in another language. Ultimately the TCP/IP stack was the weak link, an awful port of someone else's stack that had been done by outsiders unfamiliar with the VS and its OS environment. TCP/IP was limited to a total of 256 connections and active connections couldn't be handed off to other processes. Still, it found use and was successfully employed by some VS sites. Wang released it as open source because they didn't want to support it... probably the only thing Wang ever released as open source in their entire history.

      --
      Look at the bright side: there's always seppuku.
  11. GOODBYE WORLD by Tumbleweed · · Score: 5, Funny

    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.

    1. Re:GOODBYE WORLD by hax4bux · · Score: 1

      *sigh* thats the stuff

      Hey, loan me one of your job cards. The keypunch machine ate mine.

    2. Re:GOODBYE WORLD by Quiet_Desperation · · Score: 2, Funny

      Ack! You gave me major flashbacks to the old Cyber systems I used in college. *And* made me feel old. Bastard!

    3. Re:GOODBYE WORLD by Tumbleweed · · Score: 1

      Hey, loan me one of your job cards. The keypunch machine ate mine.

      cookie.

    4. Re:GOODBYE WORLD by morgan_greywolf · · Score: 3, Funny

      Ack! Get that away! It might be contagious!

    5. Re:GOODBYE WORLD by ivandavidoff · · Score: 1

      Oh, my. Good old RM/COBOL. MACOLA got its start with an RM/COBOL rewrite of MCBA's accounting package, which was written in TI-COBOL. I got source code for 4 modules (A/R, G/L, I/M and SOP) and rewrote them from top to bottom to comply with some byzantine business rules. The damn thing screamed on an IBM PC-AT, and was viable all the way into the mid-90s, when management decided they wanted something that would work with a mouse.

    6. Re:GOODBYE WORLD by geekoid · · Score: 2, Informative

      000010 IDENTIFICATION DIVISION.
      000020 PROGRAM-ID. HELLO-WORLD-PROG.
      000030 AUTHOR. TIMOTHY R P BROWN.
      000040*The standard Hello world program
      000050
      000060 ENVIRONMENT DIVISION.
      000070
      000080 DATA DIVISION.
      000090 WORKING-STORAGE SECTION.
      000100 01 TEXT-OUT PIC X(12) VALUE 'Hello World!'.
      000110
      000120 PROCEDURE DIVISION.
      000130 MAIN-PARAGRAPH.
      000140 DISPLAY TEXT-OUT
      000150 STOP RUN.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    7. Re:GOODBYE WORLD by Tumbleweed · · Score: 2, Funny

      000150 STOP RUN.

      Well, which is it, STOP or RUN? I guess we've identified where Apple got the 'drag disc to trashcan to eject' and where Microsoft got 'Click the Start button to shutdown' mindset from.

    8. Re:GOODBYE WORLD by Perf · · Score: 1

      Did the replacement software work any better?

    9. Re:GOODBYE WORLD by Anonymous Coward · · Score: 0

      Well, which is it, STOP or RUN?

      Simple answer: YES.

      More complicated answer. The programming is presumed to be running. At the end, you want it to STOP [this] RUN.

  12. Why, what trendy buzzwords you have. by extrasolar · · Score: 3, Funny

    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".

    1. Re:Why, what trendy buzzwords you have. by Sloppy · · Score: 3, Funny

      With Cogs you can keep up with many of the latest buzzwords.

      --
      As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
    2. Re:Why, what trendy buzzwords you have. by Anonymous Coward · · Score: 1, Interesting

      I am of the opinion that sinister-sounding acronyms like COBOL are a lot cooler than all the cutesy names we have today. "Java"? Ugh.

    3. Re:Why, what trendy buzzwords you have. by extrasolar · · Score: 1

      Hahah, thanks. That site is delicious. I especially liked the screen burn effect :)

    4. Re:Why, what trendy buzzwords you have. by ChrisMaple · · Score: 1

      Are you wading the waters to determine how palletable COBOL would be in your buzzword soup?

      It's hard to follow a mixed metaphor when the mispelling is so bad that it becomes another word.

      pallet:

      • a pawl
      • a paddle
      • a tool for picking up gold leaf
      • a painter's palette
      • a (straw) mattress
      • a blanket laid on the floor for use as a bed
      • a small low platform for moving or storing goods
      • a printer's typeholder
      • a potter's shaping tool
      --
      Contribute to civilization: ari.aynrand.org/donate
    5. Re:Why, what trendy buzzwords you have. by Anonymous Coward · · Score: 0

      cobol on cogs is the only framework i will use

      http://www.coboloncogs.org/INDEX.HTM

  13. Next thing you know.. by mr_stinky_britches · · Score: 2, Funny

    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.
    1. Re:Next thing you know.. by Anonymous Coward · · Score: 0

      Don't be stupid. Fortran was/is a useful, professional language.

  14. job market by sstory · · Score: 2

    What do COBOL coders make these days? Is it worth learning?

    1. Re:job market by FatMacDaddy · · Score: 3, Interesting
      You've directly addressed why I think this article is bogus. I know a boatload of former COBOL programmers who would jump at a COBOL job offer. Too bad there aren't any. Most of those guys are either working in java or else have left programming entirely (to go to management or completely different fields).

      Maybe you shouldn't count COBOL out in terms of it still being used in the business world, but I sure wouldn't base any career decisions around it.

      --
      This space intentionally left blank.
    2. Re:job market by PPH · · Score: 5, Funny

      What do COBOL coders make these days?

      COBOL programs.

      <rimshot/>

      --
      Have gnu, will travel.
    3. Re:job market by Darkness404 · · Score: 1

      In my experience, COBOL coders mostly work on old COBOL programs. Very few new things get written for it. Old bugs get ironed out and new ones get added in. And the answer to your question is probably no. I don't see COBOL going anywhere in the next few years and I see it becoming less and less of a solution as old programs eventually get written in C, Python, Java, etc.

      --
      Taxation is legalized theft, no more, no less.
    4. Re:job market by Tablizer · · Score: 1

      I don't see COBOL going anywhere in the next few years and I see it becoming less and less of a solution as old programs eventually get written in C, Python, Java, etc.

      And somehow I bet COBOL will outlast all of those.
         

    5. Re:job market by Darkness404 · · Score: 1

      I'm sure that's true. On the other hand though, I can not see COBOL's marketshare growing at all. Basically all it is used for now is to fix old programs. C is becoming more like a '90s fad, and I think that Python and Java will be remembered for being a 2000s fad, but I just can't see COBOL actually going anywhere. COBOL isn't dead yet, but it certainly isn't living a healthy life. Chances are, in the year 2030 there will be some business still running COBOL, however (hopefully!) most other businesses will be using more modern languages such as C, Python, Java or even some language that today is obscure or not even invented yet.

      --
      Taxation is legalized theft, no more, no less.
    6. Re:job market by geekoid · · Score: 1

      We are looking, and are people get offers.
      I know people making 100 Plus an hour and have been for years.

      Maybe those programmers should get out of the boat and work at getting a job~
      Of course, the area they are in may not need any right now.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    7. Re:job market by gbjbaanb · · Score: 1

      Not that much, but this is a UK-specific survey. Still, seems there's a steady progress upwards.

    8. Re:job market by boxxertrumps · · Score: 1

      They don't get paid anything, they've all retired.

    9. Re:job market by Plaid+Phantom · · Score: 1

      COBOL was a '60s fad.

      --
      All comments are properties and trademarks of the voices in my head. Not like I'm gonna claim them.
    10. Re:job market by Anonymous Coward · · Score: 0

      Maybe you shouldn't count COBOL out in terms of it still being used in the business world, but I sure wouldn't base any career decisions around it.

      FWIW, your credit score is calculated using COBOL programs. And the last time I looked (a very few years back), it was still being updated daily as government regulations changed -- i.e. outlawing the use of certain factors as the basis of credit scoring.

    11. Re:job market by Anonymous Coward · · Score: 0

      It's dead. I work for a software company that sells basically the same type of application but in three different versions - "legacy", "client/server", and "web-service". Yeah, I know....

      Anyways, our tech support department is chock-full of former COBOL programmers who simply couldn't find a job programming in COBOL anymore and are now doing lowly phone support (almost all functionality - not actually supporting code at all - they're not allowed to even look at the code...the code is reserved for the two 70-something year old slackers that have been on staff since back in the days when the COBOL-based app accounted for 100% of the sales). It's pathetic and sad to walk past their cube aisles and seeing a guy in his 50's or 60's with phone headsets on doing a job designed for kids right out of a certification school or ITT Tech or something like that.

      There isn't any real job market for COBOL unless you want the insecurity of a temp/consulting work.

    12. Re:job market by Anonymous Coward · · Score: 0

      I make $100k a year as a COBOL software designer, and i've only been coding COBOL for 2 years. (and expect a 25%-35% raise over the next 2 years)

      Granted, i got lucky and landed in exactly a "XML/metadata, Web Services, Service Oriented Architecture -- and e-business." Project, which i learned from, and am now the lead developer in the company for that architecture. And since web enabling is a company strategic goal, that is a nice role.

      For those saying that there are no COBOL jobs to be had, i dont know what part of the world you live in, but in Northern Europe, we cant get the cobol programmers we need, so we recruit university graduates, and teach them COBOL. Last year we had to bring in programmers from as far away as Australia to get a big project finished on time. There were no COBOL programmers for hire in Europe.

      COBOL's strengths can be summed up to:
      "The devil you know": software that moves billions around, which has been realworld tested for years, imagine the risk of a rewrite in a new language... the new bugs introduced, could alone easily bankrupt several big companies.

      Performance: Its simple, COBOL is the fastest language for processing 1 million transactions. (calculating fees, currency conversion, billing etc.)

    13. Re:job market by Anonymous Coward · · Score: 0

      COBOL was a '60s fad.

      You are an aught-8 fad. You, too, will pass, and COBOL will still be here.

    14. Re:job market by Anonymous Coward · · Score: 0

      Well... you didn't do YOUR homework very well did you?

      I just plugged 'COBOL' into monster.com and it came back with 525 entries. Even if you assume that 1/2 of those are repeats, that still leaves 262. Granted... it's nothing compared to the 5000 (2500) listed for Java, but still it's not like there are NO COBOL jobs.

    15. Re:job market by Anonymous Coward · · Score: 0

      I was a COBOL developer did that for three years. Now I am working as a QA Tester.

      I was looking a COBOL job but found that no one is looking for my experience. For example on reed.co.uk I only got one job returned with COBOL in the keyword search across London.

      But I still think I should do a course in COBOL just in case. You never know when all those COBOL jobs will come into the job market. What a joke! COBOL is dead in the job market and always will be.

    16. Re:job market by Anonymous Coward · · Score: 0

      I don't think its worth the time. There is no demand for the job based on the jobs that cite the term COBOL.

      I did this http://www.reed.co.uk/job/searchresults.aspx?k=cobol&jto=false&s=&l=london&lp=&ms=From&mxs=To&st=5&ns=true&da=168

      and only got one result back. And the job is not a developer job its for a tester role.

  15. Why is Cobol hated? by Compuser · · Score: 1

    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"?

    1. Re:Why is Cobol hated? by nawcom · · Score: 5, Informative

      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

    2. Re:Why is Cobol hated? by Darkness404 · · Score: 2, Interesting

      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.
    3. Re:Why is Cobol hated? by Darkness404 · · Score: 1

      And don't forget about the more modern Python version which is shorter than both the C and COBOL versions. http://99-bottles-of-beer.net/language-python-808.html

      --
      Taxation is legalized theft, no more, no less.
    4. Re:Why is Cobol hated? by PRMan · · Score: 2, Insightful

      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...
    5. Re:Why is Cobol hated? by bangwhistle · · Score: 3, Funny

      COBOL may be the best "self-documenting" language. Which I guess isn't very relevant as we know developers love to document their code.

    6. Re:Why is Cobol hated? by WebManWalking · · Score: 1
      C:

      total = 0;
      for (i = 0; i total += NumberOfDays[i];

      COBOL:

      MOVE 0 TO Total.
      PERFORM VARYING i FROM 1 BY 1 UNTIL i > 12

      ADD NumberOfDays(i) TO Total
      END-PERFORM.

      This illustrates that C arrays are 0-based and COBOL arrays are 1-based.

      It also illustrates that COBOL, while wordier, is self-documenting, at least in the sense that a non-programmer can pick it up and read it.

      However wordy the language is, the generated code from COBOL is generally quite good. I have code in 5 different assembly languages, so I'm not scared to look at generated code. I've seen some amazing code optimizations in COBOL. For example, in bulk moves of memory to memory, I've seen registers used cleverly to save only 2 instruction cycles, with no loss of compactness. I attribute this to the fact that benchmarks are used to win procurements, so mainframe manufacturers want to be sure their generated code runs faster than their rivals' generated code.

      That said, COBOL was developed at a time when computer memory was insanely expensive. Programs had to fit into very tiny address spaces. Much of the restrictions of the language, particularly buffered I/O, existed because you couldn't fit much of a file into memory as the program read through it.

      As for why it's hated, the less you know about something, the easier it is to criticize. I'm sure most of the haters in this thread don't know how to read assembly language, let alone how to write it. So if they hear someone say "COBOL generates inefficient code", they believe it and repeat it. They have no way to confirm or deny the assertion.

    7. Re:Why is Cobol hated? by WebManWalking · · Score: 1

      ... er, I should have said, I have CODED ....

    8. Re:Why is Cobol hated? by ze_jua · · Score: 1

      It's difficult to write a such example : A "hello world!" programm in Cobol is about 20 lines long (only 5 lines with Cobol85).

      C is a low level language. You can work with memory, system cals, do recursive functions, etc. With C you can write 3D graphics, a cobol compiler :), Doom, the linux kernel (If you know asm to), and everything.

      Cobol is a high level langage, mainly oriented to string and files/data manipulations. It can't do many more, but what is done with it is rock.

    9. Re:Why is Cobol hated? by WebManWalking · · Score: 1

      ... and my 'for' statement got corrupted by the less-than. To save you from having to do a View Source, it said:

      for (i = 0; i < 12; i++)

    10. Re:Why is Cobol hated? by geekoid · · Score: 2, Insightful

      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 /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    11. Re:Why is Cobol hated? by Anonymous Coward · · Score: 0

      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.

      Not being a psychologist (nor a neurosurgeon either), but having been both a COBOL and C programmer, I can tell you that you're out of your fucking skull.

    12. Re:Why is Cobol hated? by Anonymous Coward · · Score: 0

      http://99-bottles-of-beer.net/language-fortran-267.html

      Maybe we need to switch to fortran...it seems much more efficient when getting beer.

    13. Re:Why is Cobol hated? by jejones · · Score: 1

      People have already pointed at the 99 bottles of beer, so I'll give some more generic reasons:

      verbosity: COBOL is at the opposite end from APL; both extremes are bad.

      a major subset of Basic English as reserved words: back when I took COBOL, we joked about sticking XYZ at the start of every identifier to avoid colliding with a reserved word. Nobody laughed very loud.

      Much of my attitude is admittedly formed by the language as it was when I was an undergraduate, which would be about thirty years ago. No recursion, no heap, no local variables, and the mimicking of English made it just as hard to see what THEN and ELSE clauses included as it is in English prose, or what the range of a loop was.

      The ritual among student assistants at the university I went to was the COBOL card deck burning party. Alas, I didn't attend one after my semester's exposure to the language.

    14. Re:Why is Cobol hated? by johannesg · · Score: 1

      You got it all wrong: people hate COBOL because it is inefficient to _write_. There are just way too many characters and headers and declarations and whatever in even your short COBOL example.

      As for the assembly it generates, do you see anyone giving a f'ck these days? The kids are all perl this, python that - no assembly in sight anywhere. The only thing they know that looks a little bit like assembly is Java bytecode!

      As for your argument that non-programmers can read COBOL... Honestly, when was the last time you had a non-programmer trying to read through a program? And understand it? My guess would be "never" and "not in their life". Because they don't care; they just want it to work and that's why they pay you.

    15. Re:Why is Cobol hated? by Hognoxious · · Score: 1

      No recursion, no heap, no local variables

      I've only worked on the old versions, probably the same as you, but I'm told that newer versions don't have all those limitations.

      On the other hand, it's unlikely that programs originally written on the old version have been refactored significantly, so if you're maintaining old code chances are it's written the old way.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    16. Re:Why is Cobol hated? by kitgerrits · · Score: 1

      *brain melts

      I wish I could un-see that

      --
      "I was in love with a beautiful blonde once, dear. She drove me to drink. It's the one thing I am indebted to her for."
    17. Re:Why is Cobol hated? by kitgerrits · · Score: 1

      I thought COBOL was meant to be readable by finance execs?
      I know a bit about programming and this is more confusing than some Perl scripts I know!

      --
      "I was in love with a beautiful blonde once, dear. She drove me to drink. It's the one thing I am indebted to her for."
    18. Re:Why is Cobol hated? by kitgerrits · · Score: 1

      Actually, I had my dad help me debug my Pascal programs and he's never programmed anything in his life.
      Aside from that, I try to let programmers handle programming work and if I don't trust it, I get an auditor in.
      These days, there is too much detail in each and every sub-field to think you can keep up with multiple fields at the same time.

      --
      "I was in love with a beautiful blonde once, dear. She drove me to drink. It's the one thing I am indebted to her for."
    19. Re:Why is Cobol hated? by vacuum_tuber · · Score: 1

      My mainframe is the Wang VS, now reborn as a virtual machine running in Linux on modern x86, x64 servers (and the article I submitted on the changeover from legacy to Linux-based virtual Wang VS rejected by Slashdot's pinhead editors). The Wang VS was based on the IBM 360, the prototypical "mainframe," and updated when the IBM 370 came out. COBOL is almost an assembler for this kind of machine. Most simple COBOL statements translate to one or two machine instructions. In the Wang VS, moving a numeric value into a formatted variable (leading zeroes, optional dollar sign, commas, decimal point, etc.) is a single machine instruction. Bulk moves of data are single instructions. Add, subtract, multiply and divide of decimal fields are single instructions.

      --
      Look at the bright side: there's always seppuku.
    20. Re:Why is Cobol hated? by neonsignal · · Score: 1

      This was before IBM PC days, so things may have changed a lot since then in the Cobol world. I don't recall the mainframes we ran it on (I think one was a Burroughs 78, not sure about the other). Never had the 'joy' of running Cobol on a PC...

    21. Re:Why is Cobol hated? by blackest_k · · Score: 1

      COBOL feels like it should be written in 1970's bad scifi font (bionic)

      http://www.fontstock.net/fontsB/27/index.html

      Get that font and feel right at home with cobal and if you don't have a working teletype http://www.thebig8.net/nnews.wav this should help

      next a terminal amber on black 255,129,0 green on black 144,238,144

      Tilda might make a nice terminal to work with.

      Cobol feels very restrictive and stilted. very good at the boring programming jobs very dry and dusty, most other languages could be used for more interesting and appealing projects COBOL isn't fun.

    22. Re:Why is Cobol hated? by vacuum_tuber · · Score: 1

      Never heard of a Burroughs 78. All I can tell you is that the mainframe model separates code space and modifiable (data) space, and programs cannot modify themselves such as by storing a return address at the beginning of a procedure section or paragraph. The real reason, though, that COBOL has not generally beeen recursive is that it was never specified to be recursive. In the Wang COBOL manuals, derived directly from the rigorous COBOL standards, there is a warning that COBOL is not recursive and that there will be unpredictable results from recursion.

      Wang BASIC, otoh, is fully recursive. In one manufacturing system in which I worked on maintaining and enhancing the internals, multilevel Bills of Material (BOMs) involved recursing to process nested BOMs, very elegant indeed.

      --
      Look at the bright side: there's always seppuku.
    23. Re:Why is Cobol hated? by Anonymous Coward · · Score: 0

      As for the assembly it generates, do you see anyone giving a f'ck these days? The kids are all perl this, python that - no assembly in sight anywhere.

      I think you do not have a lot of experience in mainframe computing. It is a whole other ballgame where performance does count. While handcrafted assembly is something out of long forgotten times, it is still common practice to benchmark different compilers for your software. You deploy the version of your program that is fastest, or (if you run concurrent) the one that uses less memory.

      Don't extrapolate from your narrow viewpoint, there is a much wider vista when you get out of the visual basic mindset.

    24. Re:Why is Cobol hated? by Anonymous Coward · · Score: 0

      As an example, I'd prefer http://99-bottles-of-beer.net/language-cobol-1766.html as (quoting the source comments, caps and all): WHAT ONE MIGHT COMMONLY SEE IN A "TYPICAL" MAINFRAME COBOL PROGRAM.

    25. Re:Why is Cobol hated? by neonsignal · · Score: 1
      Sorry, it was a Burroughs 7800 (I think they named their models after the year they came out).

      These days I mainly program microcontrollers (Atmel, ARM, etc). Interestingly the Atmel AVR architecture follows the same Harvard model of rigorously separating code and data space. A nice architecture (though it does get a bit messy when writing boot loaders).

  16. A Key Element? by Mr.Bananas · · Score: 1

    While there may possibly exist some implementation of the summary's mentioned "XML/metadata, Web Services, Service Oriented Architecture" in COBOL, I wouldn't consider it a key element to these technologies. It may be that perhaps many new technologies are required to work with existing mainframes running a whole mess of COBOL code, but COBOL itself is not a key contributing factor to the success of these technologies. If anything, a good implementation should use abstraction to make legacy technologies irrelevant and compatible with newer technologies.

  17. Bollocks by MosesJones · · Score: 1, Insightful

    Seriously I can't think of something that is more rubbish. Yes COBOL is out there, but as a mainstay of XML and Web Services? Are you serious? Have you tried getting an old mainframe to talk in Unicode? COBOL is what old apps are written in and what they are maintained in, its not that there are no jobs but you'd be nuts if you are a talented coder to get into COBOL. If you are 50 and want a pension however its an ideal area to get into.

    Yes I know COBOL, yes I have developed and maintained in it, and NO it isn't the next thing, its the crap that people wrote when the average IQ in Computing was miles higher than today but the tools were miles worse. What I really pity is the people who are maintaining C++ developed in the 90s. That stuff sucked.

    --
    An Eye for an Eye will make the whole world blind - Gandhi
    1. Re:Bollocks by geekoid · · Score: 2, Interesting

      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 /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    2. Re:Bollocks by MosesJones · · Score: 1

      Gandhi the ignorant... a new one on me. Your COBOL information seems similarly accurate.

      --
      An Eye for an Eye will make the whole world blind - Gandhi
  18. Clarification by Waffle+Iron · · Score: 5, Funny

    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.

  19. No. by repvik · · Score: 1

    Quote: http://www.informatik.uni-freiburg.de/data/citations/citation.2007-06-26.0532689966/view?set_language=en

    Dijkstra said this about BASIC though: "It is practically impossible to teach good programming style to students that have had prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."

  20. In 1997??? by hs44352000 · · Score: 1

    Honestly, I can only think of three words in reply to that. WTF?

    We're not talking about the stylistics of Ancient Egyptian art or the evolution of the galaxy. In 11 years the landscape of the programming language world can change entirely. And since 1997 it has done so. This is absolutely the number one worst ever post on slashdot. Trying to tell us that we might be learning Cobol next is like going to a paleontology conference and telling everyone that they're going to have to study the Bible next. The only thing it does is make you look ignorant.

  21. Cobol does have its merits by Anonymous Coward · · Score: 1, Funny

    It's really cool if you remove the 'b'.

  22. You know the pose by david_thornley · · Score: 4, Funny

    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
    1. Re:You know the pose by geekoid · · Score: 1

      If only we had some sort of 'point' to tell people the sentence is exclaiming something..and was used only once at the end of a sentence~

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    2. Re:You know the pose by acheron12 · · Score: 1

      The boldcase you used on the Filter error stood out.

      --
      there is no god but truth, and reality is its prophet
  23. No doubt.... by PPH · · Score: 1

    ...IT management paid for this.

    "Oh please. Recruit us another few thousand COBOL programmers so we can patch this application just one more time."

    OK, so COBOL isn't the worst language possible. But given a clean slate, how many new applications would be written in COBOL?

    Anybody? (sound of crickets)

    I'm wondering whether recruiting CS majors for COBOL jobs is as successful as recruiting high school grads to do military service in Afghanistan is.

    --
    Have gnu, will travel.
    1. Re:No doubt.... by CheeseTroll · · Score: 1

      Are you saying that Crickets would write new COBOL apps? ;-)

      --
      A post a day keeps productivity at bay.
  24. Lines of code? by jc42 · · Score: 1

    This is one of the prime examples of why measuring code by "lines" is bogus.

    After all, in the typical Cobol program, most of the variable names are so long that you can't fit two of them onto a line on your typical cubicle worker's screen. Of course there are zillions of lines of Cobol code. And all those zillions could probably be expressed in perl or python in maybe 100 lines, or 1000 lines of C. (But you wouldn't be able to read them.)

    Now if /. only had a HHOS moderation ...

    --
    Those who do study history are doomed to stand helplessly by while everyone else repeats it.
    1. Re:Lines of code? by gbjbaanb · · Score: 1

      After all, in the typical Cobol program, most of the variable names are so long that you can't fit two of them onto a line

      I think you're confusing it with Java/C# :)

    2. Re:Lines of code? by jc42 · · Score: 1

      Nah. I am familiar with the java and C# coding cultures, and they do like to use impressively long names, but they typically don't come close to the names that are conventionally used in most Cobol shops.

      And, of course, this has little if anything to do with the languages themselves. Cobol, java and C# all allow single-letter variable names. It should be emphasized that it's the cultures that grew up around these languages that determine such things. C, perl and python tend to have rather short names, because they grep up in software (sub)cultures that encourage conciseness. I haven't noticed that this is strongly correlated with readability. The Cobol crowd likes to use sets of long names that differ by only one or two internal characters, and this can sometimes make it rather difficult to read and understand the code.

      --
      Those who do study history are doomed to stand helplessly by while everyone else repeats it.
    3. Re:Lines of code? by Hognoxious · · Score: 1

      After all, in the typical Cobol program, most of the variable names are so long that you can't fit two of them onto an 80-column punch card

      Fixed that for you. Screens indeed.

      PERFORM B300-GET-OFF-MY-LAWN.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    4. Re:Lines of code? by vacuum_tuber · · Score: 1

      Hey! I worked on the Burroughs B300 in 1967! It had three memory options: 4,800 characters (BCD, not ASCII), 9,600 or 19,200 characters. That was it. And it did tons of useful work. Try that today.

      --
      Look at the bright side: there's always seppuku.
    5. Re:Lines of code? by jc42 · · Score: 1

      variable names are so long that you can't fit two of them onto an 80-column punch card

      Fixed that for you. Screens indeed.

      Heh. Thanks; I forgot that point.

      Actually, back in the late 1970s, I did have a job where I wrote Cobol programs that did
      interactive entry/update of a database via an interactive display. The whole thing was
      a moral offense to the Cobol programmers in the company. But I was an outside "consultant",
      so I could get away with it.

      What really offended them was that I wrote those programs in one to two pages (on the
      old IBM printers that were UC only and printed on the white/green striped paper). I
      used simple variable names in my records, so I could use the CORR(esponding) modifier
      in my MOVE commands. Can you imagine one-page Cobol programs? The local Cobol guys
      couldn't, and they weren't impressed. They wanted me out of there. But the date entry
      people and their managers loved it, so I stayed for several months. (And can you imagine
      getting a Cobol job done in only a few months? ;-)

      Then I got a job in a unix shop, and left the Cobol world behind with a huge sigh
      of relief.

      --
      Those who do study history are doomed to stand helplessly by while everyone else repeats it.
  25. billions of lines by doti · · Score: 4, Funny

    "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
  26. Kobol - the place of the gods by nilbog · · Score: 1

    oh lord o cobol, hear my prayer.

    --
    or else!
  27. Your Phone books by AEC216 · · Score: 1

    Like the phone book? (think "more cowBELL") Produced with COBOL. COBOL can used to make a VERY fast PostScript engine. Single process, 100 pages in about 1 minutes, with pulling high resolution image blobs from Oracle.

    --
    May I please have my frontal lobotomy if I bring back the ashtrays?
  28. now that it has an ELSE statement by presidenteloco · · Score: 1

    "COBOL actually aint so bad
    repeat until believe

    (the above was much more droll in my
    original, authentic all-caps cobol-esque
    version, but the higher powers have deemed
    that you cannot enter caps cobol syntax into
    a slashdot post.)

    --

    Where are we going and why are we in a handbasket?
  29. Gotta have more Perl! by Scareduck · · Score: 1
    You know, sometimes I get the feelin'
    That, that uh, accountants and lawyers
    are in cahoots with the Devil
    Yeah, they're in cahoots with the Devil!
    To cover the Earth
    Cover the Earth with this wretched swill
    of gutless, mediocre, middle-of-the-road,
    sleep-inducing, homogenized pabulum programming languages for the slavery of daily drudgery
    Sometimes I get that feeling man, but I know it's a lie
    I know it's not true
    I know it's not true
    And I'm talkin' to Larry Wall now
    Larry Wall, I'm talkin' to ya
    Larry Wall, where are ya?
    Gotta have more Perl!
    Gotta have more Perl!

    (with respects to Mojo Nixon)

    --

    Dog is my co-pilot.

  30. It's over by ze_jua · · Score: 1

    <joke>
    As all banks (and the USA) are very close to bankruptcy, and that Cobol is mainly used in heavy banking apps, no more Cobol programs should be running at the end of 2008. ...

    Arg, oops. Someone just said me that Pdt Bush decided today that the US government will help banks... Some Cobol programs will also see the year 2009.

    </joke>

    In fact... I think that remaing Cobol programms will still run when the last Java powered device will be trashed (or recycled).

    Cobol apps in my company ALWAYS works.

    To obtain a 99,999 availability with 'modern' technologies, you need ... [Put there all arguments that can show that *<Cobol+Mainframes]

    1. Re:It's over by Anonymous Coward · · Score: 0

      Haha :)

  31. Old Joke by PPH · · Score: 3, Funny

    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.
    1. Re:Old Joke by rah1420 · · Score: 1

      Nice segue into a phrase that sort of tightened my jaw in the DDJ article:

      40-year-old Cobol applications are often extremely well debugged (although anyone who was bit by the Y2K date bug, primarily a Cobol problem, might disagree).

      I disagree with that statement. COBOL was the prevalent language of the time so it was mostly manifested on COBOL compiled programs. However, I maintain that any contemporary language that was in as wide a use as COBOL at the time would have been bitten.

      --
      Mit der Dummheit kämpfen Götter selbst vergebens.
    2. Re:Old Joke by vacuum_tuber · · Score: 1

      40-year-old Cobol applications are often extremely well debugged (although anyone who was bit by the Y2K date bug, primarily a Cobol problem, might disagree).

      Utter nonsense. The Y2K problem grew out of the extremely high cost of memory and storage, an environment in which the idea of storing the century 30-50 years before Y2K was considered an insane extravagance. When every character of memory cost terribly, and memory and rotating storage were tiny by today's standards, storing only the last two digits of the 4-digit year made perfect sense. If any of today's experts at hindsight had been present back then and had suggested storing 4-digit years, they would have been shown the door in a heartbeat.

      --
      Look at the bright side: there's always seppuku.
  32. The Gartner Group also said the MF was dead in '85 by Anonymous Coward · · Score: 0

    I've been in the financial industry since '81. In this sector there's still a ton of COBOL out there. And, in fact, sometimes it makes sense to expand on the old COBOL CICS code and VSAM rather than build something that takes java ESB, an SQL database, JSP, hand-written HTLM, javascript, unix scripts, autosys, FTP and a bunch of other cludged-up technologies.
    Don't get me wrong - I like the new stuff because it makes me marketable and is so complex the users have no choice but to bow down at my feet.
    I'm just sayin'....

  33. So that crumby college... by Nyckname · · Score: 1

    where I learned COBOL in the early eighties was just ahead of the curve?

    And that punch card thing was so retro it was cool, I guess.

  34. Ya don't say by Alarindris · · Score: 1

    A few years ago in college, one of my professors was giving away a table full of programming/comp sci books. I stumbled on 'Basic COBOL' or something like that and joked "You can probably just throw this one out." He laughed and said it was the most widely used language on the planet. At the time I didn't really believe it, but kept it anyway, I'll have to crack it open and take a peek.

  35. Lines of code by jaguth · · Score: 0

    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.

    Ooooh, Cobol must be popular if there are billions of lines of new code written every year!!! But seriously, the amount of lines of code doesn't mean Cobol is making a comeback. It could be a few companies that write/publish the majority of the billions of lines of code. What I would like see is the amount of code written for every programming language and juxtapose them against Cobol, then we'd get the bigger picture.

    Also, I'm sure somebody could fit 240 billion lines of cobol into one line of perl... one reaaallly long line of perl ^_^

  36. Some c by geekoid · · Score: 3, Funny

    #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 /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    1. Re:Some c by guyminuslife · · Score: 1

      FYI, GCC's refusing to compile that.

      --
      I don't believe in time. It's a grand conspiracy designed to sell watches.
    2. Re:Some c by Anonymous Coward · · Score: 0

      I guess that writes hello world to a screen, but I'm not sure...

  37. Pedant alert by Insightfill · · Score: 1
    Not "Cobol" or "cobol" as the TFS would have it but COBOL.

    Now: allow me to rant on all of you who call it the "Patriot Act". ARGGGGGHHH!!

    (There: got my pirate cred in there, too.)

  38. Millions of what? by DiegoBravo · · Score: 1

    Comparing the "millions" of lines of cobol appls with most languages is not fair. Most of those "millions" are devoted to things that on most current systems are regarded as "configuration" or "rules" or "auxiliar data files". Nobody talks about the "millions" of machine code lines that represent the compiled code, for example.

    Despite that, I agree that Cobol is maybe the most used P.L. in business.

  39. Ok But... by sbeckstead · · Score: 1

    I'm still not putting it back on my resume. Not no how, not no way.

  40. On the topic of old tools by smittyoneeach · · Score: 1

    Trying out a script in Expect.
    Delightful.
    You see where tidier tools have stolen market share from TCL.

    --
    Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
  41. Re:Why is Cobol hated? Recursion by neonsignal · · Score: 3, Insightful

    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).

  42. Did you here about the new object oriented COBOL? by Anonymous Coward · · Score: 0

    It is called ADD ONE TO COBOL

  43. poor excuse to get out of Java standards by heroine · · Score: 1

    You will be assimilated & spend the rest of your life in Bangalore implementing crazy Java standards written by MBA's during their Colorado ski trips who have no idea what they're doing.

  44. Works well for describing food by Two99Point80 · · Score: 1

    In the cafeteria at Southern New England Telephone, we would regularly encounter stuff best described as FILLER PIC X VALUE LOW-VALUES.

  45. And don't forget.... by Joce640k · · Score: 1

    Your return stack and everything came out of those 128 bytes ...

    No screen RAM either. You had to update the image with the CPU as the screen scanned.

    --
    No sig today...
  46. COBOL is like NASCAR by bxwatso · · Score: 1

    I don't know anyone who codes COBOL, I don't know anyone who knows anyone who codes COBOL. Same for NASCAR, but I know they are out there.
    I think a long time ago, some Oracle Apps were written in COBOL.

  47. Teaching new dogs old tricks by Anonymous Coward · · Score: 0

    I learned COBOL at college when I was training to be a Systems Analyst, the idea behind COBOL was that it was supposed to be a language that management types could read. I promptly tried to forget it as soon as I could because it was a particularly painful language to work with.

    I would never touch it again, but I appreciate that if it is not broke don't fix it, the question is when does it become broken enough that retro fitting features becomes a problem ?

    We are working to replace a VAX system running VMS with a more modern machine running some linux variant because it is becoming to difficult to support, but it has served us well for twenty odd years. The main problem is recreating the system that is essentially kludged, many who worked on it initially have long since retired.

    Old languages become harder and harder to support though, FORTRAN has survived long after it should have died, but it is still well known in scientific circles, however it becomes harder and harder to support in modern systems even with things like GOMP support.

  48. Flat Hollow n Intelligent by Anonymous Coward · · Score: 0

    Cobol's collaborative development (a.k.a Commitee) model makes it the best choice for Intelligent Design in programming and Society re: the acknowledgably Flat, Hollow Earth. The only sane option, really.

    And what's wrong with spaghetti code, I do inquire? With all the hunger and food shortage in the world, how can people be possibly against anything so satisfying?

    Not only that, but it forces developers to work together in great numbers, at all stages : design, development, and (mainly) maintenance. If you want to reduce violence in the world, give the people something to do! Employ them as cobol coders! Let the only wars be flame wars between them and VB/NET/PERL/JAVA/.... and other coders.

    Yea! The world needs more cobol, not less!

    Make it universally mandatory! Who's going to have the time or inclination for sniping, rock-throwing or bombing, etc., if they're too busy urgently coding cobol!

    To the 80-column editors with them all! That's what I say! Look at me! 10-12 hours a day of cobol for 10 years didn't hurt me none. Builds up your moral fibre, it does. Heck. We were _glad_ for a chance to code in cobol.

    To the cobol-camps with them! ;-P

  49. Society for the prevention of the use of Cobol? by slapout · · Score: 1

    I've programmed in COBOL (I was young and needed the money). It is the most programmer unfriendly language (except for RPG) I've ever used. It has a large installed base which means it will be around for a while. But that doesn't make it a good thing. I've thought about starting a society to discourage its use.

    --
    Coder's Stone: The programming language quick ref for iPad
    1. Re:Society for the prevention of the use of Cobol? by The+Real+Dr.+Video · · Score: 1

      RPG? Man, in 10 lines of code you can do what takes 6 pages in C or Java... Long live RPG! I would also argue that COBOL is friendly due to being easy to read, especially when you're working on somebody else's 20 year old code with long descriptive variable names and versose operatives. Of course if it was poor written in the first place, that's another story.

      --
      Officially a geek since 1984
    2. Re:Society for the prevention of the use of Cobol? by slapout · · Score: 1

      I'll agree that RPG's great if you just want to read in records and them print them out in a report. But try doing any complicated calculations with them first.

      And then try doing it without a coding form :-)

      "long descriptive variable names and versose operatives"
      I'd argue the opposite about COBOL. It may help if you haven't seen the code before. But when you work with it everyday it becomes a pain. It's like having to write everything out in longhand instead of using a word processor.

      --
      Coder's Stone: The programming language quick ref for iPad
  50. Object Oriented? by haapi · · Score: 1

    Are they teaching "add 1 to COBOL" in the universities, then?

    --
    Well, apparently, you only have to fool the majority of people for a little while.
  51. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  52. As long as there are still mainframes by Orion+Blastar · · Score: 2, Funny

    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.
  53. Just like the guys who say mainframes are dead... by The+Real+Dr.+Video · · Score: 1

    The guys that are always saying COBOL is dead or dying are the same IT newbies that you can randomly question at trade shows as to what a "mainframe" is and they invariably reply "some computers from the 1960's". COBOL is alive and well lads, and mainframes are enjoying a healthy growth in install base. Get out of your Mom's basement and check out the datacenters of Fortune 500 companies. That's a room where people get paid for working with computers and data. No shag carpet or wood paneling. ;)

    --
    Officially a geek since 1984
  54. Remember kids... by Jon+Abbott · · Score: 1

    "A computer without COBOL and FORTRAN is like a piece of chocolate cake without ketchup or mustard." -- John Krueger

    1. Re:Remember kids... by clueless_geek · · Score: 1

      "The pessimist complains about the wind; the optimist expects it to change; and the realist adjusts the sails." bang on.... I see COBOL alive and kicking millions of transactions with No.. "absolutely no" downtime ...

    2. Re:Remember kids... by Jon+Abbott · · Score: 1

      My personal opinion regarding COBOL is that it works but in a few years all of the people who know COBOL will have retired...

  55. I Once Learned COBOL by Nom+du+Keyboard · · Score: 1

    I once learned COBOL, and programmed it exclusively for 54 weeks before moving on to jobs outside of the typical business shop. I'm wondering now if the next big thing will be COBOL-script?

    --
    "It's the height of ridiculousness to say for those 9 lines you get hundreds of millions."
  56. Load of crap by Jheralack · · Score: 1

    As a long ago reformed COBOL programmer, I know that there is NOTHING you can do in COBOL that you can't do faster and in a more easily maintained manner in an object-oriented language. If the legacy platform only supports COBOL, then you are still better off changing platforms. The stuff that hasn't changed still exists because it is managed by a bunch of cowards who are only interested in punching the clock until retirement.

  57. So how do we learn it (just to see how bad it is?) by D4C5CE · · Score: 1

    ...in a no-nonsense, http://codex.cs.yale.edu/avi/os-book/os6j/online-dir/Java-primer.pdf kind of way for its modern incarnations? Though arguably its code is more readable than Perl's ;-) in the first place...

  58. Bastard child by Anonymous Coward · · Score: 0

    The developers of COBOL (Grace Hopper among them), expected COBOL to last a maximum of 6 months, before something (damn near anything) better came along. They admitted even 1 year after first writing it, that if they had known it would have lasted 1 year, they would have (admitting they could have) done a better job. Having learned COBOL and thus suffered, I agree that the year slated for COBOLS death was in the last millenia, and prodding the living dead on is wrong, wrong, wrong. I had a prof. in CS who actually tried to put a few virtues to COBOL, but admitted it was mostly a sukky language. It had a few features C didn't have, but people quickly expressed that the features could be quickly and easily written and used as a library. Coding in any other language is much less verbose, infinitely less arcane, and likely to execute on given hardware much more quickly.

    1. Re:Bastard child by Anonymous Coward · · Score: 0

      The developers of COBOL (Grace Hopper among them), expected COBOL to last a maximum of 6 months, before something (damn near anything) better came along. They admitted even 1 year after first writing it, that if they had known it would have lasted 1 year, they would have (admitting they could have) done a better job.

      What are your sources, oh omniscient one? This sounds like utter bullshit you pulled out of your ass.

  59. Let me ask you, what would you replace COBOL with? by u2pa · · Score: 2, Insightful

    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"
  60. Re:Why is Cobol hated? Recursion by vacuum_tuber · · Score: 1

    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.

    You must come from the crappy-COBOL-on-PCs world. In Wang mainframes code space is "pure," meaning that nothing can be written into code space except by the OS when loading a program into memory. Wang mainframes are also stack-based. But COBOL was not specified to be recursive.

    --
    Look at the bright side: there's always seppuku.
  61. Re:Availability vs Reliability by Lord+Bitman · · Score: 1

    Yeah, damn modern programmers always planning ahead and detecting serious flaws, brining the whole system down if needed when something unrecoverable happens. When there's a problem that means all your data is worthless, systems should just stay up and keep right on outputting those worthless numbers! Five years later, when somebody notices, you can apply a patch that makes no sense to anyone and isn't actually accurate ("better than nothing, right?")

    See: http://firasd.org/weblog/2008/05/07/dilbert-average

    --
    -- 'The' Lord and Master Bitman On High, Master Of All
  62. Cobol is cool :) by clueless_geek · · Score: 2, Informative

    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...

    1. Re:Cobol is cool :) by eekygeeky · · Score: 1

      Why were you suprised you can't hammer in a nail with a tablesaw?

  63. Bank failure, explained... by Alonzo+Meatman · · Score: 2, Funny

    Merril Lynch reports that 70 percent of its business runs on Cobol apps.

    That explains a lot.

  64. Re:Why is Cobol hated? Recursion by Anonymous Coward · · Score: 0

    So what? Fortran originally didn't support recursion either. Recursion is usually avoided in high performance, real-time, and fault tolerant systems, anyways. It is difficult or impossible to bound.

  65. As usual, you're almost all wrong by some-old-geek · · Score: 1

    Programming languages are tools used to solve problems. Any decent programmer will have more than one tool in their toolbox. Some tools are appropriate for > 1 problem space; there is overlap.

    The problem space for COBOL is usually confined to, you know, implementing business rules.

    If your problem with COBOL is that you're having trouble using it to process /var/log then you're probably trying to use it in the wrong problem space.

    Truly unfortunate are all the comments modded as informative that are anything but. Even more unfortunate is I've come to expect that of slashdot.

  66. Don't count LOLCODE out! by janwedekind · · Score: 1

    LOLCODE is rapidly gaining popularity. It's at least as readable as COBOL and very popular among programmers. At the same time integration and migration is very business friendly. While there has been a lot of press about the Y2K bug affecting large-scale COBOL installations, you will hardly find any news concerning Y2K issues in LOLCODE. In 2003 Gartner group predicted that most business transactions will be done in LOLCODE by the end of the decade.

  67. Cobol is rock solid. by Anonymous Coward · · Score: 1, Interesting

    I'm a former mainframe cobol programmer, I've been writing VB windows applications for the last 10 years.
    I always tell people, the next time you swipe your debit/credit card to buy something there are millions of lines of cobol code making that possible, from the authentication code you immediately get back to the monthly bill you'll receive in 30 days. Mainframe Cobol is rock-solid-stable, damned reliable and in the long run, much cheaper than any large VB application I've ever seen.

  68. Why COBOL won't go soon... by clueless_geek · · Score: 1

    Lots of Banks have a Mainframe based system with COBOL as their primary language.[This was the only safe and sound language available at the time]. It's not just the banks, lots of Pharma/healthcare, Retail businesses(e.g. Tesco) , insurance companies manufacturing companies have years of data on a mainframe. They run on applications that are age old(20 to 30 years or older). These systems have been developed, modified, enhanced and messed with over years. We call such systems are organically developed systems and they have absolutely no documentation and are supported by a workforce that is nearing retirement age. these guys are the System experts. Now you might think that as the main workforce is retiring the systems too should retire and the applications will move on to newer platforms. Now this where the Indian work force comes in. The likes of Infosys, Wipro, Satyam and TCS have a huge workforce of people trained in COBOL and mainframes. These guys are now working with the retiring workforce and getting all the system knowledge. It is hopeless work and requires lots of sleepless nights but the money is good and indians will do it cheaper. The bank gets a huge number of contractors working in their IT dept and are happy. This workforce may not provide the same quality of work provided by the earlier experts but they'll get the job done. Coming to the issue of migrating the existing applications onto the newer platforms. Imagine a bank that has hundreds of branches across the country. They have people working for them and are trained in the current setup. The banks have been developing systems to plugin [lots of internet banking software still talk to a Mainframe back end via CICS transactions(In IBM, UNISYS, FUJITSU etc. may have a different thing )] to their core mainframe. The cost and effort of replacing the core mainframe logic as well as the interfaces to all the systems with a new platform is just too huge. No CEO would take the risk. Instead what they are now trying to do is open all new business on the newer systems and continue with the older systems. From where i see COBOL still has a long way to go. I am not going to shun a COBOL job simply because i do not like the language. Once you get into the business and know the institution you are working for well enough it is the domain knowledge that will get you up and not your programming skills. Programming skills come really cheap these days. India, china etc.. and even these are now facing competition from other countries where the cost of living is even lower. Yes COBOL is a language of the past but it is still going strong and will remain so for a long time.

  69. COBOL on .NET with GTK# by caseih · · Score: 2, Interesting

    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).

  70. Thank you by DrYak · · Score: 1

    Your a telling me. I helped port the jpeg library {...} to DOS.

    I must say "thank you". The product of your work was very helpful to me when I was a kid.

    Borland's c compiler wasn't that bad for dealing with memory with the huge modifier that abstracted most of the details.

    The fond memories... I learned to program thanks to Turbo-C and later Borland-C. (And learned also to work around the bugs of the "bcc" optimizer...)

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
    1. Re:Thank you by Bill,+Shooter+of+Bul · · Score: 1

      No not the jpeg library you used. Sorry, if I made that out to be more than what it was. The official port didn't work with images greater than 64 k using borland's compiler. I fixed it for my companies embedded product that ran Dos. I don't think I can legally explain much more about the flash thing, other than to say you haven't used that either.

      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
  71. Billions by Anonymous Coward · · Score: 0

    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.

    Billions of lines of COBOL code a year - let's see, if the same functionality were written in a modern language, what would it be? Half a million lines a year?

    If a line of C[++] was a dollar, a line of COBOL would be an Italian Lire. And just as obsolete.
    The older generations in Europe also still think of values in their old Franks, Lires and Marks, but that doesn't make those currencies "current".

  72. Ah, the not so good old days... by CaptJay · · Score: 1

    I tagged this with the only thing I remember from learning COBOL :

    DISPLAY SPACES UPON CRT WITH BLANK SCREEN.

    which is quite a mouthful compared to the previous clrscr() I was used to! :P It makes a cute tag, too : displayspacesuponcrtwithblankscreen.

    --
    "I remember Y1K, every abacus had to get another bead"
  73. The article is right by Mycroft_514 · · Score: 1

    We are a fortune 10 shop. We still do most stuff in COBOL. Recent numbers I saw would have us at 50,000+ packages Assuming duplicates, that is about 20,000 plus COBOL programs, just counting the stuff that accesses DB2, with more being created every day.

    So, the count is there, and there ar emore shops then you guys care to admit.

    COBOL will last until I retire, and probably after that.

  74. Re:Why is Cobol hated? Recursion by Anonymous Coward · · Score: 0

    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!

    Real programmers remove recursion while working with an imperative language on a 704.

  75. Count COBOL OUT! by Aaron+Aardwolf · · Score: 0


    77 MADNESS Computational-NUT PICTURE IS "INSANE" VaLUE "NOTHING".
    .
    OOPS! Filter error: Don't use so many caps. It's like YELLING.
    ... No shit, Sherlock! Well, Hey! - Even /. doesn't like COBOL! LOL!

    (Sorry Admiral Hopper! But, I'm sure you'd agree with me)

    .

    --
    - Aaron A. -
    Bringing Pinoqachole to the natives since 1643.
  76. Re: Recursion avoided in real-time systems by neonsignal · · Score: 1

    And fair enough too. I write a lot of firmware, and restrict myself to a compiler subset for all those reasons (eg being wary of using the heap). But that doesn't mean I want the language to force those inelegant restrictions.

  77. The REAL problem with COBOL is .. by Anonymous Coward · · Score: 0

    You can't make real money with it. Within its problem domain (Plain Old Necessary Business Stuff - accounting, payroll, customer records, etc.) it just works.
    But with the wonderful New Age technologies, one has almost infinite possibilities for fun and profit: Consulting, teaching, text books, instructional courses, tools, "15 minutes of fame for inventing the next framework that shores up some flimsy new technology", security consulting, criminal opportunities (hacking those mainframes that run that old COBOL just isn't very practical, much better now), conventions, and definitely more groupies. Those old COBOLler's really should wise up...they can take some obsure COBOL function, discover it as a breathtakingly new concept, and make their fortune marketing it. (One example that comes to mind is AOP versus the COBOL copybook..problem with the COBOL copybook is that it's very flexible and can be pretty much mastered in 1/2 hour, unlike the possibilities offered by AOP.) (Another point might be "reuse"..a full COBOL ecology in a large shop might have thousands of components getting reused millions of times per day - a real disadvantage in that it doesn't take genuises or all kinds of add-on products or consulting to make it work.)
    In summary, COBOL's problem is that it is not a real MOP language. (Money-Oriented Programming)

  78. Cobolans by aldm · · Score: 0

    Used to call them cobolans some 30 years ago.

  79. Peter by Anonymous Coward · · Score: 0

    So what if there ever will be 40 billion lines of Cobol code. If there are no jobs in COBOL then this means nothing if you are looking for a career.

    COBOL is/was (whatever) a great language but the fact is there are no jobs and I doubt there ever will be.

    And COBOL does cripple the mind. The language construct differs and its experience cannot easy to transfer to modern better (hence the demand for jobs in COBOL) languages.

    There are so many bridge's built decades ago and new ones built everyday but that doesn't mean you have to replace them or even more to the point use the same old ways (materials, concepts) which were used.

    Face it COBOL is dead from the prospects of any career in software development.

  80. Love or Hate, but the job is done by gilbertopb · · Score: 1

    The Python version is a good example, but I would note to the REXX sample for the same purpose, short, clear and very elegant:
    http://99-bottles-of-beer.net/language-rexx-493.html

    I programmed Cobol up to 25 years, and until today, I learned some +25 diferent languages. These, almost 10-12 I've used for +10 years.

    My opinion (IMHO) is: COBOL is a great language for batch processing, to larger data volumes and for calculations performance.

    In the punched paper card era, coding by hand with a pencil in the program listing, and waiting hours to some cards being punched and processed, was a kind boring to do anything in ANY language.

    Today, we have graphical interfaces, say "real time editors", witch are hundreds of times faster to work.

    So, IMHO, I see no trouble in writing some lines of code as this appears to be very fast and easy. I'm not lazy to that.

    And NO, I don't like to expend hours programming.
    I think computers must do all the work, so I code hardly to do better software, for human use. I work harder for a time, then I have a high performance program and if possible, with an elegant solution, easy-to-use.

    This is a personal approach of my job.
    I lack some COBOL features very often, mainly, the possibility of control memory use and the short object code, very suitable for performance optimization.

    And more than all, I think there's no one language for all thinks. I trust about mixing languages, using what is better for in case. In the 80's, I developed software for CICS, mixing COBOL, CSP/AD (a IBM L4G), Assembler, RPG II and REXX, all in the same system running under VM.

    Then came to Clipper, VB, Access VBA, and many modern tools. They are very good for sure each one for each case.

    Today I work with a legacy system done Unify-Accell (an older L4G) and Sybase Adaptative Enterpise Server for a larger retailer company.
    The system is migrating to a new one, and some partes of the new main core are done with (guess...) COBOL!

    (sorry bad english)

    --
    Information technology means all information.