Slashdot Mirror


Modernizing the Common Language - COBOL

Frumious Wombat writes "Over at the Register Developers section, they are quoting the head of research for Ovum Consulting on the continuing dominance of COBOL in certain business applications. The antique language accounted for 75% of all business transactions last year, and some 90% of financial transactions. For all the time spent arguing the merits of Ruby vs. C#, should the community spend more time building tools to make COBOL livable? The article goes into what it terms 'legacy modernization', and lays out some details on how to go about it. From the article: 'The first stage in the legacy modernization process is to understand the business value embodied within legacy systems. This means that developers must give business domain experts (business analysts) access to the legacy, using tools that help them find their way around it at the business level. Some awareness of, say, COBOL and of the legacy architectures will be helpful but we aren't talking about programmers rooting around in code - modern tools can automate much of this analysis for staff working at a higher level.'"

347 comments

  1. It has been said... by zeromorph · · Score: 1
    It has been said of languages like C, C++, and Java that the only way to modify legacy code is to rewrite it - write once and write once again; or write once and throw away. On the other hand, it has been said of COBOL that there actually is one original COBOL program, and it only has been copied and modified millions of times.
    from the wikipedia article COBOL
    --
    "Hannibal's plans never work right. They just work." Amy/A-Team
    1. Re:It has been said... by lowen · · Score: 2, Insightful

      According to that Wikipedia article, the most recent ANSI COBOL standard is from 2002. Doesn't sound like a dead language. Hm, the 2002 standard includes OOP and other modern features.

    2. Re:It has been said... by Anonymous Coward · · Score: 1, Interesting

      That is not a good thing. COBOL is hands down the worst language in common usage today. Its dominance is not continued by good programmers but by managers who consider it a 'safe' choice. Of course it hasn't been rewritten, the very ground that it is built on is considered antediluvian in concept.

    3. Re:It has been said... by LizardKing · · Score: 1

      Whatever happened to NPOV (Neutral Point Of View) in Wikipedia articles? Or can you say anything as long as you prefix it with "It has been said ..."? If so I'm going to create an article about me with the line "It has been said that Chris has the good looks of Antonio Banderas and is hung like John Holmes".

    4. Re:It has been said... by StarvingSE · · Score: 4, Insightful

      The company I work for (large fortune 500 company) still uses a lot of cobol on the mainframe for financial transactions. Why use an "ancient" language? Because there is 20-30 years of business knowledge encoded in the cobol code. Not only that, but it is tested, tried, and it just works perfectly. Rewriting in a modern language would make no sense other than using the "latest technology." Rewriting would most certainly introduce bugs which could potentially cost the company millions since it is running financial processes. Cobol was meant for the business and financial world and is well suited for it.

      --
      I got nothin'
    5. Re:It has been said... by zeromorph · · Score: 1

      No. NPOV is intact (or as intact as ever). I cited the "Aphorisms and humor about COBOL" part of the article and I linked directly to that part of the article http://en.wikipedia.org/wiki/Cobol#Aphorisms_and_h umor_about_COBOL to make it obvious, but I'd probably better written it behind the link, too.

      I think the COBOL article is neutral/fair and of reasonable quality. I just liked the part I posted, because I think there is a true core in it.

      --
      "Hannibal's plans never work right. They just work." Amy/A-Team
    6. Re:It has been said... by MobyDisk · · Score: 1

      It seems unlikely to me that any 20-30 year-old piece of code would adequately represent good design principles, have good documentation, and be well-understood. Most of the software rewrites I've seen are done not just because the body of code is dysfunctional, but because the design and implementation are out-of-touch with modern principles and techniques. Like something that should have been O-O but wasn't, and looks like cruft because the design-paradigm just wasn't well-known; or the design wasn't scalable in the right places.

      Does this 20-30 year old COBOL code have design principles that are in-line with what is taught today? Are new developers able to walk-in to the project and get up to speed quickly? If so, I'm very curious how the design and documentation have been kept up over the years.

    7. Re:It has been said... by Anonymous Coward · · Score: 1, Insightful

      "Design principles" don't make money. The rule of thumb used most places is, if it ain't broke then don't fix it. Most of these legacy systems are merely tweaked periodically, such as being updated to handle new tax laws. That's far less expensive to do than to throw it all away and start over. It may even be prohibitively expensive just to dig through everything and understand it. Redesigning for the sake of being modern is a waste of money.

      Even if the lack of modern techniques makes the process of maintenance difficult (not necessarily true), it's easier to justify the short term cost of keeping it going than to get a budget for a long term rewrite and retraining the programmers (or worse, hiring young hotshots who think they know how things should be done).

    8. Re:It has been said... by Anonymous Coward · · Score: 0

      And, I suppose those super-advanced "IF" statements cannot be converted to any other programming language?! (In case the sarcasm isn't clear, the answer is "Of course they can.")

    9. Re:It has been said... by csokat · · Score: 0
      Rewriting in a modern language would make no sense other than using the "latest technology."

      Otherwise known as CV++.

    10. Re:It has been said... by Lord+Bitman · · Score: 2, Insightful

      good design and documentation.. or code for that matter.
      How do you intend on building a replacement for a system that:
      1) Is ancient and pretty hard to understand to begin with
      2) Has no source code
      3) Can never, EVER be turned off
      4) You don't specifically know the function of
      ?

      You can either keep using what it was originally built with (okay, not "no" source code, but very little remains)
      Or you can add "and is written in very dissimilar and unrelated languages"

      Often the best way to "just start using" a better language is to "just start using" a completely separate system, and a propagation tool.
      -> which of course leads to "Oracle is slower than our VSAM files! We can't use this!"

      I caught the tail end of a talk someone was giving about modern COBOL and how mainframes were becoming more and more relevant (delivered by a hip 19 year old to a room full of 50 year olds) I don't remember specifically what innovation was being talked about, but I think it was along the sophistications of a foreach loop
      It was sad.

      --
      -- 'The' Lord and Master Bitman On High, Master Of All
    11. Re:It has been said... by triffid_98 · · Score: 1

      It looks like there were a few typos in your post..here, let me help.
      ...
      The company I work for (large fortune 500 company) still employs the elderly who know to develop for our 40 year old IBM System/360 mainframe. Why use an "ancient" language? Because there is 20-30 years of undocumented business knowledge encoded in the cobol code by people that retired 20 years ago. Not only that, but it is tested, tried, and it just works perfectly. Rewriting in a modern language would make no sense other than using the "latest technology"...and allowing us to make changes to the application logic without incorporating seances into our QA process.

    12. Re:It has been said... by TheGavster · · Score: 1

      Actually, prefixing statements with "It has been said" will probably result in the article getting a "weasel words" cleanup.

      --
      "Because Science" is one step from "Because old book". Try "Because of my experiment testing my falsifiable assertion".
    13. Re:It has been said... by theshowmecanuck · · Score: 5, Insightful
      Most of the software rewrites I've seen are done not just because the body of code is dysfunctional, but because the design and implementation are out-of-touch with modern principles and techniques.

      You may be in touch with modern software principles but sadly you are out of touch with business principles. Ideology does not make a company money. And a company is about making money not writing code conforming to modern code design.

      To make a business case for code change, you need to back up your reasoning by showing how it will either 1) save the company money within 5 years or less (including paying off all the money spent for the code upgrade which at large companies could run into hundreds of millions of dollars) or 2) earn more money for the company (including paying for the code changes) within 5 years or less. You could argue that these are the same things but I look at them differently as one causes earnings to increase indirectly through savings, and the other directly though increased revenue.

      If you can't do either, then forget it. If you don't understand why, think about where your paycheque comes from and how the company is going to be able to afford to pay you to work on no-gain projects. If you don't want to understand why, then stay a coder... not even an analyst, stay a coder. You must justify the costs of these kinds of expenditures. Now it is possible and even likely that someone was able to justify the costs of fixing design issues on projects you worked on. However, in corporate life, wholesale 'fixing' of 30 or 40 year old stable code is not usually justifiable for design sake alone.

      For example on on projects I have worked on where large companies have modernized their systems (often replacing Cobol code) it always involved monetary reasons. Many times Cobol systems are built on other Cobol systems, which are built on other Cobol systems... Business domains begin crossing back and forth across system boundaries and things (for example customer service) become a nightmare. Take a customer order management process: Customer wants three things, it might take three systems to order it, two different customer service reps, and if something goes wrong, support has to track things across 3 systems. If you want to create a new product package it takes too much time to coordinate between systems and one or more might need programming changes which might mean data conversions if the interfaces change between the systems, etc. If the pain threshold gets to high by holding back the company in effectively competing because their systems piss the users off, piss the customers off, and hold back introduction of competitive products (in other words, if it is costing them more money keeping the old system than replacing it will cost), then they will consider replacing the old systems.

      Since we are talking Cobol and financial transactions, we are talking *mostly* about the corporate world. When you are talking about large corporations, the cost to replace even an ordering and billing system can run well into the hundred million dollar range or more. Tens of millions is not uncommon either. Projects in the million dollar range are a dime a dozen in the corporate world.

      Note: I don't particularly like Cobol... actually I don't like it period (I like C/C++/Java syntax better because I understadn it :-). But for me to justify something to a customer, it must solve a customers problem. The first thing to remember is their main problem is how to make more money. Period. It is not about supporting good code design. They could have something in place that was the worst coding job in the history of the planet, but if it makes them money it won't matter. Unless of course you can show them in concrete terms that a good design will pay for itself by directly or indirectly making them more money.

      --
      -- I ignore anonymous replies to my comments and postings.
    14. Re:It has been said... by Anonymous Coward · · Score: 0

      Design principles? Design principles are there to enable the writting of software that works. Design principles are irrelevent to software that already works.

    15. Re:It has been said... by Anonymous Coward · · Score: 1, Interesting

      It seems unlikely to me that any 20-30 year-old piece of code would adequately represent good design principles, have good documentation, and be well-understood. Well no. 20-30 years ago, some companies took the time and had the resources to do it properly. I worked for one. It was a technology sector company with millions of customers, and highly profitable (gross margins of more than 90%). That company still exists, and critical systems still run in the original language, despite multiple projects subsequently to 'modernise' and replace the old applications. The kicker is the language wasn't COBOL, but VAX FORTRAN-77, using RMS and DECforms. Some serious business analysis was done up front. The subsequent attempts to replace with Oracle, first on VAX, then Oracle on IBM mainframes, then something (I don't know what) on Solaris on high-end Suns all failed badly. The application is 25 years old - almost certainly older than some of the programmers maintaining and extending it even now.

    16. Re:It has been said... by try_anything · · Score: 1

      The relative merits of design paradigms don't matter if the code and application domain are both mature. The design serves to accomodate change; it only has shortcomings if you need to make changes that the original design won't accomodate. If the current design has survived for years without becoming a tangled mess, then it has a proven soundness of design that no first-try redesign could match, no matter what techniques and concepts were applied.

      Frankly, throwing away a perfectly sufficient design and implementation because the programming team only knows the newer design concepts they were taught in school is as stupid as an old procedural coot refusing to work on a project with an OO design.

    17. Re:It has been said... by mrmtampa · · Score: 2, Insightful

      "COBOL is hands down the worst language in common usage today"
      Why? Do you have some facts that support your position?

      IMHO, as a business oriented (that's what the B stands for) procedural language COBOL is at the top of the heap. COBOL, coupled with top-down structured coding techniques has produced some of the most bug free and easily maintainable code around. That's why it's still running. Think about it every time you stick your plastic into an ATM.

      Maybe your problem is with procedural languages in general. When I look at the OOP extensions to COBOL I cringe. But I felt the same about C++. [flame bait]How in the world did C++ gain favor over Objective-C?[/flame bait]

      --
      "There are more things in heaven and earth, Horatio, than are dreamt of in your philosophy." Hamlet (I, v, 166-167)
    18. Re:It has been said... by nate+nice · · Score: 1

      You must be in your second or third year of college.

      Tons of companies use COBAL and aren't going to change because there are plenty of really good COBOL programmers. They don't care about the "design principals" and such are. The system works and the programmers know how to use it.

      I work in a place that has a lot of our stuff on COBOL TANDEM mainframes. I hate it. The design principals suck, etc.

      But the system works and is here to stay.

      --
      "If you are a dreamer, a wisher, a liar, A hope-er, a pray-er, a magic bean buyer ..."
    19. Re:It has been said... by Anonymous Coward · · Score: 0

      "Why? Do you have some facts that support your position?"
      Of course not, it's a subjective judgement!

      COBOL is the paragon of the computing past. It and the mentality that supports it gets in the way of progress. "It works, don't fix it." That thinking should have died after the industrial revolution, let alone the information revolution.

      I'll think about COBOL every time I think about the fact that simple and obvious transactions cannot be done with my debit card because the banks can't get their asses in gear to impliment them. That's the direct influence of COBOL. Plus once you know the sweet caress of a language like Python or Ruby, you know that very minute the torment that COBOL and the like bring forth from the whom of hell.

    20. Re:It has been said... by Anonymous Coward · · Score: 0
      It seems unlikely to me that any 20-30 year-old piece of code would adequately represent good design principles, have good documentation, and be well-understood.
      I'm not among those who think TeX is the be-all and end-all of great software, and its design is obviously flawed in a number of ways... but you can hardly describe it as inadequately-documented or poorly-understood. ;)
    21. Re:It has been said... by MobyDisk · · Score: 1
      Gah! I agree 100% with what you are saying, but you wrote it as though it was correcting me somehow. I'm really confused:

      Most of the software rewrites I've seen are done not just because the body of code is dysfunctional, but because the design and implementation are out-of-touch with modern principles and techniques.

      You may be in touch with modern software principles but sadly you are out of touch with business principles. Ideology does not make a company money. And a company is about making money not writing code conforming to modern code design. Not sure how your statement is a reply to mine. I never said that ideology makes a company money. What I am saying is that, usually, when something is 20-30 years old it is so out of touch that it is expensive and difficult to maintain. I've done this cost-benefit analysis before, so despite your insult, this is a big part of what I do on a daily basis. So no, I'm not out of touch. But I think the original poster is.

      The original post implied that there is some 20-30 year-old COBOL system that is so effective, cheap, and easy to maintain that it wasn't worth upgrading. I've never seen that happen with anything even half that age. So I want to know how that is possible. I'm going to guess that there is no 20-30 year old piece of code that is cheaper to maintain than to rewrite. Usually if I hear that argument, it's because some 65 year-old person is the only one who knows how it works, and assures management that he is the only one who can maintain it and how it is soo much cheaper than rewriting it. Then he retires and everyone scrambles. Definitely not cost-effective.
    22. Re:It has been said... by theshowmecanuck · · Score: 1

      Here is what you said:

      It seems unlikely to me that any 20-30 year-old piece of code would adequately represent good design principles, have good documentation, and be well-understood. Most of the software rewrites I've seen are done not just because the body of code is dysfunctional, but because the design and implementation are out-of-touch with modern principles and techniques. Like something that should have been O-O but wasn't, and looks like cruft because the design-paradigm just wasn't well-known; or the design wasn't scalable in the right places.

      The key part that I looked at is this:

      software rewrites I've seen are done not just because the body of code is dysfunctional, but because the design and implementation are out-of-touch with modern principles and techniques

      What I am saying is that the only time companies should upgrade their software is when it is dysfunctional, and you are saying that you would also spend the money to change the code just to bring it to a modern design principles.

      Perhaps you you implied that you would upgrade to O-O code only if it paid for itself, and just leave it alone or have them hire a Cobol programmer to fix a problem if it didn't. But it didn't read that way to me.

      One of my pet peeves is upgrading to the 'new fangled thing' when it is not needed. I agree O-O is far better... heck, even C is far better than Cobol, but if a company doesn't have anything in the works to harness the power of O-O code, then I would leave the Cobol be... even if something needed fixing or tweaking and they had to hire a Cobol programmer. I apologize for sounding so harsh.

      I have seen 30 year old code and older in use that is being maintained by 40 year olds (and younger) who were hired to replace the 65 year olds. And the only time I have seen the code replaced was if there was a business case for it. If there is a strong business case that says there won't be any more Cobol programmers alive soon, then so be it (but I don't believe that will happen). I too have seen the cases where a company has been short sighted and early retired a bunch of programmers who maintained their business systems leaving one 'get hit by a bus' weak link programmer. But that is a problem with short sighted/bad management and not the software. I think it's more akin to hiring visual basic .Net programmers to maintain Java code.

      Anyway, as I alluded to in my previous post, after cobbling together so many different systems over 30 or 40 years, there will certainly come a time when there is a good business case to make the change to a modern design. I wonder how long our new code will last before our modern 'the right way' designs also become obsolete. ;-)

      --
      -- I ignore anonymous replies to my comments and postings.
    23. Re:It has been said... by Gr8Apes · · Score: 1

      Your statement is true if and only if that system is truly legacy and never touched.

      If there are any changes made to it on anything approaching a regular basis, even simple ones, it is time to seriously look at converting the system now. (And you will be making changes, because SOX/SEC/etc do/will require it)

      COBOL is a hopelessly crappy language for large-scale business programs. I've seen a cobbled together COBOL program that is only about 15 years old, and it took a COBOL expert that had worked with the system for years 8 months just to trace the "valid" logic path for payment processing. There were all these dead-end branches and things that no one had ever bothered to clean up, just add another if statement to nullify the branch with no documentation. Fortunately, I only had to interface with the code, not work with it.

      Java (or even C#) is much more suited to business programming, and the design patterns brought out since even the early 90s will have a huge positive impact on the company's ability to quickly adapt to the changing needs of the future.

      --
      The cesspool just got a check and balance.
    24. Re:It has been said... by larry+bagina · · Score: 1

      Interesting example... (virtually) every tex binary is built with web2c which converts the TeX WEB/Pascal source code to C. Literate Programming and WEB are both mindshare failures.

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

  2. Easy Solution by minginqunt · · Score: 3, Funny

    Modernize? Pah.

    Why not just rewrite it in PHP. Another 30 years of guaranteed fat support contracts. Always think of your potential pay-packet.

    1. Re:Easy Solution by eln · · Score: 5, Funny

      Don't even suggest writing it in PHP, because then we'll spend the next 5 years arguing over how it should be done. You'll end up with an endless argument about whether it should be done in PHP or Python. Then a group of crackpots will pipe up from the corner that it should all be done in Ruby on Rails. Then a single scruffy looking dude will say the whole thing could be done in 5 minutes with 3 lines of Perl, and in fact he just wrote it. The others will unite for 5 seconds, long enough to say Perl is an ugly language, and resume their argument.

      This will go on for years until the executives give up and hire an outside consultant who will do the whole thing in Java. It will be bloated and inefficient, and the UI will be ugly. People will begin dreaming about rewriting it. Eventually, someone will suggest re-writing the whole thing in PHP...

    2. Re:Easy Solution by NewWorldDan · · Score: 3, Insightful

      Modernize - the bottomless pit to throw consulting dollars into. Most attempts to rewrite a legacy app into a modern language have met with failure by way of the modern language becomming obsolete before the project is finished. One such project I witnessed ended up with 7 years of VB development being scrapped after a merger - in favor of the other company's unfinished conversion of their legacy app. Either way, there was a scheduled conversion from VB6 to .NET that hadn't even begun (and the app still was still heavily dependent on the legacy app to finish most tasks.) Ugh.

    3. Re:Easy Solution by Anonymous Coward · · Score: 0

      DONE! Open source ERP/VE business engine in PHP/Postgresql/Apache and Mozilla's XULRunner client.

      http://www.venture.kdsi.net/

    4. Re:Easy Solution by plopez · · Score: 3, Funny

      You forgot:

      "While the FOSS zealots are flaming each other a MS partner shows up and sells them a set of cut rate licenses and thells them how easy it is to develop in VB .Net. When the programming staff here of this they quit. "No problem" says the partner, who then introduces them to an Indian offshoring company who sells them a bushel of VB programmers. THe VB programmers muck up the job, requiring bringing in another consulting firm. The consulting firm says "No wonder you can't get it to work, you need to upgrade to the latest MS software!" and sell mgt a firkin of rather more expensive licenses.

      The offshoring company still doesn't get it so mgt decides to reel the project back in. They hire a hogshead of onshore VB programmers who kind of sort of get it to work, though it still relies on the legacy system to do the heavy lifting. The project is deemed a success, and goes into a (very expensive) maintnenence mode. The managers spruce up thier resumes and bail.

      Meanwhile, in the basement grandpa/ma is sitting in a rocker whittling a new toothpick and keeping the legacy system running. Day by day grandpa/ma marks off the days to retirement after which all hell will break loose. Unless you hire gramps back as a consultant at 3x previous salary".

      There, hope this helps.

      --
      putting the 'B' in LGBTQ+
    5. Re:Easy Solution by IdleTime · · Score: 0, Redundant

      I'm sure you are an expert on COBOL since you so easy can determine it is possible to rewrite all the business applications in PHP. Do you know why COBOL is still used?

      I haven't written COBOL in close to 20 years, but I do know that you will have a problem doing the same tasks in a different language as easy as it is done on COBOL. PHP got to be the worst alternative, I would rather rewrite it in APL than PHP.

      --
      If you mod me down, I *will* introduce you to my sister!
    6. Re:Easy Solution by Anonymous Coward · · Score: 0

      The above mentioned system was rewritten from a COBOL ERP originally written in the mid-70's over the last four years.

    7. Re:Easy Solution by rbanffy · · Score: 2, Insightful

      I think that rewriting it on VB is somehow related to the repeated failures.

      VB is nice for the small things or even for the unambitious GUI layer of something larger, but it is just not suited for long-life projects - it introduces too much ugliness too early into the product life and maintenance usually makes it even uglier.

    8. Re:Easy Solution by billcopc · · Score: 1

      Wow, you've just described every goddamned business app I've ever been forced to use. I've yet to find a place where Java is the universally best tool for the job. The only thing Java is any good at is selling more Sun servers because it eats CPU cycles like popcorn. So then, why does every bullshitting developer on the planet know Java and nothing else ? I wouldn't touch it with a double-bagged 10-foot pole. We have a great need for simplified, rapid-development tools for the zillions of business apps out there. How hard should it be to fetch a few records, display them, validate edits and ship them back to the DB ? Ruby on Rails seems to do a fair job of this, but the web browser is a horrible choice for a client.. what the industry needs is something like Visual Ruby on Rails Terminal Server, kinda deal. Ridiculously fast development, easy enough that even if you hired the worst consultant on the planet, he could still produce a working app. The terminal server aspect is to avoid having to maintain client installations and simplify hardware support; just plug in one of those iMac-style terminals like you see at checkout counters and let the server do the heavy lifting... if a terminal quits on ya, rip the sucker out and plug in a spare for minimal downtime.

      That's what I would see as a 21st-century replacement for COBOL. The same thin-client model but with a better backend and simplified, pattern-driven development. Every business app is more or less the same set of processes and paradigms, just combined and presented in different arrangements.

      --
      -Billco, Fnarg.com
    9. Re:Easy Solution by jrockway · · Score: 2, Insightful

      Java is popular because strong typing prevents bad programmers from being stupid. If your application is designed by one intelligent architect, most of the coding can be done by code monkeys without causing too much damage (especially if the architecture team writes good automatic tests). With PHP, the code monkeys are going to make a mess. The compiler won't tell them that you can't return strings from functions that are supposed to return integers, etc. If it compiles, you know they're going to ship it. Java does strict checking and won't let people screw things up too badly.

      OTOH, if your team is a bunch of good programmers, though, then Java's probably not a good solution. Use something like Perl or Haskell and everyone will be much happier. When you have people that know how to properly bend the rules and understand the consequences, Java is too constraining. (Which is why I use Perl for my personal projects. Wonderfully expressive.)

      --
      My other car is first.
    10. Re:Easy Solution by hobo+sapiens · · Score: 1

      I think I agree with you. I recently converted a large website to Oracle/Linux/Apache/ColdFusion from SQL Server/IIS/ASP/ColdFusion becuase of changing company standards where I work. When we presented our results to some executives, we were met with a whole lot of "so what?". Nobody cares about which platform something is on as long as it doesn't cause too many headaches, in other words, cost too much to maintain.

      The other problem with conversion is all of the feature creep that comes with it. Everyone wants to "Just slip in one more thing".

      If you must convert, then hire good programmers and let them release it When It's Done. That's the only way to get things done. Of course, large enterprises cannot understand this concept. No, they'd rather pay 1000 Indians for two years to do something badly but with a very formal timeline. Somehow this is "better" than hiring 50 competent programmers, paying them well, leaving them alone, and then letting them get it right. It would seem the latter approach is a money pit, but in reality I'd be willing to bet you'd get it better, cheaper, and faster.

      --
      blah blah blah
    11. Re:Easy Solution by NewWorldDan · · Score: 3, Insightful

      Actually, it's been my experiance that if you wait to relese When It's Done, it'll never be done. At some point, you have to hit the ground running and work with what you've got. That's actually how a lot of those old COBOL systems were built. They got to around 95% and found out what all the odd little business rules needed to be by actually using the system. That's what makes legacy projects such a daunting task; the core application isn't too difficult, it's 30 years of business rules that are embedded in the code (and no one knows what they are, where they are, or even why they're there. But when they dissapear, you find out about them fast).

    12. Re:Easy Solution by AArnott · · Score: 1

      Keep it in Cobol. Compile it with a Cobol.NET compiler, and reap the benefits for years to come without introducing any bugs, and leveraging the code in new "modern technology" projects. Heck, with IKVM you could even leverage the Cobol.NET assemblies from Java.

    13. Re:Easy Solution by try_anything · · Score: 2, Funny
      Java is popular because strong typing prevents bad programmers from being stupid.

      Not really. Compile-time type checking catches a certain amount of absent-mindedness and serves as a bit of extra documentation, no more. What Java really does is force people to do things the long, simple, stupid way instead of the clever way. Brian Kernighan wrote, "Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." The same goes double for your coworkers, who did not write the code in the first place. Many people do not have enough discipline to refrain from cleverness in Perl or Haskell, especially Perl, where one person's everyday tool is another person's obscure little corner of the language.

    14. Re:Easy Solution by jrockway · · Score: 1

      > Brian Kernighan wrote, "Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it."

      Basing your life on a cute saying is probably a bad idea.

      --
      My other car is first.
    15. Re:Easy Solution by ejp · · Score: 1, Funny

      Heck, I can do it in 2 lines of perl! :-)

    16. Re:Easy Solution by Anonymous Coward · · Score: 0

      >Not really. Compile-time type checking catches a certain amount of absent-mindedness and serves as a bit of extra documentation, no more. Good lord you must be an idiot. It does far more than catch "certain amount of absent-mindedness" and a bit of docmentation, beyond how much it allows the ide to help you. Why is it you think that all back-end business type logic is nearly always written in a static language. In fact I beg you to find one that isn't.

    17. Re:Easy Solution by try_anything · · Score: 1
      Basing your life on a cute saying is probably a bad idea.

      I base my nontechnical decisions on the lyrics to the Fraggle Rock theme song.

    18. Re:Easy Solution by try_anything · · Score: 1
      "Documentation" is exactly why the IDE becomes more useful -- it knows things about the code that it would not otherwise know.

      And yes, absent-mindedness is what type checking catches. When you do something so off-the-wall wrong that the types aren't correct, it's because you weren't paying attention, made a major brain fart, forget to finish typing an expression, mixed up the names of two methods, forgot to implement one branch of the control flow, that kind of thing. That's absent-mindedness.

      Mistakes of understanding, where the programmer can actually look carefully at the code and think it's right when it isn't, are rarely caught by the Java type system, because they result in types being correct and values being wrong. You can split types into subclasses according to their semantics (instead of just behavior) and put narrowing casts in your code to serve as logical assertions, but the Java compiler will not analyze your code to see if those assertions might be triggered -- the Java type system is not very helpful in that respect. Therefore, mistakes of understanding slip through, and compile-time type checking mostly catches mistakes of inattention.

    19. Re:Easy Solution by billcopc · · Score: 1

      By that logic, everyone should be using QuickBasic. See, I'd rather invest my time designing functionality than battling wits with the compiler/interpreter. Maybe instead of designing nerf tools for dummies, we could just learn to cull the bad programmers. Just because some people have Down Syndrome doesn't mean we should all be driving around in bumper cars.

      --
      -Billco, Fnarg.com
    20. Re:Easy Solution by WilliamSChips · · Score: 1

      "A witty saying proves nothing"-Voltaire

      --
      Please, for the good of Humanity, vote Obama.
    21. Re:Easy Solution by An+ominous+Cow+art · · Score: 1

      "Voltaire is dead." -- God

    22. Re:Easy Solution by Ben+Hutchings · · Score: 1

      I wouldn't say Java has "strong typing". It's stronger than C, but it has some nasty flaws:

      1. Strings and integers can be added together.
      2. A parameter or other variable of object type (or rather pointer-to-object type) can always be null, so far as the language is concerned. This weakens the type invariants of any pointer-to-object type. Worse, it encourages the use of null as a special case whose implementation is scattered across users of the class, instead of the null object pattern.
      3. int can be coerced to float, losing precision. There are no run-time checks against this.
      4. There are no static or run-time checks against integer overflow.
      5. A value of type A[] can be converted to type B[] where A is a subclass or implementer of B. However, a container-of-subclass is not a container-of-superclass unless the container types are immutable. Any attempt to assign an object of type B into an array-of-A that's pretending to be an array-of-B will result in an ArrayStoreException at run-time. The same problem applies to other container types, not to mention the pre-generic containers-of-Object.

      Not that Java is particularly bad in this. Comparing with my favourite languages: C++ has problem 1 for the built-in string type (but not std::string) with weird semantics, a worse version of problem 3 (narrowing numeric conversions are all implicit), and a worse version of problem 4 (undefined behaviour on overflow); Python has no static type checking at all, so it suffers from problems 2 and 5 (though entirely dynamic type checking aka "duck typing" can be a very useful feature if you get used to it).

    23. Re:Easy Solution by WilliamSChips · · Score: 1

      "He said Nietzsche there, you fool!"-Oscar Wilde

      --
      Please, for the good of Humanity, vote Obama.
    24. Re:Easy Solution by Gr8Apes · · Score: 1
      Your post is a reason there's so much "bad" java code out there. I'm assuming here that by "strongly typed", you have unique objects designed to do everything, and everything has its own object. This is the torrid hell I've been trying to escape from for years, because many "architects" wouldn't know a good design if it ran over them, backed up, said sorry mate, I needed to turn here, and then peels out on them to make a left in front of oncoming traffic.

      For example, what are the most commonly reused bits of code out there in Java?
      • Collections classes (Lists and Maps)
      • JDBC (Isn't it nice you don't have to have an OracleJDBCConnection, MySqlJDBCConnection, IbmDb2JDBCConnection, or, even worse, a BeaWeblogic8_0JDBCConnection, BeaWebLogic8_1JDBCConnection, etc set?)
      • JMS (just pick your nightmare implementation here.... ;)


      Those are the top ones that I'm using today.

      Now, for generics, introduced in Java5, yeah, they're ok in some instances. They trade one set of code writing (casting) for another (template specification). But, all things considered, I'd rather do either of these than be involved in a cut-n-paste hell where one logic change requires changing upteen files, because a swarm of 40 code-monkeys worked on the original with no clue that they were copying each other, because no one had the slightest idea what architecture and design were really about and that 800 classes could really have been accomplished by 1 or 2 programmers in the same time frame with only 20 classes with a properly designed architecture. Oh, and testing would have been significantly reduced as well, since the same code would be reused over and over and over....
      --
      The cesspool just got a check and balance.
    25. Re:Easy Solution by Anonymous Coward · · Score: 0

      ah ok Lets make everything completely generic up front with loads of potential problems later as a variety of people/use cases share the code. That way they can have no idea where the problem is without crazing debugging, that you would mostly have had for free in a static compiler. Please. Why do you think static languages are used for nearly all enterprise type projects and that continues to remain unchanged since the first days of dynamically typed languages. Their useful for certain quick projects or rapidly changing environments, but for backend business logic where code is shared among developers it's always a static langauge. Find me a desktop program or financiall application etc etc etc that isn;t written with a static language.

    26. Re:Easy Solution by Gr8Apes · · Score: 1

      ah ok Lets make everything completely generic up front with loads of potential problems later as a variety of people/use cases share the code. That way they can have no idea where the problem is without crazing debugging, that you would mostly have had for free in a static compiler. 1) Java is a statically typed language. 2) You've given an extreme case going way outside my use-case. I didn't say make everything generic, as obviously only utilities can be completely generic like the Collections classes. JDBC, for example, is more restrictive. Those large bits of commonly used code are hidden behind defined interfaces that are weakly typed. Life is much easier in the code-reuse path this way.

      I've worked on the everything's strongly typed system that had a framework designed to map objects because each layer has its own types. The mappers are external and generally invoked via reflection or fed via some reflection based system like Spring. When it blows up, the exceptions are completely swallowed because the framework isn't allowed to print stack traces by arbitrary group C, and thus you have a wonderfully easy to debug system.

      Weakly typed is not the same as no type. When a collections class has an issue, I know immediately what went wrong and where. Even JDBC and JMS issues are usually pretty easy to dig through. The strongly typed frameworks with their custom exception handling systems are a nightmare to develop and to support. (I'm on project #3 of this nature at the moment, and they've all got the same weaknesses)
      --
      The cesspool just got a check and balance.
  3. 'legacy modernization' by Fr05t · · Score: 1, Informative

    No.. it had it's time, please let it die.

    1. Re:'legacy modernization' by Anonymous Coward · · Score: 1, Funny
      No.. it had it's time, please let it die.


      Yeah, when I saw "Modernize" and "Cobol" in the same sentence I wanted to gouge my eyes out with a Kentucky Fried Chicken spork.

      Cobol makes baby Jebus cry!
    2. Re:'legacy modernization' by Anonymous Coward · · Score: 0

      Incorrect use of the apostrophe has had ITS (note the clever use of the possessive ITS) time as well, why won't you let it die?

    3. Re:'legacy modernization' by Tackhead · · Score: 4, Funny
      > Yeah, when I saw "Modernize" and "Cobol" in the same sentence I wanted to gouge my eyes out with a Kentucky Fried Chicken spork.

      Add MODERNIZATION to COBOL giving (MESS given by ADDITION of (SPORK given by ADDITION of FORK to SPOON) to EYES)

      That's the modern version. It woulda taken me three lines to do it the old way.

    4. Re:'legacy modernization' by nuzak · · Score: 2, Insightful

      ABEND: Syntax error.

      You forgot the period.

      --
      Done with slashdot, done with nerds, getting a life.
    5. Re:'legacy modernization' by geekoid · · Score: 1

      No. It works very well for what it does. Better then anything else.

      It is safer to program with, easy to engineer(evey wonder why MS doesn't talk about engineering with their products?), mature, well supported, fast, and trusted.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    6. Re:'legacy modernization' by TheCrayfish · · Score: 2, Interesting
      No.. it had it's time, please let it die.

      Huh? How does this comment apply to something abstract like a programming language? The COBOL language didn't degrade over time, yet somehow everyone's perception of it went from "this is the tool we need to use to do everything" to "please let it die."

      Like every other widely-used language, COBOL has its place. You might not want to write a video game in it, but you also wouldn't want to write a billing system in C++.

    7. Re:'legacy modernization' by MidnightLog · · Score: 1

      You're absolutely right! Not only are you correct when you say the "COBOL language didn't degrade over time", but you're right when you discuss people's perceptions. But I'm not sure when the perceptions changed. When I had a chance to learn COBOL in college 20 years ago, my thoughts on COBOL were: "No.. it had it's time, please let it die."

      --

      To understand what's right and wrong, the lawyers work in shifts ...

    8. Re:'legacy modernization' by gwyrdd+benyw · · Score: 1
      ...but you also wouldn't want to write a billing system in C++.
      Why?
      --

      I adblock all animated gifs.
      Blessed be the prime numbered slashdotters
    9. Re:'legacy modernization' by John+Courtland · · Score: 1

      Also gotta start in col 8 IIRC.

      --
      Slashdot is proof that Sturgeon's Law applies to mankind.
    10. Re:'legacy modernization' by Shads · · Score: 1

      Thanks a lot, you just caused me to pee myself laughing.

      Do you know how hard it is to get urine stains out of suede?

      --
      Shadus
  4. It has worked well for MS and anti-virals by Anonymous Coward · · Score: 1, Insightful

    Seriously, MS has had no real reason to do a secure OS. In fact, the opposite is true. It is the add-ons that make money for everybody. Of course, with apple having been secured and linux up and coming, MS is finally under pressure to do the right thing.

  5. But it is modern! by (H)elix1 · · Score: 2, Funny

    One of my friends who ends up porting and bridging Cobol systems was quick to inform me, "COBOL is OO, look, see, print line is extending space".

    1. Re:But it is modern! by srmalloy · · Score: 2, Funny

      I understand there is already an object-oriented version of COBOL extant, which, according to the existing naming convention for the OO version of an existing language, was called ADD_ONE_TO_COBOL_GIVING_COBOL.

    2. Re:But it is modern! by jaavaaguru · · Score: 2, Informative

      There are a few implementations of object oriented COBOL for .Net out there...

      Fujitsu COBOL and NetCOBOL for .NET
      Micro Focus Net Express

      Both of those are rather expensive, and I've not seen any open-source ones yet. I thought it would be fun to write a COBOL compiler for .Net as a pet project. I've started it, but haven't had much time to spend on it recently. My plan was to get it to a point where it can do some useful things then put it on sourceforge.

    3. Re:But it is modern! by tchuladdiass · · Score: 1

      It's nice to see another language designer on here. I've recently released my pet project on sourceforge, called 2e (as in two e's, or ee, which stands for expression evaluator). Feel free to grab any ideas / code from it -- currently it is mostly just an expression evaluator, but it supports function calls (built-in and user-defined), and it supports an inline conditional like C, plus an iterative inline conditional -- so it can get by without an if/else or while/do statements.
      But the code is designed to be embeddable, and if you want to you can rip apart the expression evaluator and integrate it into other interpreters.

    4. Re:But it is modern! by dave562 · · Score: 1
      One of my clients runs an application that was developed in Fujitsu COBOL .Net and let me tell you that I hate supporting it. I don't know much about COBOL other than my dad programmed in COBOL back in the 1970s. But from having to deal with the black box that is the application my client uses, COBOL .Net seems to be really network unfriendly. In my case the client has about 30 workstations running this one application. The one application opens the same set of about 10-15 files once for every user the logged on. Running a report grinds the entire system to a halt because the application has to copy the entire data file to the workstation (about 50-100 megs of data) do the index, sort, etc functions and then print the results. The database (and I use the term very lightly) indexes get corrupted at least two to three times a month. The application developer's response is, "The server locked a file, reboot the server." When asked why the server locked a file, the response is always, "Well, there is something wrong with the network." Keep in mind the server is a relatively new Proliant ML370 G4 and the network is running 3com 4400 series switches that I have been all over with Network Manager to ensure that there aren't any collisions, CRC errors, or any of those other things that you sometimes see.

      Going back to the language itself, all of the data is kept in comma delimited flat table files. Whenever the indexes get really screwed up the developer has to run a bunch of cleanup utilities that take a good six hours or so to run.

      Perhaps needless to say, I'm looking around for some sort of SQL based alternative. =) But of course the client is cheap as hell and they'd rather pay for the downtime than finance the cost of developing a replacement application for a pretty niche market (waste management).

    5. Re:But it is modern! by satherto · · Score: 1

      It has probably already been posted but I haven't noticed the open source COBOL compilers that already exist so here are a couple of free Cobol compilers that I've played with.

        Cobol for GCC http://cobolforgcc.sourceforge.net/ is dead

        Tiny Cobol http://tiny-cobol.sourceforge.net/index.php last release was in 2005

        OpenCobol http://www.opencobol.org/ Still has one developer working on it.

      I like the OpenCOBOL the best, it takes your COBOL code, converts it to C, then compiles it using GCC. You might be able to kick start your project by looking at what these guys have done.

      --
      ----
    6. Re:But it is modern! by Anonymous Coward · · Score: 0

      Don't blame the language for a shitty application written in the language.
      None of the stuff about which you are complaining is COBOL's fault.
      There're plenty of crappy applications written in C, JAVA, Python, Ruby, etc.

  6. yes COBOL and ADA by josepha48 · · Score: 1

    ADA is still used by some goverment defense agencies also. It would be nice if there was a nice open source COBOL IDE. Funny thing is that all these new languages, fix issues that are not huge issues to most to begin with. I'm sure if someone made it easy to call web services from COBOL and made it possible to do OOP in COBOL it would be more accepted, but because it is a very primitive language people hate it.

    --

    Only 'flamers' flame!
    Does slashdot hate my posts?

    1. Re:yes COBOL and ADA by 140Mandak262Jamuna · · Score: 1

      Way back in 1990, I had a friend who was a Grad Teaching Assistant in a business school. He was joking about how easy it is to get papers published by putting together buzzwords. He said, "If I say Object Oriented Cobol in the title, I can get it published". The next day he said, "too late, some one has already published a paper on OO COBOL". The idea is that old. For what it is worth, google finds: http://www.google.com/search?hl=en&q=%22object+ori ented+cobol%22&btnG=Google+Search

      --
      sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
    2. Re:yes COBOL and ADA by tcopeland · · Score: 1

      > It would be nice if there was a nice open source COBOL IDE

      A starting point might be this JavaCC grammar for COBOL.

    3. Re:yes COBOL and ADA by plopez · · Score: 2, Interesting

      I'm sure if someone made it easy to call web services from COBOL

      I believe WebSphere does this. Supposedly you can pump COBOL data into EJB applications.

      see:
      http://www-306.ibm.com/software/data/ims/imsjava/j avcobol.html

      --
      putting the 'B' in LGBTQ+
    4. Re:yes COBOL and ADA by Anonymous Coward · · Score: 0

      COBOL has been OOP for quite some time, and is fully capable of both calling WebServices and defining WebServices. COBOL is still under active development itself. The last COBOL standard, IIRC, was set in 2003.

    5. Re:yes COBOL and ADA by bishiraver · · Score: 1

      Envyr Corporation has a cgi-based web services platform for COBOL applications.

    6. Re:yes COBOL and ADA by drxenos · · Score: 1

      No, we do not use "ADA", but we do use Ada.

      --


      Anonymous Cowards suck.
    7. Re:yes COBOL and ADA by T.E.D. · · Score: 2, Informative

      I notice someone has already corrected you on the proper capitalization of Ada. It seems a silly thing to get sensitive about, right? But there's a good reason it gets folk's panties in a bunch. For one thing, it is nearly always done by someone who doesn't know a thing about the language, doesn't care to know a thing about it, and wants to be able to dismiss it (without getting into messy details, like its actual qualities).

      That would be enough to annoy many people by itself. Additionally, by capitalizing it you are implicitly categorizing it with older acronym languages like COBOL, FORTRAN. PL/I, rather than its proper contemporaries like Modula-2, Oberon, Java, etc.

      That's in terms of age. In terms of use and philosophy, probably the closest language to Ada that most folks here would be familiar with is Java. They both had the same design goals of safety, readability, and reliability. The main difference between them is that Java's designers thought that C-style syntax's marketability outweighed its readability drawbacks. Most of the other differences between the languages are in emphasis.

      Anyway, I think you can probably see where Ada users would get a little ticked at someone trying to dismiss it at an ancient COBOL-like language. Try talking dismissively about "that ancient language JAVA", and see what kind of responses you get.

    8. Re:yes COBOL and ADA by mqduck · · Score: 1

      Ah, ADA. It's got the coolest possible name a programming language could have. Too bad it's almost as dead as its namesake.

      --
      Property is theft.
    9. Re:yes COBOL and ADA by drxenos · · Score: 1

      Actually, Fortran is no longer capitalized.

      --


      Anonymous Cowards suck.
    10. Re:yes COBOL and ADA by Anonymous Coward · · Score: 0

      Wow, what an ignore statement. I obviously know nothing about Ada, nor work in the real-time embedded world.

  7. And if you are now compiling open-cobol to play .. by lysdexia · · Score: 0

    Remember: columns 1-6 are sequence number, column 7 is indicator.

    Go forth an set thy tabstop to 8 and you should be able to make your hello.cob compile! :-)

  8. COBOL lives because it's clear by Gorm+the+DBA · · Score: 4, Insightful
    COBOL lives, some 20 years after it's death had been predicted, and thrives. Why?

    Because, it makes sense.

    You don't have to develop corporate variable naming standards, coding standards, and all that, because the language makes it happen automatically.

    You can take a fresh wet behind the ears kid, give him the code, and he can figure out what's going on without any significant trouble, because it happens in order, there is none of this fancy renaming variables on the fly and obfuscating code with magic numbers stuff that is all the rage in C++, Java, and other "modern" languages.

    You want to add 2 and 2? Great, you get 4, which is what the accountants want. You can't program 2+2 to equal 27 like you can in C++. One operation does one thing, does it well and accurately, and moves on.

    Business only has one real question: "How much money did I make last year?" COBOL provides all the tools to answer it.

    That is why COBOL lives, and always will.

    1. Re:COBOL lives because it's clear by ackthpt · · Score: 3, Interesting

      Honestly. You have some points, but one of the greatest in COBOL's favour is it's pervasivness.

      A few years ago I was working at a job where we were doing everything in a 4th Generation Language. We got outsourced (thanks to a CIO who just popped in for a couple years to pad his resumee) to a company which had an integrated product written entirely in COBOL. (Of course they ran their code on an HP platform, which by now has been retired and HP support will soon, also end. COBOL survives because people still develop and keep old business apps written in it. Some work, by code, never changes.

      The other major advantage of COBOL is it's library for handling business computation and I/O. That stuff exists in other languanges, but as an example with Microsoft's Visual Studio, it's all done differently (and somewhat stupidly re-defining formatting for the nth time.)

      --

      A feeling of having made the same mistake before: Deja Foobar
    2. Re:COBOL lives because it's clear by kfg · · Score: 1, Insightful

      COBOL lives, some 20 years after it's death had been predicted, and thrives. Why?

      Because people don't make sense.

      You want to add 2 and 2? Great, you get 4, which is what the accountants want.

      2+2=4 is APL, not COBOL.

      Business only has one real question: "How much money did I make last year?" COBOL provides all the tools to answer it.

      Well sheeeeeeeeeeeeeeeeeit! It understands the tax code? Why didn't you say so? I'm sold. Hire it as my accountant.

      KFG

    3. Re:COBOL lives because it's clear by plopez · · Score: 4, Interesting

      You can take a fresh wet behind the ears kid, give him the code, and he can figure out what's going on without any significant trouble

      I disagree. I once was that kid. It is much harder than you imagine. Why?

      1) Sphaghetti code. Lots and lots of sphaghetti code. COBOL, despite improvements, is still not much more structured than assembly. It was doing maint. programming in COBOL that I vowed in all future development to try to be kind to the maint. programmer.

      2) The kid still has to learn the problem domain. I do not understand the mind set where a person says "I don't need to know the busness, just let me code it". With out the background knowledge you never know if what you are doing is right, reasonable, solves a domain problem or if it over laps another part of the problem domain so that code can be shared. In fact, learning the problem you are solving is the hardest part.

      --
      putting the 'B' in LGBTQ+
    4. Re:COBOL lives because it's clear by COMON$ · · Score: 2, Interesting
      It lives because people are unwilling to move on. There are plenty of languages you can teach any bum off the street in a matter of minutes, VB for instance. It is just like Gov't work, it stays the same not because it is efficinet and easy, but because people fight change at every corner. COBOL will stay around for another 15 years until all the COBOL bigots die off. No CS program teaches the crap anymore, at least not that I know of. In the meantime COBOL devs are the managers out there, it is the only thing they really understand and therefore as long as it is their fight, they will stay with COBOL. In 50 years we will be having the same argument about C++, probably worse because at least the old devs out there today knew how to think on their feet, whereas all these get rich quick programmers today attend a 2 year undergrad, or pick up a C++ for dummies and will climb the ladder pawning off the one skill they have.

      Ya I am cynical but this is just the way the tech market works.

      --
      CS: It is all sink or swim...oh and did I mention there are sharks in that water?
    5. Re:COBOL lives because it's clear by neimon · · Score: 2, Insightful

      THANK you. I realize that an entire two generations of programmers have been brainwashed into thinking that the process is the first deliverable in a programming job, but a lot of us older guys think that, gee, we should plan how the thing works and freakin' program it, not argue over how this method and that inheritance goes here.

      You think people didn't know how to program in the past? Read about how programmers used to optimize the placement of their code on drum storage to take into account the latency of reads.

      Too much about HOW to program, and not enough about actually getting something done, is what I've seen over and over and over. Style style style. Working code is only a byproduct, and who cares if it's error-checked or idiot-proofed? We've got Objects, dammit! Look! Look! We did it all tidy! ANd we used the latest silver bullet!

      Maybe we should take some of the lessons of the past and look at our current tools and say "hmm, you know, we could probably rethink all of this and make it easier instead of harder."

      Sorry. End of rant. I'm old. (gums his boiled chicken in the corner)

    6. Re:COBOL lives because it's clear by Exception+Safe · · Score: 1

      What's clear about

                  MULTIPLY B BY B GIVING B-SQUARED.
                  MULTIPLY 4 BY A GIVING FOUR-A.
                  MULTIPLY FOUR-A BY C GIVING FOUR-A-C.
                  SUBTRACT FOUR-A-C FROM B-SQUARED GIVING RESULT-1.
                  COMPUTE RESULT-2 = RESULT-1 ** .5.
                  SUBTRACT B FROM RESULT-2 GIVING NUMERATOR.
                  MULTIPLY 2 BY A GIVING DENOMINATOR.
                  DIVIDE NUMERATOR BY DENOMINATOR GIVING X.

      ?

      COBOL gives the illusion of clarity to people who can't program, because it contains some familiar words. But by time someone's accumulated experience of programming has moved into double figures (counted in minutes, not years) it becomes clear that this 'clarity' is nothing but obfuscation. Quite simply, few people can see at a glance what that code does, despite the illusion that it's self-documenting and made from clearly understandable elements.

    7. Re:COBOL lives because it's clear by svallarian · · Score: 1

      COBOL and RPG are both heavily used by furniture plants here in Mississippi. IBM did one hellva sales job 20 years ago. We still run our legacy billing system off an original IBM designed cobol application...we've migrated it to Dexterity/VB/VBA, but guess what..it scales nowhere near as well as the COBOL application.

      As for colleges, our local community college has a two year program in C++/VB/COBOL/RPG that fits the needs of our local employers pretty well.

      --
      I patented screwing your mom. But it got revoked for "prior art."
    8. Re:COBOL lives because it's clear by Anonymous Coward · · Score: 0
      What a nice, opinion-filled, and grossly incorrect piece you have there.

      You don't have to develop corporate variable naming standards, coding standards, and all that, because the language makes it happen automatically.


      Really? Cobol in no way dictates how you name your data (I shalt not go as far as calling them variables,
      because I would not call the Cobol way of declaring or using data items with the term variable). Nor does
      it dictate how you name your code blocks (no, we don't have functions, we are deeply in the stone age
      and we only have a sugar-coated goto, called perform). It imposes certain restrictions, but those restrictions
      do not magically make the names instantly understandable to every one, for that would require hitherto unknown
      species of black magic, or silver bullets, if you happen to have them stockpiled. In your mom's basement, that
      is.

      he can figure out what's going on without any significant trouble, because it happens in order


      In order as specified by the programmer of course, not any easier than with other programming languages..

      there is none of this fancy renaming variables on the fly


      And the keyword REDEFINES doesn't really exist, it is just a figment of imagination?

      and obfuscating code with magic numbers stuff that is all the rage in C++, Java, and other "modern" languages.


      Cobol does absolutely nothing to decrease the use of magic numbers, if the programmer desires to use them.

      You want to add 2 and 2? Great, you get 4, which is what the accountants want.


      And this is somehow a plus point for Cobol? ADD 2 TO 2 GIVING WHATEVER-RESULT? Sure, that's a very nice
      way to do simple additions.

      Business only has one real question: "How much money did I make last year?" COBOL provides all the tools to answer it.


      Cobol hardly provides you any tools, it has quite minimal libraries (compared to many other languages) and the
      language itself provides so little syntactic tools to express problems that it is incredibly tedious to program
      anything in Cobol, let alone anything that's supposed to look maintainable and remotely understandable.
    9. Re:COBOL lives because it's clear by Ranger96 · · Score: 1

      All of the obfuscation in your example is the fault of the programmer, not the language. The only COBOL keywords in your example are 'MULTIPLY', 'BY', 'GIVING', 'SUBTRACT', 'FROM', 'COMPUTE', and 'DIVIDE'. If the programmer had defined descriptive variable names that indicate what the value it contains represents, then the code would be much less obscure. For example (simplistic, I know):

      SUBTRACT TOTAL-EXPENSES FROM GROSS-SALES GIVING NET-PROFIT.

      is much more clear than:

      SUBTRACT TE FROM GS GIVING NP.

      --
      What has been will be again, what has been done will be done again; there is nothing new under the sun.-Ecclesiastes 1:9
    10. Re:COBOL lives because it's clear by Anonymous Coward · · Score: 0

      "It is just like Gov't work, it stays the same not because it is efficinet and easy, but because people fight change at every corner."

      There's a reason people fight change: They want to actually make a profit off the skills they learned. Modern markets move very quickly, by the time you get out of school many of your skills will be out-dated.

    11. Re:COBOL lives because it's clear by computational+super · · Score: 1
      You want to add 2 and 2? Great, you get 4, which is what the accountants want.

      Damn, dude... if the accountants didn't already know that, you've got bigger problems than which programming language to use.

      --
      Proud neuron in the Slashdot hivemind since 2002.
    12. Re:COBOL lives because it's clear by illegalcortex · · Score: 1

      I think that was (almost) the OP's point. The COBOL language had little to do with whether it was clear or not. Therefore, the COBOL language itself did not make it MORE clear than another language would have.

      On the other hand, the syntax of COBOL can make it harder to read even when programmed right. If you compare the following two lines of code, do you really thing the first is easier to read and understand than the second?

      SUBTRACT TOTAL-EXPENSES FROM GROSS-SALES GIVING NET-PROFIT.

      NET_PROFIT = GROSS_SALES - TOTAL_EXPENSES;

      This is especially true as you move out of "easy" stuff like in this example and move on to more complicated things that you don't already understand before seeing the code.

    13. Re:COBOL lives because it's clear by Guy+Harris · · Score: 1
      On the other hand, the syntax of COBOL can make it harder to read even when programmed right. If you compare the following two lines of code, do you really thing the first is easier to read and understand than the second?

      SUBTRACT TOTAL-EXPENSES FROM GROSS-SALES GIVING NET-PROFIT.

      NET_PROFIT = GROSS_SALES - TOTAL_EXPENSES;

      I like

      COMPUTE NET-PROFIT = GROSS-SALES - TOTAL-EXPENSES;

      myself, if for no other reason than that it probably pisses off the people who actually like verbose COBOL syntax.

    14. Re:COBOL lives because it's clear by dimeglio · · Score: 2, Interesting

      COBOL is such a deceiving language. When I was young, and this is a true story, I went to libraries as I was very interested in computers (early 70s). I pulled out this illustrated book on computers where they showed bits of code here and there. I saw this wonderful line:

      MOVE INVENTORY-IN TO INVENTORY-OUT.

      WOW! I say to myself... robotics! COBOL is able to control robots by moving inventory. I signed-up for three years of Data Processing only to find out that it in fact only moved data from one part of memory to another... I was very very disappointed.

      I bet you that's why COBOL is so popular. By being so verbose, it attracted massed of kids on false promises of what appeared to be the ability to control robots. That would never happen in C or Java.

      --
      Views expressed do not necessarily reflect those of the author.
    15. Re:COBOL lives because it's clear by QuasiEvil · · Score: 1

      2) The kid still has to learn the problem domain. I do not understand the mind set where a person says "I don't need to know the busness, just let me code it". With out the background knowledge you never know if what you are doing is right, reasonable, solves a domain problem or if it over laps another part of the problem domain so that code can be shared. In fact, learning the problem you are solving is the hardest part. Damn straight, and I'm glad somebody said it. There are hard programming problems out there, but for a large number of us who work for companies whose primary products are not software, usually getting your mind around the problem is worse than the software itself. The actual code is relatively easy. The problem the code needs to address is big, ugly, and complex like a fractal (every time you look at what you think is a solid edge - aka business rule - you find a zillion little exceptions). Why? Because this software has to model business realities that have evolved over decades.

      I work at a large transportation and logistics company. I'm an electrical engineer by degree and programmer by job, but my first responsibility is as a business analyst - understanding the problem, figuring out how to model it, and then figuring out how to use that model to make money for the company. I spend probably 60% of my time working on a clear understanding of the problem du jour, 30% trying to communicate it to others, and 10% actually writing code. Much of the stuff I work with is still backended with COBOL programs running on some IBM big iron. Why? Because there's 20 years of business logic wrapped up in there. It's organic, it's grown, and God help us if we have to replace it lock, stock, and barrel. Do we understand it? Yes, to 99% certainty. There's documentation, but understanding the solution means understanding all the problems and all the non-ideal things associated with moving trucks and planes out there in the world. There are a lot of things in there that look like blatant bugs unless you understand the nuances of the problem. However, I wouldn't even consider rewriting it, because it works, is maintainable, and the risks of omitting one of those esoteric rules are simply too high.

      COBOL, while I'm loathe to work in it, is a business reality for those of us with big legacy systems. Much like Fortran and good ol' ANSI C (still the most portable language in the world, as far as I'm concerned), it's not going anywhere any time soon.
    16. Re:COBOL lives because it's clear by illegalcortex · · Score: 1

      Yes, COMPUTE is definitely the way I'd go, too. I'm fine with verbosity, when it actually makes things CLEARER. Both the COMPUTE way and the non-COBOL way are clearer than "SUBTRACT TOTAL-EXPENSES FROM GROSS-SALES GIVING NET-PROFIT."

    17. Re:COBOL lives because it's clear by 644bd346996 · · Score: 1

      I don't know of any programmer that is unwilling to move on to a different language. I am pretty sure that is not what is holding things back.

      No matter how much programmers hate COBOL, it will stick around until all mission-critical software is rewritten in a different language. That will not happen until it makes economic sense for corporations to replace their critical systems. For the forseeable future, repairing or replacing the hardware will be simpler and cheaper than rewriting the software.

    18. Re:COBOL lives because it's clear by frank_adrian314159 · · Score: 1
      There are plenty of languages you can teach any bum off the street in a matter of minutes, VB for instance.

      Yes, same with COBOL (at least at the level of maintenance). Plus, they already have the licenses for the compiler and libraries and they already have the code. If the technology isn't busted, and you aren't planning major functionality updates, why break it? And, even if you are planning a major functionality update, is the cost of doing that in the currently existing technology greater than rewriting the application in the new technology while adding the new functionality?

      I'll give you a hint - in most cases, buying new, non-existent code, hardware, and licenses costs more than enhancing old, existent code.

      --
      That is all.
    19. Re:COBOL lives because it's clear by DarkOx · · Score: 1

      THANK YOU> I have only been out of school for about a year and only working professionaly as a developer for about three years. I do think you have said the most import thing in this entire discussion though. Business applications are NEVER techinically all that complex. I have developed GOOD(both in the minds of users and other programers) products with languages I had never used before I started on that particular task. If you are methodical about your codeing and have the doumentation you need availble you should be able to make just about any langue work. Methodical is important. JSP(as in structured programing) WORKS even in OO languages. There are sometimes complex problems with massive data volumes and such but the solutions are generally well known. They reason it is hard to get business applications right is that the business is usually complex, has complex rules with lots of exceptions. There is entirly too much focus on technial langauge and nameing standards and the like, design the applicaion correctly, document the design, and document the business rules the application implements. If you do these three things I don't care what languague you use, with what nameing conventions, or how big it is. You will have maintainable code.

      --
      Repeal the 17th Amendment TODAY! Also Please Read http://www.gnu.org/philosophy/right-to-read.html
    20. Re:COBOL lives because it's clear by Tablizer · · Score: 1

      Business only has one real question: "How much money did I make last year?" COBOL provides all the tools to answer it.

      I entirely disagree. Perhaps COBOL specializes in money transactions, but biz programming can get really complex. The main reason is that marketers, PHB's, and lawmakers dream up all kinds of crazy schemes to spam just the right customers with multinested discounts, or tinker with the biz logic with their own rules just to show who is boss.

      Other domains such as chemistry and physics are shaped by the laws of nature. Biz rules are often shaped by the whims of "creative" minds. This can make it hard to abstract out commonalities: the laws of nature don't change when you get a new boss, but biz rules do. Plus, they often want reports sliced and diced by a cartesian join of combinations of factors.

    21. Re:COBOL lives because it's clear by Anonymous Coward · · Score: 0

      You can't program 2+2 to equal 27 like you can in C++. Could somebody please show me how I can program in C++ so that 2+2 equal 27?
    22. Re:COBOL lives because it's clear by Anonymous Coward · · Score: 0

      after it's death

      "its".

    23. Re:COBOL lives because it's clear by sohp · · Score: 1

      COBOL has its dark corners. Aside from spaghetti code, there's things like MOVE CORRESPONDING, the ALTER verb (computed GOTO -- changes where the branch statement goes to at runtime). Not to mention potholes like lack of namespaces and various weirdnesses with modules in different source files, and you have a mess.

      On the positive side, COBOL is one of the few widely-used languages that has exact fixed-precision decimal arithmetic on big numbers. This is handy for things like money.

      Useful? Sure. Free of the 2nd, 3rd, and 4th generation features like abstract data types, namespaces and closures? Pretty much, enough to make it simplistic. Clear? Not in this universe.

    24. Re:COBOL lives because it's clear by schamarty · · Score: 1

      dont forget the 66-level RENAMES clause :-)

  9. Ooh, I'm quivering in my rocker by Ranger · · Score: 1

    and I can't wait for them to update FORTRAN. Oh, for the days of punch cards!

    --
    "You'll get nothing, and you'll like it!"
    1. Re:Ooh, I'm quivering in my rocker by lowen · · Score: 1

      They have. It's called Fortran95, and the GNU Compiler Collection supports it:
      $ gfortran --version
      GNU Fortran 95 (GCC) 4.1.1 20061011 (Red Hat 4.1.1-30)
      Copyright (C) 2006 Free Software Foundation, Inc.

      GNU Fortran comes with NO WARRANTY, to the extent permitted by law.
      You may redistribute copies of GNU Fortran
      under the terms of the GNU General Public License.
      For more information about these matters, see the file named COPYING

      This is from a Fedora 6 installation.

      I have a bunch (37MB) of highly specialized FORTRAN code out here; there are a number of scientific packages that still use FORTRAN code, because is works and the syntax for FORmula TRANslation is very simple and clean.

      You can even do CGI with FORTRAN. (Yes, you can: go to the fcc.gov website and search for FORTRAN).

      Code should not be modernized just for the sake of modernization, particularly when the language is not dead (and FORTRAN is not by any stretch dead). The heir apparent for FORTRAN would be Matlab (OSS equivalent is Octave).

    2. Re:Ooh, I'm quivering in my rocker by 15Bit · · Score: 1

      Err, Fortran is updated. See Fortran 95, and i believe also Fortran 2003. Large numbers of scientific programs (like molecular dynamics/weather forecasting/quantum mechanics etc) are still written in fortran cos it does maths very fast. There is a great deal of multithreading expertise in the fortran coding community. Indeed, buy a supercomputer (or supercomputing cluster) and one of the first things they'll ask is if you want a Fortran compiler with it.

    3. Re:Ooh, I'm quivering in my rocker by Ranger · · Score: 1

      It's clear from the responses I got that FORTRAN programmers have less of a sense of humor than COBOL programmers. Now, if I could only find my sliderule.

      --
      "You'll get nothing, and you'll like it!"
  10. Key Insight by TheWoozle · · Score: 2, Insightful

    From TFA: "So, perhaps the real bottom line is that legacy reclamation isnt a second-class project for tired developers. It is an important part of your IT process and needs access to your best, brightest and most flexible brains."

    If only such decisions could be realized in today's business setting. Unfortunately, updating/migrating legacy systems (even mission-critical ones!) seems to be the assigned task for interns, new hires fresh out of university, and contract programmers in India.

    --
    Insisting on "correct" English is like saying that there is only one, definitive recipe for chili.
    1. Re:Key Insight by rk · · Score: 2

      On the other hand, let's be honest. Most mid and senior level people prefer to work on new systems versus mucking with a crufty legacy COBOL system. I know that if my job suddenly became COBOL legacy maintenance 100% I would be pounding the pavement looking for a new job, unless they also rented a Terex dumptruck, filled the bucket with $100 bills and dumped it out on my front lawn.

      I don't mind taking a gander at a COBOL program once in a while, but I don't want to make a career of it.

    2. Re:Key Insight by ErroneousBee · · Score: 1

      Thats pretty much what they do, only not quite that literally, and they use pound sterling in the UK.

      --
      **TODO** Steal someone elses sig.
    3. Re:Key Insight by kfg · · Score: 1

      Unfortunately, updating/migrating legacy systems (even mission-critical ones!) seems to be the assigned task for interns, new hires fresh out of university, and contract programmers in India.

      Code written by someone who understood the problem, but didn't understand how to code; being migrated by someone who doesn't understand how to code, or the problem.

      But at least the project is being managed by someone who actually has a degree in cluelessness, so it's got that going for it.

      Head? Wall. Wall? Head.

      KFG

    4. Re:Key Insight by rk · · Score: 1

      Well, given the exchange rate, I'd be okay with 100 pound notes too, thankyouverymuch. :-)

    5. Re:Key Insight by Anonymous Coward · · Score: 0
      Well, given the exchange rate, I'd be okay with 100 pound notes too, thankyouverymuch. :-)
      There's no such thing, sadly - the highest denomination is £50, and even those are rarely seen. In Britain we prefer not to carry large amounts of cash, because it's cumbersome to use and rather easily lost or stolen. (We use plastic for most transactions, and generally get paid by bank transfer.)
    6. Re:Key Insight by rk · · Score: 1

      I thought that was just the BoE and that the Scottish banks (and maybe Northern Ireland too?) issued £100 notes.

      $50 and $100 bills are uncommon in everyday US transactions, too. Although I found an ATM in the Ahwatukee region of Phoenix, Arizona that dispensed only 50s because it got so much traffic they had to refill it several times daily as it was busy and most people were taking out at least a 100 bucks per transaction.

  11. Rewrite != Inefficient by mandelbr0t · · Score: 3, Insightful

    Every person I've met with writing talent throws lots of stuff away. They do it without a second thought, and the next attempt is almost always better. Why should writing software be any different? If the legacy is so bad as to be entirely undocumented and filled with back doors, work-arounds and pitfalls, what do you lose by rewriting? It's not like editing the crap code is going to be any faster or less error-prone.

    In fact, there's many benefits to rewriting. It allows for proper documentation to be created (design diagrams, use cases, requirements documents) if it was missing. It allows for new technologies to be considered, and to plan for another 30 years of operation. If the software was created using a robust process, the design diagrams, use cases and requirements documents are already written. That's the hard part; any coder worth his salt should be able to exactly duplicate the application from those artifacts.

    I don't think the risk is as bad as business types claim it to be. Is it really any more of a risk to "Rip and Replace" when it's at least as likely that either the ancient hardware that the application runs on fails without replacements being available, or that the one person in the entire company who actually knows all the stuff that should be written down in the non-existent documentation retires, and there's no replacement available? The article mentions in 2 of the 3 legacy reclamation techniques that a domain expert would be required. The fact that many of the domain experts are going to be or have already retired should be additional incentive to do the "Rip and Replace" while they're still available.

    mandelbr0t

    --
    "Please describe the scientific nature of the 'whammy'" - Agent Scully
    1. Re:Rewrite != Inefficient by Lord_Slepnir · · Score: 2

      If you have a large code base already, rather than rewriting the whole thing, you should carefully refactor it to become whatever you need it to become. Joel Spolsky wrote a great article on it. When Netscape decided to spend 2-3 years rewriting Navigator from scratch, they lost 2-3 years, during which Microsoft Internet Explorer was able to assert itself as the dominant browser. By the time the new Navigator was released, it was too late. Now all that remains of the re-write effort is the Gecko engine that lives on in Mozilla.

    2. Re:Rewrite != Inefficient by bbockholt · · Score: 0

      I LOVE rewriting code! I have a garage FULL of wheel prototypes!

      Seriously, rewriting is an essential part of maintaining software. It brings the code up to date, flushes out old bugs (and adds new ones, of course), and provides an opportunity to look at the entire project in a new light.

      I would argue against a ground-up rewrite (ala Netscape) in most cases. But certainly revisiting and rewriting parts and pieces will be beneficial in the long run.

      --
      Rocket Scientist + Brain Surgeon = Rocket Surgeon! (Let's get this O.R. in orbit!)
    3. Re:Rewrite != Inefficient by Prof.Phreak · · Score: 1

      Depends on time/benefit. Many ``old'' systems are big enough to prevent a rewrite.

      My rule of thumb: If you can hack something in Perl in a week (or few) to replace a legacy app, go for it. If it takes longer, spend your time doing something more useful. If it's something that requires a -team- of folks working for a few months... then you better quit before you start (if old system works---just leave it alone).

      --

      "If anything can go wrong, it will." - Murphy

    4. Re:Rewrite != Inefficient by stretch0611 · · Score: 4, Insightful

      mandelbr0t,

      The point is why rewrite something that works fine already. These COBOL applications work well now, some do have significant documentation, and believe it or not some (not many) have been rewritten (or just developed) recently.

      Before you think I am clueless ponder this.
      COBOL has a proven track record of over 40 years. Over that time is has matured and became very stable. It is reliable and quick.

      Some COBOL Applications handle massive amounts of data that many servers would choke on. (Admittedly this is mostly due to the hardware architecture.) I personally wrote a program that would process over 35GB daily in about 10minutes. How many servers can process that amount of information? How many languages would you trust to deal with that quantity of information? Think of how much even the smallest memory leak in a language would be compounded with the sheer volume of data that we are talking about.

      The Y2K crisis happened because programmers wrote programs that far exceeded the length of time they were initially expected to be used. 20 years ago, programmers used only 2 bytes for the year because they a) did not expect the program to be around in 2000, and b) memory and storage space required a premium price. For the most part it wasn't because they were bad programmer, they tried to be efficient programmers and the program lasted far better than they ever thought it would. Now a neophyte thinks it is a requirement to rewrite any program just because it is old(over 3 years). If you code haphazardly and do not think about future maintenance you may be forced to rewrite old code, but if you code with foresight you make the underly structure easy to maintain and upgrade.

      The Y2K crisis also did one other thing. It made people re-evaluate their current needs and see if they were being met. The people who stayed with COBOL did so consciously. They made the decison that COBOL was fulfilling their needs or the programs would have been ported then (time permitting of course)

      And yes, there is even new development with COBOL. The program I mentioned above with the 35GB of data was brand new and written in 2002. It processes returned billing information to AT&T from the LECs (Local Exchange Carriers) daily.

      Now, I know someone is going to say that I am a biased old fart, but I am in my 30's, and the specific program I mentioned was my last COBOL program I wrote before becoming a Web Developer. The group I was with is still working with COBOL, but I moved on because even though it works well, I find writing COBOL too easy and monotonous. But the reliability, stability, and 40+ years of applications developed for it are why COBOL is still around and why it will still be around for a long time to come.

      --
      Looking for a job?
      Want your resume written professionally?
      DON'T USE TUNAREZ!!!
    5. Re:Rewrite != Inefficient by indifferent+children · · Score: 1
      Every person I've met with writing talent throws lots of stuff away. They do it without a second thought, and the next attempt is almost always better. Why should writing software be any different?

      Because that chunk of prose that your friend threw away didn't cost $40M to create. You might be correct that it will cost more to fix the $40M codebase than it would to start from scratch, but the managers who have to make that decision have a really hard time telling their managers that the old codebase has not only no value, but negative value. It's a tough sell, and then the uber-managers might ask themselves if they want to start a new, very expensive, project to create a new codebase that might also have negative value.

      --
      Censorship is telling a man he can't have a steak just because a baby can't chew it. --Mark Twain
    6. Re:Rewrite != Inefficient by multipartmixed · · Score: 1

      > I personally wrote a program that would process over 35GB daily in
      > about 10minutes. How many servers can process that amount of information?

      That is not a language-domain problem. That is a hardware issue -- you require disks able to spool 60 megabytes per second just to be able to handle that... so you're looking at a server with at least 20 disks and multiple buses. Probably fcal with multiple pathing, and RAID-side battery-backed cache.

      Incidentally, I use gmail for precisely the same architectural reasons you site (it will search 2 gigabyte of mail in a few seconds) -- and I'm certain that it wasn't written in COBOL.

      --

      Do daemons dream of electric sleep()?
    7. Re:Rewrite != Inefficient by Anonymous Coward · · Score: 0

      Every person I've met with writing talent throws lots of stuff away. They do it without a second thought, and the next attempt is almost always better. Why should writing software be any different? If the legacy is so bad as to be entirely undocumented and filled with back doors, work-arounds and pitfalls, what do you lose by rewriting?

      You lose a working product. See F. P. Brooks' The Mythical Man Month. He refers to it as "second system syndrome." You think you gained all the valuable experience from the first implementation, so you forge ahead enthusiastically with the second. You think everything is falling into place as it should, except that... it doesn't. You're not pessimistic enough, so you fail. You get something with only limited functionality compared to the first implementation, and it isn't any more maintainable than before.

      Then you write a third system, and maybe a fourth. By that point you're starting to get where you need to be. If you don't make some other bonehead move in the meantime.

      I have seen this play out many, many times. Don't fool yourself into thinking that just rewriting it with your newfound experience is going to improve things. Eventually, it might. But it's not something to base a total-rewrite decision on.

    8. Re:Rewrite != Inefficient by Anonymous Coward · · Score: 0

      The fallacy of improving documentation can be seen by looking at the comment lines in almost any project written in a "modern" language. Programmers talk a good documentation but don't follow through. Documentation written by managers after the fact is basically useless.

    9. Re:Rewrite != Inefficient by Haeleth · · Score: 1
      Every person I've met with writing talent throws lots of stuff away. They do it without a second thought, and the next attempt is almost always better. Why should writing software be any different?
      It isn't. If, while developing a software application, part of the application is found to be defective or to have great scope for improvement, many developers will discard it without a second thought and write a new module in its place, building on their experience the first time round.

      However, this isn't about development: this is about updating systems that were written and put into operation many years ago. While it is absolutely true that all talented authors rewrite bad chapters etc, very few authors are likely to go back to successful novels they wrote 20 years ago and publish new versions with fundamental plot changes! So your analogy falls somewhat short.

      The only really analogous thing in the publishing world would be those books that are successful when published but must thereafter be regularly updated, such as scientific textbooks. It would be very interesting to know how frequently those are actually updated by rewriting them, and how frequently they're actually treated in the same way as programs, and updated by merely making incremental changes within the existing structure.
  12. hmmm by User+956 · · Score: 1

    the continuing dominance of COBOL in certain business applications. The antique language accounted for 75% of all business transactions last year, and some 90% of financial transactions.

    That sounds less like just plain COBOL, and more like a cabal.

    --
    The theory of relativity doesn't work right in Arkansas.
  13. The Tao of Programming by symbolset · · Score: 4, Funny
    The Tao of Programming, 1:2 :

    The Tao gave birth to machine language. Machine language gave birth to the assembler.

    The assembler gave birth to the compiler. Now there are ten thousand languages.

    Each language has its purpose, however humble. Each language expresses the Yin and Yang of software. Each language has its place within the Tao.

    But do not program in COBOL if you can avoid it.

    Observe the wisdom of the Tao
    --
    Help stamp out iliturcy.
    1. Re:The Tao of Programming by DoctorPepper · · Score: 1

      That was just too cool!

      I had to add it to my collection of programming wisdom.

      --

      No matter where you go... there you are.
  14. Comment removed by account_deleted · · Score: 4, Interesting

    Comment removed based on user account deletion

  15. COBOL is so old... by __aaclcg7560 · · Score: 1

    Does any school actually teach this computer language? Have these "legacy" programs been running flawlessly for all these years? Are the programmers from the 1950's still around?

    1. Re:COBOL is so old... by thewiz · · Score: 1

      I learned COBOL in 1984 via a college course. I went on to use it at my first programming jobs (oil and gas company). COBOL is far from dead as it handles transactions, which banks deal with 24/7/365, very very well. Quite a few people I know who still do COBOL are in high demand and are paid extremely well for their services.

      COBOL, if you didn't know, means COmmon Business-Oriented Language and was originally developed by a group of large businesses that wanted to make applications easy to understand and portable. COBOL is very easy to understand (How difficult is "ADD ONE TO ONE GIVING RESULT." to understand?) and is porting from one platform to another is a breeze compared to the nightmare of porting C or C++.

      Now, pardon me, it's time for me to go back to the old folks home.

      --
      If "disco" means "I learn" in Latin, does "discothèque" mean "I learn technology"?
    2. Re:COBOL is so old... by Shadow99_1 · · Score: 1

      As of 1999 DeVry University taught COBOL in it's CIS program... I'm uncertain if they still do, but I am going to say they still do... Their program is geared toward the needs of the business community and (where I went to college in their network) that area hosts a bunch of large bank coporate headquarters and insurance company headquarters, so I figure it probably still does...

      --
      we are all invisible unless we choose otherwise
    3. Re:COBOL is so old... by blk96gt · · Score: 2, Interesting

      I had two COBOL classes, a 200 level and a 300 level, and this was in the past four years. The 200 level was mandatory, but the year after I took it was changed to VB. The 300 level was also changed to VB, and then changed back to COBOL, because some of the companies that come to our school suggested they keep a COBOL class. Surprisingly, I actually rather enjoyed COBOL, I guess because it was so easy to write.

    4. Re:COBOL is so old... by Anonymous Coward · · Score: 0
      The 200 level was mandatory, but the year after I took it was changed to VB. The 300 level was also changed to VB, and then changed back to COBOL, because some of the companies that come to our school suggested they keep a COBOL class.


      What uni did/do you attend? This sounds dead on one of our local universities... unless of course this is a common thing.
    5. Re:COBOL is so old... by jwocky · · Score: 1

      They're around alright, trying to get retrained for new jobs.

      When I was 23, fresh out of college and couldn't find a job I took classes for an mcse. The class consisted of me and 12 out of work cobol programmers. The lesson learned from this group of 50+ year olds is that NO language or os will be fashionable for the length of your career.

    6. Re:COBOL is so old... by svallarian · · Score: 1

      I have a degree from 1999 from Itawamba Community College in Tupelo Mississippi hanging on my wall. Curriculum included COBOL, RPG, C++, and VB.

      It's still being taught today. It goes well with our local furniture plants who run tons of apps on AS/400 systems.

      --
      I patented screwing your mom. But it got revoked for "prior art."
    7. Re:COBOL is so old... by pclminion · · Score: 1

      My mom is in her 50's, and for about a decade she wrote COBOL for a book distribution company. So she was barely even middle-aged when this was going on. She definitely didn't start in the 1950's. Some of the guys she worked with were getting up there in years, but definitely not all of them. And she was really at the median -- at least half of the programming force at this company was actually YOUNGER than her. A few were mid-20's.

      COBOL is good at hiding in the dark corners of basements and mainframe rooms. It's everywhere, you just don't see it. If you bought something by credit card or checked your bank account balance today, you more than likely caused a few thousand lines of COBOL to execute, probably on more than one system, somewhere.

    8. Re:COBOL is so old... by HappyEngineer · · Score: 1

      Is it true that COBOL doesn't support local variables? If true then I have nothing but pity for anyone who maintains such code. If it's not true then I apologize for the slander.

    9. Re:COBOL is so old... by innocent_white_lamb · · Score: 1

      Does anyone have any suggestions for books and resources and compilers? I wouldn't mind playing around with COBOL, just for fun and so on.

      --
      If you're a zombie and you know it, bite your friend!
    10. Re:COBOL is so old... by Shadow99_1 · · Score: 1

      Global variables that must be determined before any other code is written is how COBOL works... See their is this section called 'declarations' or 'declaration' it's been almsot 7 years since I last touched it so forgive my vagueness... Every variable goes in this section where you determine it's length and content (a field of 4 numbers is 9999, a field of 4 letters is XXXX, etc). This section goes before just about everything else. If I remember correctly only program comments can come before it in the order of priority in coding.

      If it isn't declared with length and type data it can't be used.... However I have heard of certain COBOL compilers that supported some limited 'local' variables... I've never seen one though...

      --
      we are all invisible unless we choose otherwise
  16. Two Points by Tom · · Score: 4, Insightful

    One, these figures result from the simple fact that COBOL was pretty much the only high-level language around at those pre-historic times many of the major applications were written. And banks are very, very conservative environments where something that works will not be thrown away for something that might have bugs, even if it's 10x as fast, easy to maintain or whatever. It has to work and that's priority #1, #2 and #3.

    Two, the reason COBOL is so widespread in financial institutions has nothing to do with business sense and everything with business mind. It is "readable" to a business dude with zero computing experience. Something like "ADD PROFITMARGIN TO PRICE" just makes these people feel more at easy than "$price+=$p_margin".

    --
    Assorted stuff I do sometimes: Lemuria.org
    1. Re:Two Points by OSXCPA2 · · Score: 1

      I am a 'business dude'. I interpret 'IT Stuff' including (this week) COBOL code to business users. I don't and can't write it. And, neither I nor my clients care. The only time we even look at code is if we are trying to figure out what the code is supposed to be doing, since the Birkenstock-wearing dude who maintains it (no exaggeration, he really is Comic Book Guy from Simpsons, with Birks) insists it is 'impossible' to provide a listing of the program, 'impossible' to provide a list of batch functions that run on 'his' mainframe, 'impossible' to determine what programs and batch jobs are supposed to run and 'impossible' to look at the raw data before or after it is processed and has (deliberately) no inkling of the business purpose of the code.

      Part of the actual conversation: "Is the data in a database?" "No, not a database." "Is it in a flat file?" "No, not really." "Is it in any format readable by people, or is there an application for viewing or manipulating the data?" "No." "How do you update the data?" "The batch jobs and programs do that." "Can we see them - listings of either?" "No, I don't have those."

      I had to go to his bosses boss and muck around in the system myself until I found a way to list both batches and programs to a buffer and then SCREENSHOT ALL THE PAGES because no one could get into a command prompt - at least no one who would admit it.

      My point - business users don't want to read the code - they want to make sure the system does what it should, and if it doesn't they want it fixed. If the maintainers of the system want to keep the business weenies (me then) and consultants (me now) out of their way, don't act like the business exists for the sole purpose of hosting your 'local fishing holes' website (actually happened - though not with Birkenstock guy).

      I used to make fun of consultants, and there are some bad ones - but I meet a lot more unprofessional idiots on the business and tech sides of clients who act like any attempt to unf*ck an organization that is sinking like a baby with a bowling ball duct-taped to its butt is a personal affront to their dignity.

      And for you business types - there is no reason to pay a consulting firm $200+ per hour, per consultant, if you have hired good engineers and computer scientists and developers, but hey - the expert is always 'the guy from out of town', right? Keep that payroll down, now, gotta keep the year-end bonus up.

      Sarcasm aside, business types, remember the adage 'you get what you pay for' is true of employees. Before you decide to save a little money by hiring certification-whores or following the siren-song of cheap foreign labor, remember you might have to help grow your firms' business, and will have to use the people you hire to do it. Or pay a firm like mine a lot of money. I've seen it happen, and it is neither pretty nor cheap.

      I like to think of it as a 'stupidity premium.'

  17. A Modest Solution by BigGar' · · Score: 2, Funny

    Just merge C, Ruby, & COBOL syntax into one compiler.
    Now coders can start migrating away from Cobol without the hassle of rewriting entire programs. They can do it one line at a time, as they get to it.

    Now if we could just merge Java, & Perl in there you'd really have something.

    --


    Shop smart, Shop S-Mart.
  18. Easy tasks by kahei · · Score: 5, Insightful


    This simply underlines the fact that there's a huge workload of easy, routine transactions that need to be done.

    In terms of total complexity, the financial world is probably something like Excel 20%, C# 15%, Java 30%, C++ 30%, other 5%.

    But in terms of transactions, I can well believe it's COBOL 70%, REXX/VB/4GLs 25%, other 5%.

    Modelling a CDO *is* hard, and you don't do it in COBOL. Creating a visual system to monitor liquidity *is* hard and you don't do it in COBOL. 'Transactions' pure and simple are not hard... you can do them in COBOL... they're easy to maintain because changes are of the form 'deduct 5% if broker_country_of_incorporation = finland'... and they're also a darn silly way to measure the relevance of a language.

    --
    Whence? Hence. Whither? Thither.
    1. Re:Easy tasks by geekoid · · Score: 1

      ummmm VB and 4GL don't do transactions. There just a front end... almost always to a COBOL system...

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

      In addition to "easy" tasks, infrastructure surrounding COBOL only a business can appreciate. :-)
      An example: A system (hardware, database, online, software) running without a single minute of down time over 6+ years.

      During this, following happened
      - Hardware updated live, probably two or three times
      - Database patched few times and transactions rerouted with no stopping
      - Online versions upgraded multiple times with no down time
      - Software in COBOL changed monthly to introduce new features and products

      One more thing - some transaction rates in above example are in excess of 100 transactions per second.

    3. Re:Easy tasks by Threni · · Score: 1

      > ummmm VB and 4GL don't do transactions. There just a front end... almost always to a COBOL
      > system...

      Depends on which market you're talking about. Millions of Point Of Sale transactions per year are performed using VB apps.

    4. Re:Easy tasks by kbahey · · Score: 1

      No, not easy.

      Maybe simplistic in logic when you think of examples like the one you did.

      However, the complexity is the whole application, or applications, and in years upon years of adding features, testing them, debugging them, and putting the organization's reputation on them.

      There are nightly batch runs, there are trickle feeds from other sources, there are exports and imports for data going and coming to other systems and other organizations, there are reports that are printed and go to operational managers as well as executives. It is not merely "a transaction".

      COBOL maybe mundane and dull compared to other languages today, but organizations don't use COBOL, they use "Applications" that happen to be written in COBOL.

    5. Re:Easy tasks by peteybear · · Score: 1

      For the uninformed, programming languages simply implement the facilities of the processor hardware or microcode, they don't change it. In most cases, comments like "you can't to this or that in a particular programming language" simply means that the original developers of the specific compiler chose no to implement certain aspects of the processor's instruction set. Either that, or the facilities of the particular languge were not well enough understood by the critic. There's a big difference between "can't be done" and "I don't know how to do it" or "it's not worth the effort". Further, many of these criticisms can often be remedied by doing a "CALL" to a routine written in what might be deemed a "more suitable" language, or a routine in a specialized or domain-specific library.

  19. Lords of COBOL... by Lemming+Mark · · Score: 4, Funny

    ...hear my prayer!

    1. Re:Lords of COBOL... by Lord_Slepnir · · Score: 1

      So say we all

    2. Re:Lords of COBOL... by Anonymous Coward · · Score: 0

      It is written.

      Any return to Cobol shall be paid by a price in blood.

      I'd rather go back to Basic.

    3. Re:Lords of COBOL... by Anonymous Coward · · Score: 0

      Well, this could explain my nose bleeds...

    4. Re:Lords of COBOL... by A+beautiful+mind · · Score: 1

      You live in Royston Vasey?

      --
      It takes a man to suffer ignorance and smile
      Be yourself no matter what they say
    5. Re:Lords of COBOL... by detroitindustrial · · Score: 1

      1978 called, and their jokes back.

    6. Re:Lords of COBOL... by Anonymous Coward · · Score: 0

      Um, no. Haven't you watched any anime?

    7. Re:Lords of COBOL... by hritcu · · Score: 1

      WRONG CAPITALIZATION!

      --
      If you don't fail at least 90 percent of the time, you're not aiming high enough. (Alan Kay)
  20. Why the community? by butterberg · · Score: 3, Insightful

    should the community spend more time building tools to make COBOL livable Yes, Cobol is still around and probably will be for a long time. It has lived on the hardware of financial institutes for 50 years, and this software cannot simply be completely exchanged by an equivalent system written in a modern language.

    But, does this mean that the "community" should help? Why should *I* build such tools, why should *you*? That's the problem of the financial institutes, and they are willing to pay large sums to get their code maintained and modernized in COBOL. And if they want to have a nice development tool, so they have to pay for it (probably indirect by paying a software development enterprise, which creates and then uses such a tool).

    1. Re:Why the community? by Anonymous Coward · · Score: 0

      OK. When someone says 'language A can do something language B cannot', I instantly (and correctly) call out 'BULLSHIT'. I refer to the Church-Turing computability thorum. If both languages are Turing Complete (and all modern languages are, as is the ancient bloat called COBOL), then anything doable in COBOL is doable in any of the other languages. Now the computing industry is roughly 60 years old. The auto industry is roughly 105 years old. In the 1960's the auto industry was really starting to come out with great cars. No one was calling something made in 1915 'great', but in relative terms, COBOL was made in 1915, and people here are calling it 'great'. It worked, and was OK, but it wasn't (and isn't) 'great'. Modern languages exceed what COBOL was designed to do. Thats why people have tried to 'modernize' COBOL. Its a bit like 'modernizing' a 1915 model T. An MP3 player might be fitted onto the dash, but its still an old car.

  21. Nothing but geeky navel-gazing... by CPE1704TKS · · Score: 5, Insightful

    Once you guys get jobs in the Real World, you will realize that businesses don't care about technology, they care about solutions.

    No business person in their right mind would rewrite all their COBOL code into C or Java just for the sake of modernization. That would be foolish and stupid, and they would deserve to be fired from their jobs. Everything works, why change it. Financial institutions that have their entire livelihood based on these COBOL programs would rather upgrade their hardware and make THAT modern, but keep their legacy code. They already went through a multi-billion dollar fixing for the Y2K industry, that's more than enough for them. The next problem is either 2038 or 2050, when the Y2K issue is revisited because of how most companies implemented their "fix" (any date > 50 would be considered in the 21st century).

    I was working at a bank during late 90s and during a building-wide Y2K meeting, one of the project managers was explaining to us how they implemented the solution. Someone in the crowd asked "Won't we go through this problem again in 2050?" He answered "Yes, but I'll be dead then, so I don't care."

    That is how business people think... they care about solutions, they don't care about technology. Don't waste your time navel-gazing and trying to figure out brilliant ways of modernization COBOL, because no one who uses it cares. Keep your great ideas for the new ideas where the barrier to implementing new solutions and new technology is much lower.

    1. Re:Nothing but geeky navel-gazing... by lysdexia · · Score: 0

      Wow. I guess we've just been schooled.

      Despite the fact that it's hard to hear you from atop thy high horse, I believe you are speaking true trueisms. However, speaking as an unwashed hippie, I cannot agree with the usage of the term "solution" when describing the temporal logic fix added to these sorts of systems. That is known as the "Fuck-You Forward Fix" (Pronounced 'Fife' as in Barney). Nothing was 'solved' by dumping this dungheap upon the heads of future coders (`though I'm sure the mgt types are thinking only about future mgt types, if at all). It was a crutch. A very expensive flying butress on your cash cathedral with a very definite expiration date.

      This does not say that it is the wrong fix for the business' financial state, the business climate and/or time pressure. I sympathise with the money-men. I've committed such boners myself in my own business for whatever reason ... However, half-assing is half-assing and attempting to cover the half-ass by inverting your whole ass with your mouth (i.e. blathering on about "the real world") does not render a 'solution'. If we are going to abuse chemical terms, perhaps we could call this sort of thing a 'suspension', as it is going to settle out eventually.

      I hereby nominate "deserves to be fired" to the 'invoking hitler' list of thread-killers.

    2. Re:Nothing but geeky navel-gazing... by Dr.+Smeegee · · Score: 1

      I would also point out that the only businesses that don't care about technology are ... Well hell, I can't think of any.

    3. Re:Nothing but geeky navel-gazing... by geekoid · · Score: 1

      That would actually be most companies. They do not care about technology. They care about getting more done faster and cheaper. It just happens that technology is they way to do that.

      If it took hiring 20 people to jump around nude in the rai every equinox, they would do that instead.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    4. Re:Nothing but geeky navel-gazing... by SanityInAnarchy · · Score: 1
      No business person in their right mind would rewrite all their COBOL code into C or Java just for the sake of modernization. That would be foolish and stupid, and they would deserve to be fired from their jobs.

      That's making a big assumption -- that this COBOL code all works, and that no one needs to change it much. That may be true for a lot of things, but as soon as you actually have to maintain the fucker, it starts actually looking cheaper to rewrite it -- even in Java -- than to try to tack on the features you need to the COBOL monstrosity.

      --
      Don't thank God, thank a doctor!
    5. Re:Nothing but geeky navel-gazing... by Anonymous Coward · · Score: 0

      that is a really dumb statement. the assumption that the cobol code works is self-evident since everything is working right now... the proof is in the pudding. banks have been maintaining this code for 40 years, and everything is pretty much stable. the task to rewrite their entire code in java is huge and expensive, there will be plenty of bugs and the industry can't afford years and years of glitches before the code stabilizes.

    6. Re:Nothing but geeky navel-gazing... by SanityInAnarchy · · Score: 1

      "Working" is relevant -- Windows 98 "works". There are just inconveniences, like having to reboot once a day, and having random crashes. Using Excel as a database "works", it'd just be pathetically slow and unmanagable if you ever had to scale your database up from "my personal spending" to "entire company's finances".

      Another example: My bank does not post transactions until the next business day. That means I can walk in, deposit a check, watch them type it into their terminal, but it somehow takes a day to get onto the Web. Yes, it "works". It's also nowhere near what it could be.

      Notice also, I said "and don't have to change much". If you have to actually maintain and add new features, the cost of writing the new functionality in COBOL may well be more than the cost of rewriting the whole thing -- yes, even in Java. And consider: Adding new features to a COBOL program seems much more likely to cause bugs than adding the same features to a Java program.

      In fact, I have a real-life example of this, although I can't confirm it -- it's all speculation based on observation. An old 2D MMO I play, that's been around since probably '95 or '97, seems to have survived without an actual rewrite since some kid wrote it in Objective C as a college project. I say "seems to", because generally, it's rock solid, no problems at all, until they decide to change something. Those changes introduce really, really strange bugs -- they'll add a new graphic, and suddenly they have DirectDraw errors. Or they'll fix a bug in the way some armor appears, and suddenly the boards (in-game forums) don't work. Or they'll appear to do nothing at all, but suddenly the servers will start crashing.

      So yes, if they left it completely alone, it would continue to work until some new version of Windows broke it. But, I suspect that rewriting it in a decent language, with some new techniques, and keeping aware of all of the lessons they've learned over the years about how not to do it, would make it much more livable.

      Now, this is a small MMO, and my guess is that they simply don't have the spare resources to do it, even if it might mean more profit in the long run. However, a bank has been maintaining the cobol for 40 years, so they have many times more legacy issues -- and, being a bank, they probably actually have resources to spend on it, and the foresight to realize that they have to maintain this stuff for another 40 years, so if the COBOL is ugly and unmaintainable now, and if COBOL programmers are a rare and expensive breed now, it will be unimaginably worse down the road.

      And your statement "there will be plenty of bugs" is pretty dumb, too. You obviously don't know, but there are a few software development shops that deliver code which simply doesn't have bugs, because they do things like mathematical proofs and obsessive unit tests. And before you make the obvious comment, it actually takes them about as much time and resources to develop and deploy a bug-free program as it takes other shops to develop, debug, and deploy a still-slightly-buggy version. Now, true, they do charge twice as much -- but it's worth it, when you consider the amount of money that could be lost by a bug that wasn't caught in the debug cycle of most shops.

      --
      Don't thank God, thank a doctor!
  22. Wordy by ackthpt · · Score: 2, Insightful

    The problem I had with COBOL, PL/1, Pascal and Modula 2 were they were wordy.

    A lot of typing to perform simple operations. This is why I like C, minimal typing for great power.

    More or less works for Java and later languages, too.

    --

    A feeling of having made the same mistake before: Deja Foobar
  23. OO Cobol since 1989! by 140Mandak262Jamuna · · Score: 1

    Went through scholar.google.com and found a 1997 abstract that claims that OO Cobol has been in developement since 1989. So it has been tried for a long time. But Cobol coders dont exactly take to OO like fish to water.

    --
    sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
    1. Re:OO Cobol since 1989! by cavehobbit · · Score: 1
      But Cobol coders dont exactly take to OO like fish to water


      That is because COBOL coders know how to write obscure, spaghetti-like, impossible to debug code that includes deadend logic, recursive redirects and superfluous function calls, that garantees job security without all the layers of crap that OOP needs to add to do the same thing.

      I know I wrote some stuff so convoluted I had calls for help years after I left the company I started at, as well as some simple and elegant code that is still working, last I heard.

      Simplicity is best people! Even in obscure job-security-targeted hacks.
    2. Re:OO Cobol since 1989! by WilliamSChips · · Score: 1

      Don't confuse OO with C++'s braindead implementation of such. Good OO such as that in Smalltalk can be used to make good programs. But Stroustrup's belief that an ugly language can be used to make a pretty program screws things up very well.

      --
      Please, for the good of Humanity, vote Obama.
  24. Frank Lloyd Wright by dildo · · Score: 2, Funny

    When asked about how to improve Pittsburgh, the famous architect had an immediate reply:

    "Abandon it."

    Cross out 'Pittsburgh', replace with 'COBOL', you get the idea.

  25. I am 56 years old and would love to learn COBOL by BrentRJones · · Score: 1

    I am 56 years old and would love to learn COBOL, if it means that I can get a better paying job.

    Obviously, COBOL works. In fact, if statistics are to be believed, then it is perhaps the most successful of all computer programming languages.

    Why replace what works? In fact, why do employers always want to replace me with someone younger and cheaper and not necessarily more gifted?

    Never trust anyone under 50 should be my sig line.

    --
    Help end the use of Sigs. Tomorrow
    1. Re:I am 56 years old and would love to learn COBOL by Anonymous Coward · · Score: 0

      I bet back in your day people cared when you talked, huh?

    2. Re:I am 56 years old and would love to learn COBOL by Anonymous Coward · · Score: 0

      Why should "trust" be based on age at all?

    3. Re:I am 56 years old and would love to learn COBOL by BrentRJones · · Score: 1

      They still do, youngster!

      --
      Help end the use of Sigs. Tomorrow
    4. Re:I am 56 years old and would love to learn COBOL by BrentRJones · · Score: 1

      You are too young to remember the line: "Never trust anybody over 30" this was in the 60s

      --
      Help end the use of Sigs. Tomorrow
    5. Re:I am 56 years old and would love to learn COBOL by BrentRJones · · Score: 1

      I hope to code until I reach 80. You have about 60 more years to go.

      Good luck to us all!

      --
      Help end the use of Sigs. Tomorrow
    6. Re:I am 56 years old and would love to learn COBOL by jshackney · · Score: 1

      Why replace what works? In fact, why do employers always want to replace me with someone younger and cheaper and not necessarily more gifted?

      Check out the aviation industry. There's always someone willing to come along and do my job for drastically less money. The bad employers only care about the bottom line, not quality, safety, etc. The good employers that actually give a $#!& have ridiculously low attrition rates.

      I worked for a company that used (actually, they still use it) COBOL. Their MO was to scour the state universities for bright kids, bring them back and teach them COBOL. (As a sidenote, we also used OS/2 extensively in the development area.) Well, anyway, these kids were typically coming out of college (about 1996/7) making 45K per year, and by the third year, they had moved on from being burned out.

    7. Re:I am 56 years old and would love to learn COBOL by lysdexia · · Score: 0

      True that. In 1989 I dated a fine young woman whose mother was a COBOL programmer for a local bank. Mom was slated to retire in 1990. She is still going in 3 days a week to work in 2007 - they just keep backing up truckloads of money to her house, since they can't find anyone to replace her for whatever reason.

      How many 70 year old coders do you know outside of acedemia?!

      Man, I should have married the daughter and just nepotized my way into the job. RICH! RICH, I TELL YOU!!!!

  26. The community by kaoshin · · Score: 1

    Considering the vast majority of the community hates COBOL with a passion, I think it would be easier to get together a group of people who want to promote (insert your favorite band's name here) latest album.

    1. Re:The community by Anonymous Coward · · Score: 0

      I would say the vast majority of the "community" has never even written a line of COBOL in their life.

    2. Re:The community by kaoshin · · Score: 1

      Almost any coder who isn't a noob or high school dropout has coded in COBOL and/or PASCAL or at least been exposed to it (i.e. supported poorly implemented COBOL applications like I have to). The majority of the community may not have written production COBOL code, but that has never stopped anyone from having an unfavorable opinion. Hating COBOL is cool, kind of like hating Microsoft.

  27. COBOL is dominant because no change is required. by kiwioddBall · · Score: 4, Insightful

    The reason there is so much legacy code about is because that code has been around for some years, is proven and is bug free.

    The slashdot article assumes that because of this the code may benefit from change. In fact the exact opposite is the case. Change introduces bugs and costs money, so I cannot see this happening.

  28. Why? by Kjella · · Score: 4, Insightful

    The antique language accounted for 75% of all business transactions last year, and some 90% of financial transactions. For all the time spent arguing the merits of Ruby vs. C#, should the community spend more time building tools to make COBOL livable? The article goes into what it terms 'legacy modernization', and lays out some details on how to go about it.

    I mean, it's only big (huge!) corporations running big back-ends that use COBOL, why should "the community" bother much with that? I doubt it's anyone's itch to scratch. Customers want to run COBOL because the code has had decades of real-world production use, not because of COBOLs merits. If the same people still ran assembler code, I'd trust that too. Doesn't mean I'd like to give up on modern languages because of it. If I heard the words "legacy modernization", I'd think "don't break what works". Doesn't mean big new developments are made in COBOL, they interface it.

    I'm almost convinced that COBOL will be running on systems a hundred years from now. Any Turing complete language could produce working code to solve anything (or well, as much as any other Turing complete one, anyway). Clearly there's some such code in COBOL, which it makes no sense to reimplement in another language just for the sake of reimplementing it. But I don't see the benefit of trying to revive COBOL development, there are now much better tools for the job. How long has it been since the term "Completely Obsolete Business Oriented Language" was coined? It's dead, Jim. The only tools needed are those to ease its passing.

    --
    Live today, because you never know what tomorrow brings
    1. Re:Why? by ignavus · · Score: 1

      "it makes no sense to reimplement in another language just for the sake of reimplementing it"

      Dang!

      There goes half of the open source projects on Sourceforge.

      --
      I am anarch of all I survey.
  29. business is hard... but modernization can happen by Anonymous Coward · · Score: 0

    There are options out there... even without dropping a bunch of money...

    Manufacturers:
    http://www.openmfg.com/

    ERP/CRM:
    http://www.compiere.org/

    Open source ERP/VE business engine in PHP/Postgresql/Apache and Mozilla's XULRunner client.
    http://www.venture.kdsi.net/

  30. No emotional motivator for COBOL by cryfreedomlove · · Score: 1

    90% of transactions happen through COBOL? Is this supposed to make me want to programin COBOL?

    Sorry friends, but I have to work on code that matches my passion. Otherwise I would not be able to swing my legs out of bed in the morning and live my life with joy. Some people may be making a living with COBOL but none of the cool kids (myself included) will touch it.

    1. Re:No emotional motivator for COBOL by Rastl · · Score: 5, Interesting
      Bwahahahahah!!!!!one!!

      Sorry but I had to let that one out. "Code that matches my passion." is priceless.

      When you start looking at a mortgage payment, car payment, grocery bill, doctor bill, etc. you'll realize that you work on something you can do well. Save your passion for your hobbies. Code on the bleeding edge at home.

      Do you honestly expect business to conform to what you want to do instead of what works for them? Answer truly. And if you don't come up with "Heck no!" you need to rethink how it works.

      Sure COBOL may not be for you. Good deal. Don't learn it. But if you're applying for a job and they need LegacySystem 5.7 and you tell them you don't know it, won't learn it, but would consider writing in BleedingEdgeSystem 0.54 you can pretty much figure out what the answer is going to be.

      I've been coding since 1976. Yes, 1976. I've learned many languages. Some I've liked, some I haven't. But if the business needs it I learn it. Sometimes I learn it just because I want to. I missed out on COBOL (don't ask) but may just add it to my list of things I want to investigate.

      I'm not being a troll or at least I'm not trying to be one. Some people will probably read that first exclamation and not go any farther. But sometimes you really do have to wake up and smell yesterday's coffee burning in the pot.

    2. Re:No emotional motivator for COBOL by Aardpig · · Score: 1

      I agree, corporate script kiddies like yourself should steer well clear of COBOL.

      --
      Tubal-Cain smokes the white owl.
    3. Re:No emotional motivator for COBOL by geekoid · · Score: 1

      The cool kids have never been noted for their IQ.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    4. Re:No emotional motivator for COBOL by extern_void · · Score: 0

      System: Have you already done your job against above subject?
      Mr. "Dream killer" Smith: Yes, target is down.
      System: Let's go to the next one.

    5. Re:No emotional motivator for COBOL by cryfreedomlove · · Score: 1

      Rastl,

      I don't expect businesses to conform to my passion. Fortunately, for both my employer and myself, I have a great match between my passion and the company's needs. I love what I do.

      How about your relationship with your employer? When they hired you, were you transparent and up front about the fact that you 'save your passion for your hobbies' and that you're just in it for the money? Answer truly.

    6. Re:No emotional motivator for COBOL by Anonymous Coward · · Score: 0

      >I don't expect businesses to conform to my passion. Fortunately, for both my employer and myself, I have a great match between my passion and the company's needs. I love what I do.

      I'm torn.

      On one hand, I hope you're fortunate enough to enjoy that situation for the rest of your life. Really, I do.

      Conversely, the thought of what will happen to you when you turn down work that's "beneath you" in a tight economy elicts a laugh that would do Nelson Muntz proud.

      Good luck.

  31. Re:A Modest Solution by Etcetera · · Score: 1

    Just merge C, Ruby, & COBOL syntax into one compiler.
    Now coders can start migrating away from Cobol without the hassle of rewriting entire programs. They can do it one line at a time, as they get to it.

    Now if we could just merge Java, & Perl in there you'd really have something.


    Sounds like a job for Parrot!

    Note: I'm kidding... sort of.

  32. COBOL certification by WiseMuse · · Score: 0

    I've got certification in COBOL. I remember clearly learning the language with punchcards. I liked it that way. COBOL should stay the way it is. We should return to the good old days of punchcards.

  33. What COBOL has that other languages don't. by Animats · · Score: 5, Interesting

    The big advantage COBOL has is that the language is serious about data storage. The language knows about structured files, databases, indices, and formatted fields. COBOL was the first language to have data structures.

    Look at what a mess it is to talk to a database from Perl, Python, Java, or C/C++. There's fussy glue code required, and the language doesn't help you make sure that field XYZ in the database comes out as field XYZ in the program. In COBOL, it's straightforward. The language knows about databases. There's even a good interface to MySQL.

    It also has some formatting capabilities that HTML should have had. You can write CREDIT-CARD-NUMBER PICTURE 9999-9999-9999-9999. In some systems, that will eventually result in an input field on a green screen that will only accept four fields of all numbers with all digits filled in and will display a blank form field accordingly. HTML FORM fields should have worked that way.

    There are some real advantages to a language where components outside the individual programs can see, check, and use the data declarations.

    1. Re:What COBOL has that other languages don't. by randolph · · Score: 1

      Bingo. Bookkeeping and accounting are the mainstream of COBOL, as they are in no other language, though of course they can be done in other languages. If you want to do bookkeeping arithmetic to four decimal places (the standard for financial calculation in many institutions), COBOL is still the easiest tool. (And if you doubt those are valuable, ask yourself how many penny errors you are willing to accept in your bank statement.) Now, the language was (and probably still is) heavy with complex syntax. It used to be absurdly hard to compile, and had some awful syntax and semantics, which probably still occur in some programs still in use, somewhere. I can easily imagine compile-time switches that turn off the old features. But its best features have not been captured in any other language, and so it goes on.

    2. Re:What COBOL has that other languages don't. by jwocky · · Score: 1

      Thats basically the reason we haven't dumped our as/400. It has nothing to do with the code, it has everything to do with the fact that the hardware and software revolve around the database. The thing is built to do one thing: database transactions. I hate dealing with the administration and ancient COBOL and RPG programs, but I have to respect it for what it does. Like the ancient lisp machines of the past.

      I seriously hope that the Oracle OS does this: come shipped with a killer database and an os and language optimized to working with it.

    3. Re:What COBOL has that other languages don't. by Anonymous Coward · · Score: 0

      > There's even a good interface to MySQL.

      That isn't an interface to MySQL but it is to other RDBMS:

      """Only COBOL Access + process specific RDBMS access on : INFORMIX S.E,INFORMIX On-Line, SYBASE, INGRES, ORACLE, DB2 and SQL server."""

      Cobol has been accessing RDBMS's for decades using pre-processors for all the major systems:

              EXEC SQL SELECT * FROM tablename INTO :field :field ... END-EXEC

      and this includes accessing MySQL and PostgeSQL.

  34. Why Businesses Use COBOL by littlewink · · Score: 1
    • COBOL has fixed-point math. All math operations including rounding follow financially-accepted standards,
    • COBOL uses fixed-length arrays and strings,
    • No dynamic memory allocation is allowed,
    • No dynamic (self-modifying) code is allowed.

    The last three items make COBOL memory- and CPU-efficient. The programmer is limited in his options, but these restrictions also gracefully limit coding complexity. Portability is simplified with this restricted feature set.

    A side-effect: COBOL is an ideal language for WWW applications because of the above restrictions/features. COBOL is the original WYSIWYG language.
    1. Re:Why Businesses Use COBOL by xleeko · · Score: 1

      > No dynamic (self-modifying) code is allowed.

      Usually true in practice, but you still may hit some old code with
      an ALTER statement if your luck is negative ...

    2. Re:Why Businesses Use COBOL by ratboy666 · · Score: 1

      Wrong on the self-modifying code.

      Consider ALTER: it rewrites the targets of GO TO statements.

      1-PART. ... elide ...

          GO TO 2-PART. ... elide ...

      2-PART.

            ALTER 1-PART TO 2-PART. ... elide ...

      And we scream in pain!

      --
      Just another "Cubible(sic) Joe" 2 17 3061
    3. Re:Why Businesses Use COBOL by scottsk · · Score: 1

      Currently COBOL does have support for dynamic memory allocation and pointers. Historically it did not. But that was largely irrelevant, because programs used ISPF table services and the CICS equivalent for this. The pointer datatype makes interfacing with mixed languages easier.

    4. Re:Why Businesses Use COBOL by Anonymous+Admin · · Score: 1

      I once had the misfortune to work on a piece of spagetti that was full of alters.
      To make it worse, they were named alter1 alter2 alter3 alter4 and so on.
      After 3 days of trying to understand a convoluted piece of logic, and thinking you finally knew what
      it was doing, you would hit a line like
      alter alter1 to alter4, alter 3 to alter2.
      Arrrggghhhhhhhhhhhhhhhhhhhhh!!!

    5. Re:Why Businesses Use COBOL by Cro+Magnon · · Score: 1

      Oh yes! I got stuck with such an abomination! Someone referred to it as spagetti code, and I replied "No, your program is spagetti. This one is spagetti with *expletive deleted* meatballs!!".

      --
      Slow down, cowboy! It has been 4 hours since you last posted. You must wait another few hours.
  35. Not done much debugging in COBOL, have you? by randolph · · Score: 1

    Chased a missing period, or dealt with an ALTER statement?

    Now, the ALTER statement, at least, is probably history. I'm not so sure about the periods.

    1. Re:Not done much debugging in COBOL, have you? by FlyingGuy · · Score: 3, Insightful

      Ever chased an else'less IF or a Case where someone forgot to put a "break" in C ?

      Ever chased a very subtle bug in C++ where some moron overloaded the wrong operator?

      Ever chased an End statement in Pascal where a ; was optional?

      Ever chased a ... in any language?

      The bottom line is this. Every language has its pluses and minuses. COBAL was designed as a language to handle business operations. It does it well, it does it faithfully and its Proven, Tested, Validated an most of all Trusted (PTVT).

      Ask K&R if they think C is a good business operation language, I bet they would reply in the negative.

      As to other languages...

      • PHP - Wouldn't trust it, it hasn't been around long enough to be PTVT
      • Java - Not only no, but fuck no!
      • Perl - Not on your {[^/b/n-n]=--} life!
      • Ruby - Again not PTVT
      • C# - Again, not .PTVT
      • Lisp - Question Ask you would why do this?
      • ADA - Although this language IS PTVT, it would be ill-suited
      • FORTAN - Only if I was sending my bank ballance to Mars, but it is PTVT

      The bottom line is COBAL was designed to do exactly what accountants and business need. Its been extended, but the basic functionality that it was designed to do is all still there.

      If you don't like the wordiness of COBAL I can understand that, brevity has its place, so go spec a "modern" business transation orineted language, work the bugs out for about 30 years and I am sure banking will adopt it, provided it runs on an IBM Mainframe, since there is simply no way you are gonna handle the transactions on 400 million bank acounts in less then about 6 hours the way BofA or Wells Fargo does, night after night, after night.

      Its one thing if your mashup of Perl, Python, Ruby on a rocket sled and javascript all come flying apart and someone cannot read Slashdot for a few hours or someone cannot place an on-line order for a while at Amazon. But just have several thousand ATM's go bonk because the Linux Cluster lost its mind or something like that so that people can't get cash, or make a deposit and see just how fast everyone comes after you with Tar, Feathers and a pitchfork!

      --
      Hey KID! Yeah you, get the fuck off my lawn!
    2. Re:Not done much debugging in COBOL, have you? by illegalcortex · · Score: 1

      This "COBAL" sounds much better than COBOL! Sign me up!

    3. Re:Not done much debugging in COBOL, have you? by Anonymous Coward · · Score: 0

      If java is a "no, but fuck no" I really don't think you'd ever even consider putting C#, Ruby, Perl, Python, LISP, scheme or just about any other language save for Ada and Fortran on the list of in the conversation.

    4. Re:Not done much debugging in COBOL, have you? by Shads · · Score: 1

      * COBOL - so you can pay programmers in retirement 200k/yr to fix your application 30 years after the fact!

      --
      Shadus
    5. Re:Not done much debugging in COBOL, have you? by FlyingGuy · · Score: 2, Interesting

      Alternatively, you can begin teaching programming as a trade, much like plumbing, construction, etc.

      Programming business processing is neither exciting, nor particularly fun, but it is however a pretty good way to make a living. You dont need the chops of someone who can write a TCP stack or a Kernel or a new Compression or Encryption algorithym to do so. What does it really take to say calculate the interest on someones savings account and post it to the acount transaction file, not much programming wise. There is no parsing involved, no tokenizing, nothing fancy at all.

      I make a decent living writing custom applications and I rarely do anything very complicated. I write nice custom apps in Delphi, mostly against Oracle. Nothing earth shattering in the GUI, I stick to the basic control set and they just hum along either on windows or Linux ( Kylix ).

      Business operations production coding can be tought to just about anyone with a logical mind that can understand the concepts of data flow, which as many have pointed out, things like VB, Delphi and the like support very well, even if they are pourly coded by people with no formal training.

      Someone with business background ( mine came from banking and healthcare ), that can understand the concepts of programming in a logical progression to get from point A to point B can be trained in a given language like COBOL or TCL in a matter of a few months, possibly less, and can then function confidently in a business transaction production environment.

      I went further and taught myself most of the very low levels of SE by reading many many books and experimenting. Programming anything is no magic, it is understanding the interaction of software with hardware. The first really difficult thing I ever wrote was an interupt driven serial I/O processor, back in uhmmm, around 1985, I wrote in a combination of 8086 assembler and Turbo Pascal 3.1.. Hmmm I think i am getting old.

      I dont have a degree in anything except hard work and study.

      --
      Hey KID! Yeah you, get the fuck off my lawn!
    6. Re:Not done much debugging in COBOL, have you? by Anonymous Coward · · Score: 0

      You don't get hired much, do you?

    7. Re:Not done much debugging in COBOL, have you? by FlyingGuy · · Score: 0, Flamebait

      I actualy have to turn down work regularly because I am usualy working on 5 different projects at the same time.

      Now subtext of your comment was quite clear. So listen up. You must surely be one of those "must be bleading edge" fanboys. You know WHY I get hired time after time? My projects come in ahead of schedule and under budget around 90% of the time. My bug fix cost is less then .01% of my revenue. Know why that is? I dont use buzword tech, I use proven and reliable tech. You know what business wants? Hmmmm, do you fanboy? They want a solution that just works from the day I install it, not after the 5th or 6th go 'round like most AJAX / Java / Ruby on Rails / whatever latest non-PTVT tech all you 20 something fanboys sing the praises of.

      Ya know what else? I make a lot more money then you do, I would be willing to bet.

      The other thing that amuses me is that when people like you attempt to insult someone, you always do it as Anonymous Coward because that is simply what you are.

      --
      Hey KID! Yeah you, get the fuck off my lawn!
    8. Re:Not done much debugging in COBOL, have you? by Cro+Magnon · · Score: 1

      Bingo! I've DONE more than my fair share of chasing obscure problems in COBOL programs that were almost as old as I, and many of those problems could easily have been done in other languages, and often even worse! If someone can write unreadable programs in a language that was designed to BE readable, what would they do in C or Perl? Yikes!!

      --
      Slow down, cowboy! It has been 4 hours since you last posted. You must wait another few hours.
    9. Re:Not done much debugging in COBOL, have you? by Raenex · · Score: 1
      Someone with business background ( mine came from banking and healthcare ), that can understand the concepts of programming in a logical progression to get from point A to point B can be trained in a given language like COBOL or TCL in a matter of a few months, possibly less, and can then function confidently in a business transaction production environment.

      I see you learned how to spell the language you defended in your first post. I can't imagine somebody not knowing how to spell a language that they are familiar with (for that matter, I can't imagine somebody mispelling something that was in the article headline).

      Did you ever actually use COBOL to do real work? I see you also mention Tcl. Have you ever seriously used it? It's an awful language and exactly the opposite of a straightforward language. Everything is a damn string macro, even the most basic language constructs. Try writing a serious application in it and I think your Delphi mind will run screaming for the hills.

      Your argument basically comes down to "COBOL is old and not fancy". However, it ignores the reason why we get fancy language features: To solve problems where simple isn't good enough. Fancy abstractions are used to eliminate code redundancy, to solve problems concisely and clearly, to break down problems into modules. What really matters is how long it takes you to develop new features and fix bugs. Point A to point B is fine for small applications. Big, complex applications require tools that let us get more done faster. Languages have evolved beyond assembly, FORTRAN, and COBOL.

  36. There are companies that help with this- by bishiraver · · Score: 3, Informative

    One such company, Envyr Corporation (makers of iCobol), builds a solid windows-based IDE for COBOL. Their compiler supports many different architectures - AIX on RS/6000, DG/UX on AViiON (though, newer versions aren't supported on this platform), HP-UX on HP Series PA-RISC 1.1, Intel RedHat (above kernel 2.2 for newer releases), SCO (yeah, yeah, I know). They also support the full line of Windows OSes, though older versions like 98, NT and ME only have basic testing performed on them.

    They provide tools for transitioning from older Data General COBOL to newer OSes (Windows, RedHat).

    Interesting thing also, is they provide a cgi platform for COBOL.

    They also provide various APIs for C to interact with the COBOL program you have, services for code migration, etc etc.

    The company is run by several ex-Data General employees, and they really know their stuff.

    Disclaimer: I do not work for Envyr Corp, but I have family that does.

  37. Re:Wordy stupid by cinnamon+colbert · · Score: 1

    Show me some real world data on TCO including lifetime maintenence that terse programs, which saved a few minutes of typing for the programmer, are better then wordy programms whihc save years for the non original authrs that have to maintain

    this less typing thing is one of the stupidest memes in the computer industry

  38. it's not "clear" by oohshiny · · Score: 1

    Business only has one real question: "How much money did I make last year?" COBOL provides all the tools to answer it.

    Well, if you use COBOL to code your web frontends, graphics, analytics, etc., the answer to that question will be near zero.

    In order to make money these days, you need to do more than can humanly be done in COBOL.

    there is none of this fancy renaming variables on the fly and obfuscating code with magic numbers stuff that is all the rage in C++, Java, and other "modern" languages.

    C++ and Java are not "modern" languages; their designs are barely more modern than COBOL, actually.

    1. Re:it's not "clear" by lysdexia · · Score: 0

      C++ and Java are not "modern" languages; their designs are barely more modern than COBOL, actually. Thank you!

      When I suffered through a java class a couple of years ago, one of the first things the professor said was that he belibed java's true target market was replacing legacy cobol code.
  39. Let the user choose by Rildo · · Score: 0

    If the programmers and/or managers still think COBOL is useful, why not let them deploy its applications. If COBOL has survived it is only because it is relevant, or make easy to understand its legacy systems. It is well standardized by several organizations and have several commercial and free implementations. Compare for instance Java, which IS NOT standardized yet, have a few (SUN alone is the standard) implementation, and is a moving target!


    If I would choose a language to port COBOL applications, I would prefer Common Lisp. That's because I like it. It gives me control and power. There are many things impossible to do in Java or C++ (and COBOL too) that's easy in CL (real macros anyone?).


    Of course, for business applications, or better saying, for the junior programmers that are able to write COBOL or Java code for finnancial applications, Common Lisp is a nightmare with its complex concepts. For a seasoned programmer, there are, along with CL (Common Lisp), a handful of other interesting languages such as Ruby, Tcl, Python, and others.


    But remember, there are tricks in COBOL that no other language (except CL, of course, that may implement the syntax you need) which features a MOVE (with type conversion according its PICTUREs), MOVE CORRESPONDING, a precision "money arithmetic", several verbs like INSPECT, STRING, etc. People get used to work with those features! That's why COBOL still lives and will live for much more time than you Java-only programmers (Java morons) expect.



    In Brazil there's a saying "don't change a team that's winning".



    BTW, I'm NOT a COBOL programmer, but I'm a proud implementor of TinyCOBOL (http://tinycobol.org/ or http://tiny-cobol.sourceforge.net/), a free (GPL, libraries LGPL) COBOL compiler that peaked 4,000 downloads/month. I prefer to write my code in Tcl, Common Lisp (including CLOS, its object system), Prolog, C (not C++, which is ugly), yacc/lex/ox (compiler tools), TeX, Postscript, Smalltalk, Forht (I've implemented a derivative of it called "Filia" in the early 70's), and othe less known animals...



    Rildo Pragana -- "Adventures in Linux Programming" http://www.pragana.net/

  40. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  41. My gramma used to write code in COBOL by extern_void · · Score: 0

    If a code has to be re-written (or in this case the own language COBOL) it is time
    to switch it by another and modern language.

    Everything is evolution, except my score that keeps on 0 indefinitely:)

    1. Re:My gramma used to write code in COBOL by pclminion · · Score: 1

      If a code has to be re-written (or in this case the own language COBOL) it is time to switch it by another and modern language.

      Says Mister "extern void"...

      (Nothing against C, I love it, but I enjoy the irony of your comment)

    2. Re:My gramma used to write code in COBOL by extern_void · · Score: 0

      Well, it is an irony, indeed. But at least, comparing C to Cobol, C is younger and
      then _more modern_ than Cobol :)
      Take a look at this this

      12 years younger is less than nothing (lol)!

    3. Re:My gramma used to write code in COBOL by Anonymous Coward · · Score: 0

      I've done some fairly big/complex stuff using COBOL, REXX, PL/1, JCL, etc. The total project size of these engagements ran into the $100 mill USD range over the course of about 8 years. The COBOL tools are actually very good. We used MicroFocus on the PC to parse, manipulate, test, debug, then shot the code up to a mainframe Configuration Mgt tool (Endeavor) to deal with multi-enviroment complies and databases. I have to say that the process was flawless.

      My $.02 ... use what works for as long as it works.

  42. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  43. COBOL migraton nightmares by thinkingpen · · Score: 1

    I worked with a company that had most of their IT systems on an old mainframe written in COBOL and assembler. We had to migrate a few programs to use DB2 (relational) database instead of IMS (an old hierarchial database). This proved to be a nightmare due to lack of tools to analyze COBOL source code. We had to write REXX scripts to parse the code and automate some of the process. In another project, a variable had to be expanded (in terms of lenght), and another nightmare followed. More rexx to track where this veriable goes, what it is used for, what files it gets written to .. well this part involved parsing JCL files as well using rexx! Yes, we need better (mainframe based) tools to make this language livable with.

  44. uh, what? by Anonymous Coward · · Score: 0

    seems it's already quite 'livable', considering its stated dominance in some applications.

  45. The lords of Kobol by goombah99 · · Score: 3, Funny

    Blasphemy. Rewriting the sacred text of the colonies. Where's Cmdr Adama?

    --
    Some drink at the fountain of knowledge. Others just gargle.
  46. Why use COBOL? by wardk · · Score: 1

    geez, it's not riddled with bugs, has a stable development environment, stable kit of tools.

    it just works.

    unlike what, ALL the rest?

    1. Re:Why use COBOL? by pclminion · · Score: 1

      I'd say a typical C environment is also extremely stable. But C and COBOL both seem to suffer the same sorts of criticisms, so it doesn't surprise me. I guess "modern programmers" just want unstable systems than explode randomly and shift semantics every few years. No thanks.

      I'll stick to my "archaic" languages and continue churning out useful code that works properly. If you lack the skills to properly use these languages, that's fine -- you need hand-holding, nothing wrong with that. But don't blame it on the languages.

    2. Re:Why use COBOL? by Anonymous Coward · · Score: 0

      Whole hearted agreement from here.

      We recently converted to COBOL85 and it is much more expressive than '74 ever was.

      As to the OO version, I'm not that impressed.

      I'll take to whatever paradigm works and the procedural paradigm is quite good for business applications. (Acc, payroll, order entry etc.)
      Most business folks still think in terms of records and files and it's easier to model their business practices as procedures.

      If I want Object Based I'd use Smalltalk, functional (LISP/Scheme), Object Oriented Java.

  47. Re:From my experience by indifferent+children · · Score: 1

    I wouldn't mind taking a peak at COBOL syntax (just another syntax), but I don't want to get steeped in the COBOL culture. How to use language features to isolate transactions, what are the types and advantages of batch job approaches. That would take a long time to learn, and could send a career in a COBOL direction.

    --
    Censorship is telling a man he can't have a steak just because a baby can't chew it. --Mark Twain
  48. UTTER Nonsense! COBOL is glue language in a stack by scottsk · · Score: 4, Informative

    Sorry, but I have to rant: Whoever wrote this has no idea what they're talking about.

    COBOL is the glue language in a stack of application components sold by IBM including CICS (or ISPF), VSAM, DB2, etc. These are quite modern and up-to-date, and run on the mainframes that make the world go around by providing reliability and uptime at load levels beyond the wildest dreams of PC and Linux users. Sure, anyone could learn COBOL basics in a day or two, but you're not going to learn and certainly not going to "modernize" a COBOL program running against a DB2 database. COBOL is a glue language that glues together high-performance relational database access, high-performance presentation-layer management (CICS makes Windows API programming look simple!), etc to process umpty transactions per second, where umpty is a number beyond the reach of most Linux boxes. You're never going to "modernize" this stuff because it's the only thing around that can do what it does at that throughput level. The COBOL part is just a driver among the different components. Even the business logic has been factored out into stored procedures now.

    There is no problem bolting on web access to databases and data warehouses, or stuff like that, but whoever wrote that (imagine that, a consulting group who will come in and modernize everything for you!) has absolutely no idea what COBOL applications are or do. You are most definitely not going to port legacy applications to new platforms that use CICS or ISPF for their presentation layer! Get a clue. And what platform are you going to port your COBOL program to? The mainframe is already the highest end platform of all time - there's nothing with more throughput - I doubt a company would take the notion of porting to MySQL on an Intel box very seriously. The bottom line is people use the IBM application stack because it works, at a performance level where nothing else works.

    Sure, it would be fantastic to have an open source COBOL compiler with a MySQL precompiler so people could learn the language (ever tried to parse COBOL!?). And a Mono COBOL compiler would be fantastic. But no one is going to port their mission-critical business applications from a mainframe to a virtual machine runtime environment. You might use C# or Python to create new apps to access the data in new ways, offline, but you're not going to port mission-critical stuff.

  49. monkeys by Anonymous Coward · · Score: 0

    Who are the monkeys above suggesting they re-write it in a dynamic language like perl/php/ruby on shit? I think you'd be hard pressed to find any critical back-end business logic not done in static language like java, c, c++, c#. It would be moronic to write that kind of code in a loosey goosey language.

  50. Re:From my experience by morgan_greywolf · · Score: 2, Funny
    (the sole purpose why the language was built, thus why they named it COMMON BUSINESS ORIENTED LANGUAGE)


    Yeah, I guess you must be a COBOL programmer, since you seem to like TYPING IN ALL CAPS.

    Anyway, the appropriate acronymical expansion of COBOL is 'Confused Oriental Bean-cOunting Langauge.'

    Oh, BTW, how's the fingers? Stubs yet? ;)

  51. Why did this bollocks get modded up??? by Anonymous Coward · · Score: 0

    there is none of this fancy renaming variables on the fly and obfuscating code with magic numbers stuff that is all the rage in C++, Java,

    WTF??? This guy does not know the first thing about C++ or Java.

  52. Re:Rewrite != Inefficient (sometimes) by Ash+Vince · · Score: 1

    The company I work for have a rather large legacy web app (600mb of code) running on asp and mysql.

    Unfortunately at some point we will have to rewrite it in PHP. Before I got to know my way round the system I thought this was a great idea as I am a pretty good PHP programmer and prefer it to ASP. Now I have realised what a huge and difficult job this is going to be (think in man years rather than hours) I am not so keen. Especially as I will probably be entitled to a profit share by the time we do it and obviously a huge internal job like that will not generate as much income for the business.

    --
    I dont read /. to RTFA, I read /. to offend people in ignorance.
  53. Slashvertisement by adavies42 · · Score: 1

    RTFA! This is just an ad for Micro Focus.

    --
    Media that can be recorded and distributed can be recorded and distributed.
    -kfg
    1. Re:Slashvertisement by scottsk · · Score: 1

      MicroFocus is the "hot potato" of the COBOL world - it changes hands every few years as someone buys it, realizes they'll never turn it into a profit center, and spins it off. Some really weird companies you'd never think of have owned it. I think MF is independent now. Hard to make a go of it, because the product itself has certain deficiencies that make doing what it's supposed to do (offline development) difficult. Hopefully newer versions fix that, but for a long long time the guts of the product (compiler, tools) was static and not developed. They just kept renaming it.

  54. Re:And if you are now compiling open-cobol to play by Anonymous Coward · · Score: 0

    $ SET FREE

  55. Fortran updated each decade by peter303 · · Score: 2, Informative

    77, 95, 2003
    (I skipped the 80s too.)
    Like all the legacy languages it acquired all the new fad constructs. Still pretty conscise for formulas and array operations.

    1. Re:Fortran updated each decade by Anonymous Coward · · Score: 0

      Fortran 90/95/2003 dialects have more than just fad constructs.
      They are very efficient for math operations.

      The MODULE allows users to write shared libraries. For example,
      there is an ODBC module for f90 and later.

      The built-in matrix arithmetic operations are fast. They execute
      dot-products in parallel, where multi-processor hardware exists.
      No special user codes is required.

      The 2003 dialect specifies linkage to C-language libraries,
      or Fortran modules to C. So, it is very useful to re-write
      hard C math libraries in Fortran.

  56. Your definition of clarity is unclear by fm6 · · Score: 1
    ...there is none of this fancy renaming variables on the fly and obfuscating code with magic numbers stuff that is all the rage in C++, Java, and other "modern" languages.
    You've got me scratching my head with that one. I have no idea how to "obfuscate code with magic numbers". As for "renaming variables" are you referring to the fact that modern languages allow you to declare variables with limited scope? (I seem to dimly recall that COBOL variables always have program scope, but it's been a couple of decades since I studied the language.) If so, you're right, the COBOL way is simpler — but totally inadequate for nontrivial programming, where unintended side effects are a major cause of bugs.
  57. C++ for dummies by wiredog · · Score: 1

    That book is actually a pretty good intro to C++. It's how I got my start when I migrated from C about 10 years or so ago.

  58. many legacy FORTRAN codes too by peter303 · · Score: 1

    Of the ancient three: COBOL, FORTRAN, LISP - FORTRAN has many legacy applications too. Its not uncommon to see some dusty FORTRAN-77 deck in an oil company or national lab. Most compiler switch back to that standard.

    1. Re:many legacy FORTRAN codes too by Tom · · Score: 1

      Good point. Yes, COBOL in business environments, FORTRAN in production, LISP in - afaik - research and (at that time) "weird" applications.

      I didn't learn FORTRAN, it was "out" when I studied. But I still learned COBOL. Please, let it die a quick and horrible death. Mostly quick would be very welcome.

      --
      Assorted stuff I do sometimes: Lemuria.org
    2. Re:many legacy FORTRAN codes too by torako · · Score: 1

      FORTRAN is still pretty common in science, especially for doing numerical physics stuff. It has quite elegant ways of handling matrices, for example, although the syntax feels arcane (at least F90 and newer don't require white spaces at the beginning of lines anymore).

  59. Re:Rewrite != Not easy by NorbrookC · · Score: 1

    If the software was created using a robust process, the design diagrams, use cases and requirements documents are already written. That's the hard part; any coder worth his salt should be able to exactly duplicate the application from those artifacts.

    You make it sound so easy! How many times have you actually done it?

    I ask this because I have done it, several times. Each time, I knew exactly the logic of the processes, knew all the applicable algorithms, and had all the documentation and flow charts. Writing from scratch a program to replace the COBOL code was a non-trivial exercise, involving several months of coding and testing. Those were, in retrospect, rather small programs (10-25K lines) too. The only reason I did it in the first place was that we needed to have a better front-end data entry, and there were some issues with batch output file sizes - this was in the early '80's.

    Yes, it sound really easy to say "just rewrite", but the reality is that even in optimal circumstances, it isn't always simple to transfer between languages, and particularly not when you start getting into major applications. "Legacy" is not necessarily a dirty word.

    Even back in the early '80's, it was an axiom that COBOL was "dying," and would soon be replaced. Amazingly enough, it hasn't happened, but many of the "more powerful, better" languages that were supposed to supplant it are pretty much forgotten or not commonly used. This leads up to the question of exactly which language do you plan on rewriting in? You, yourself, have postulated a thirty year lifespan. Which of today's "hot" and "powerful" languages do you think is going to last that long? C? C++? D? Pascal? Java? Python? Perl? All of them have had (or are having)their day as the new "best" programming language. Some of them have also fallen by the wayside, or are having people start to leave them for the new "next best thing." Is someone in thirty years going to know how to program in one of them, or learn the language easily?

    I wouldn't take too many bets on that. Maybe I'm wrong, but I would be willing to take some serious money on COBOL still being around. It does what it's supposed to do, it's easy to learn, it's portable, and it works. That's pretty much all we can ask of any programming language. Which is why this language has lasted as long as it has, while many of its "replacements" have gone away, whether any of us like it or not.

  60. pry that card deck from my cold, dead hands ... by peter303 · · Score: 1

    To paraphrase what Charlton says about his rifle.

  61. mod parent up by svallarian · · Score: 1

    He must be an IBM consultant, he knows the dark secret!

    --
    I patented screwing your mom. But it got revoked for "prior art."
  62. TINC by Anonymous Coward · · Score: 0

    There Is No COBOL.

  63. Re:From my experience by sideswipe76 · · Score: 1

    Yep, and when you realize that you have sabotaged your career by tying it to dinosaur technology you can't blame anyone but yourself. COBOL was great for it's time -- of that I have no doubt. But, the reason the only guys you can get to work on an old OS/390 system isn't necessarily because they like OS/390, but they never changed with the times and diversified and that's all they are qualified to do. I don't know anyone who even knows anyone, who is written NEW COBOL code. So, maybe your thing is supporting someones 30 year old COBOL system -- a job fit for someone waiting to retire from the age of 25 forward.

  64. Uh, dude, like 2 + 2 = 22. by mosel-saar-ruwer · · Score: 1

    Dude, like, everyone knows that 2 + 2 = 22:

    <script language="javascript">

    var i = parseInt(2);
    var j = parseInt(2);
    var k = i + j;

    window.alert(i + " + " + j + " = " + k + ".");
    window.alert(i + " + " + j + " = " + i + j + ".");
    window.alert(i + " + " + j + " = " + (i + j) + ".");

    </script>


  65. Cobol and research community by freddieboogiewoogie · · Score: 2, Interesting
    The software engineering research communities have been aware of the problems (decreasing number of developers, hardcoded business rules, required integration with other systems, ...) tied to legacy software systems, and there's still active research going on in these areas.

    <shameless plug>
    In our research group e.g., we're evaluating aspect-orientation (AOP) as a means to both reverse-engineer (understand) and re-engineer (modify) legacy software written in Cobol or C. To this end, we've designed and implemented an aspect language called Cobble (http://faramir.ugent.be/~kdschutt/cobble/) and applied it on some typical legacy problems like Y2K, transition to Euro, encapsulation of web services, ... (see http://allserv.ugent.be/~badams/publications/2006/ ao4vittel.pdf). Similar work is done for C (http://users.ugent.be/~badams/aspicere).
    </shameless plug>

    Now, the biggest problems we encountered for Cobol (contrast this e.g. with the Java world) were:
    • dozens of existing Cobol dialects coupled to the sheer absence of open source Cobol software (to experiment with)
    • lack of a decent (free) IDE or some other infrastructure to start tweaking
    • lack of an unambiguous Cobol parser
    • Cobol's sheer unlimited number of features

    Eventually, we had to implement our tools from scratch, tied to a subset of one particular Cobol dialect. This severely reduced the time for actual research. So, Cobol is not so simple as it may seem at first sight and this is aggravated by the limited (compared to Java, C#, ...) available tool support.
    1. Re:Cobol and research community by Anonymous Coward · · Score: 0

      Why? Just convert MOVE to "=", IF to "if", etc.

  66. Literature != Software by DimGeo · · Score: 1

    I used to think that way 6 years ago. Now I know that's dead wrong. In literature, you lay out your feelings / your ideas. They develop over time, and with each re-write become clearer to you and on the paper. In software, your ideas seldom matter. What matters are requirements that develop independently from you, and workarounds for various issues that have nothing to do with your creativity, and develop themselves just out of necessity. Software is not an expression of ideas, it's a machine, and should be treated as such.

    1. Re:Literature != Software by mandelbr0t · · Score: 1

      And I used to think your way. I'd certainly not say that either is superior to the other. In a creative sense, computer programming is an exercise in translation. The only difference is that the translation must exactly meet certain technical details, rather than expressing fuzzier, human-like ideas. Once the required documentation as to what the technical details are understood, it is now a matter of translating your understanding of the application into a language the computer understands. That is most certainly a creative process.

      Writing documentation that expresses the details is an exercise in translation as well; that from a mathematical, formal language to English that the coder will understand. I know that there's engineering processes involved too (in many of the larger applications that people have mentioned), which evaluate the correctness of the mathematics. I'm not an engineer, nor did I claim to be. I probably drive people nuts who insist that only a formal methodology can produce executable code, but I've had plenty of success with my own methodology.

      I don't work on these large-scale projects, but most business programming I've seen falls into the "can hack together in Perl in a few weeks" category. Pretty much any web application short of Google falls into that category as well. That should be plenty to keep me busy.

      mandelbr0t

      --
      "Please describe the scientific nature of the 'whammy'" - Agent Scully
    2. Re:Literature != Software by DimGeo · · Score: 1

      You're right that it's a creative process, but when the app grows large (think 20+ fulltime developers), then such things as versions step in and large chunks of the app get rewritten/redesigned, while the inner workings of some of the things are largely copied from the old version (together with special cases handling, which can sometimes get thrown away because of new more general-purpose requirements, etc). So you're right too that rewriting helps but not all should be thrown away, etc... It's a mess :)

    3. Re:Literature != Software by stretch0611 · · Score: 1
      I don't work on these large-scale projects, but most business programming I've seen falls into the "can hack together in Perl in a few weeks" category. Pretty much any web application short of Google falls into that category as well. That should be plenty to keep me busy. mandelbr0t
      If all your experience comes down to this and you never worked on an enterprise sized project than you have lost all credibility to create your parent post. Most programs I have seen and written in COBOL can not be turned into a perl hack in a few weeks. (I am not knock perl, just mandelbr0t's logical ability.) Many systems have complex business rules and can take months if not a few years to fully implement. To believe that you can take these programs and hack a program out of it in a few weeks show you do not understand them at all.
      --
      Looking for a job?
      Want your resume written professionally?
      DON'T USE TUNAREZ!!!
  67. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  68. Correction by geekoid · · Score: 0

    "The antique language accounted for 75% of all business transactions last year, and some 90% of financial transactions. "

    should be:
    This mature language accounts for 75% of all business transactions last year, and some 90% of financial transactions.

    It works well, and has compilers that have been improved for 25+ years.

    It is sad when people want a language thats new and unproven over a mature language that works.

    And for this type of enviroment Ruby, .net, pythan, perl, etc. are all unproven

    --
    The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
  69. COBOL Fits Business Transaction App Domain by raftpeople · · Score: 1

    Just to add to the parent post: COBOL and RPG are both simple languages that happen to fit the domain of transaction oriented and batch processing for business applications. These apps typically don't require advanced data structures and OO techniques to reduce complexity or increase manageability of the system. Typically a business transaction follows a relatively sequential process of conditionals and setting status/adding/subtracting value/storing new info, lather, rinse and repeat. These languages include operations designed for this basic movement of data, in and out of the DB, between work areas, and decimal math operations. The additional functionality in other languages typically doesn't add much value in this arena.

    1. Re:COBOL Fits Business Transaction App Domain by plsander · · Score: 1

      That or the advanced data structures are built and managed for you by the system...

      I love being able to use a record structure in my program with a simple F external spec.

  70. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  71. Not My Problem by Anonymous Coward · · Score: 0

    "should the community spend more time building tools to make COBOL livable?"

    I thought that was the job of the pharmaceutical industry.

  72. AAAAH! by gers0667 · · Score: 2, Insightful

    Oh please, god, no!!!

    I started my professional programming career in 1999 by doing y2k conversion on an s/390. Millions of lines of COBOL. All my friends at college had the cool jobs of C++ GUI's and Java web apps. Even the professors laughed at me when I told them what I was doing. Do you know strange it is to work on code that was last updated 9 years before you were born.

    In all seriousness...

    I can understand why COBOL is still popular now. From my experience, most major companies made a big technology leap a long time ago, investing millions in massive mainframes to run the company. These systems are still held up and run by their aging staff. (I was 17, the next youngest programmer was 50+). These systems get so massive and complex, "modernizing" is just another word for rewriting.

    I suppose 20 years down the road, we'll all be complaining about legacy java systems. 50 years down the road, legacy ruby systems.

  73. Perl::COBOL by Doc+Ruby · · Score: 1

    How about a Perl module that snarfs COBOL sourcecode and spits out Perl source, which then is either eval()'ed against the COBOL formatted data, or just stored for later execution as a standalone script? How about a Perl6 module that compiles COBOL sourcecode to Perl bytecode? COBOL is mainly just printf(), with the remaining fraction doable in Perl anyway.

    --

    --
    make install -not war

    1. Re:Perl::COBOL by frank_adrian314159 · · Score: 1
      How about a Perl6 module that compiles COBOL sourcecode to Perl bytecode? COBOL is mainly just printf(), with the remaining fraction doable in Perl anyway.

      Sure! Shouldn't take more than about two hours... Go for it. I'm sure folks would pay big bucks for that.

      Oh, did I say two hours? I meant two decades, especially when you figure in the man-years of optimization on the database interfaces and I/O subsystems. However, they'll still pay big bucks for it. But I don't think I'd use Perl for the implementation or Parrot for the target VM. You're probably going to want to design an entirely new VM that matches the language for performance reasons, so you'd better do that in C (actually, assembler, if you want it to be fast enough). And, as for the compiler, there are enough special cases in the parsing that you'd probably want something a bit more structured than Perl. If you really don't like C, I'd suggest PL\I...

      Of course, they would still pay big bucks for it...

      --
      That is all.
    2. Re:Perl::COBOL by Doc+Ruby · · Score: 1

      No, we just have faster mainframes. New versions of Perl will implement new HW optimizations at the same rate (faster, really, from the larger dev community and easier porting from other projects) as new COBOL releases can. It doesn't take 2 decades, but yes it would of course take time - though not decades, especially if the next-gen COBOL developers work in a better environment like a new Perl. Does the prospect of more than 2 hours of developing a new language merger mean we shouldn't do it? You really must never have programmed COBOL if you can't handle such dev timeframes.

      --

      --
      make install -not war

  74. Never Equaled by sycodon · · Score: 1

    There is one aspect of COBOL that I have never seen bested by any language; the ability to slice and dice a record, move it around, copy it, redefine data types as needed, etc.

    And as for maintaining, a properly written COBOL program has no equal in ease of understanding what the heck it is doing to what.

    --
    When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
  75. Re:Wordy stupid by Bozdune · · Score: 1

    Unfortunately I am old enough to weigh in on this. The most productive COBOL programmers back in the day used secretaries who manually transcribed abbreviations and shortcuts into COBOL syntax, using memorized templates. The programmers themselves operated only with the abbreviations. This practice turned out to be a very significant productivity win.

    Less typing is not a "stupid meme" at all, at least as it applies to COBOL. However, the arguments by C bigots that they have to type more in Java or whatever are, I'll agree, silly.

  76. Re:From my experience by gillbates · · Score: 5, Funny

    can't replace the existing 200 billion lines of code.

    Sure you can. A 20 line Perl script would probably work just as well.

    And you can't maintain 200 billion lines of COBOL, either.

    But seriously, COBOL is so verbose that the 200 billion lines of COBOL could probably be replaced by 100 million lines of C++ or Java. And it would be more maintainable. COBOL exists to keep programmers employed; consider what it provides for the programmer:

    • Job Security: Everything is global - the programmer must keep the whole program, and all the programs called by it, and the programs that call it, in his head. Naturally, learning a complicated system takes time, meaning that the SYSTEM PROGRAMMER can't be replaced at the drop of a hat. If you fire him, you'll have to bring in EXPENSIVE CONSULTANTS until you can find the other programmer in your state who knows COBOL.
    • Ease of use: No pithy naming standards to follow (unless enforced by the organization). No need to limit the scope of procedures (Hey! - everything's global, so why not put it all in one subroutine! Yay!). No complaints about inadvertently modifying variables you shouldn't, no type checking (real programmers don't need it...) etc...
    • Big Money: You are one of the two available programmers in your state who know COBOL. The other one wants a second house in the Caymans, though you prefer the lakeside cottage in Wisconsin. Unless the company wants to hire EVEN MORE EXPENSIVE CONSULTANTS, they'll pay the salary to provide whichever house you choose.
    • Ability to use the CAPSLOCK without offending anyone. Just like you used to post on usenet!
    • Literacy skills: You'd never have to consider something complicated like "salary = (bonus + (hours * hourly_wage));" Instead, you have, in plain English:
      MULTIPLY HOURL-WAGE-IN-CENTS TIMES HOURS-LOGGED-FOR-THIS-EMPLOYEE-ONLY-NOT-INCLUDING- OVERTIME GIVING TEMPORARY-SALARY-FOR-THIS-WEEK.
      ADD TEMPORARY-SALARY-FOR-THIS-WEEK TO ONE-TIME-BONUS-FOR-SALARIED-EMPLOYEES-NOT-RECEIVIN G-PROFIT-SHARING.
      MOVE BY NAME TMP-EMPLOYEE-SALARY-CALCULATION-WORKSHEET-STRUCTUR E TO FINAL-EMPLOYEE-SALARY-WORKSHEET.

    But I jest, of course. The truth is, most businesses are so afraid of moving away from COBOL that they'd rather continue to shell out premium salaries than take the risk of a failed migration. Kind of like a lot of Windows users - they'd like to try Linux, but are afraid of change. Well, I suppose you get what you deserve.

    --
    The society for a thought-free internet welcomes you.
  77. Can We Call It ..... by Anonymous Coward · · Score: 0

    Add 1 to COBOL

  78. No jobs means no effort by abradsn · · Score: 1

    Old, dead, languages with no job potential or revenue potential for tools means that we will expend no effort over it.

    Corporations that are still on cobol are eventually just going to be screwed (if they wait too long). A 486 could handle the same problem, much faster nowadays, and cost less to run. Rewriting a million lines of cobol could be done in 50k lines of C# or Java. Maintenaince would be easier. Bugs would be fewer. Imagine all the dead code accumulated in that mess over 20 or 30 years.

    I'm all for "don't spend money until you need to" ... but that doesn't mean that there won't be a need. It will happen, and for some companies they are just putting off the inevitable a little bit longer.

    1. Re:No jobs means no effort by frank_adrian314159 · · Score: 1
      Corporations that are still on cobol are eventually just going to be screwed (if they wait too long). A 486 could handle the same problem, much faster nowadays, and cost less to run.

      Yeah... right. Spoken like someone who's never worked with big iron. Let's see your PC hardware handle a couple hundred thousand transactions per second, each one potentially coming from a different command with up to twenty-five or so input parameters. Then add in a couple hundred random queries per second for good measure. Then make sure all of that's backed by an atomically safe database holding a few dozen terabytes of data. Then make sure it can run for ten years with perhaps an hour of downtime total. And, if you really can do that with a 486? Well, the world is willing to pay you a lot of money for that.

      --
      That is all.
    2. Re:No jobs means no effort by abradsn · · Score: 1

      Okay, I stand corrected on some of those issues.

      I admit that I exagerated a bit, though so are you in that a modern server can handle many of those tasks relatively efficiently and without downtime.

      I would say that I would need about 20 servers to accomplish what you are talking about. And, I know that it is slightly more of an engineering challenge to do so on a distributed system (as opposed to a single system image that you are likely working with on your mainframe) so I can admit to some overhead there too.

      I can also admit that throughput and uptime would be more of a challenge in a distributed system. I also know from practical experience that these problems can be overcome if given some descent amount of thought. I've personally written several such systems.

      I'm basically just trying to say that although mainframes were nice for their day, they are on the way out right now -- in favor of a more distributed approach. I think they will come back into fashion again eventually, but not for quite a while, and that might be along time too late for companies that need to compete and keep up with the rest of the marketplace in their technology.

      And of course, I don't mean to belittle the time/cost benefit trade off of having an already working system. I'm all for, not fixing something that isn't broken. Perhaps I came across more harshly then I meant to in my original post. I would hate to be the one to rewrite a system like that.

  79. 1 change is all by Anonymous Coward · · Score: 0

    All they need to add is a "#AnotherLanguage" directive.

    Example:

    #AnotherLanguage: Ruby ...

    #AnotherLanguage

    Seriously, I see people moving Cobol programs from mid-range boxes to Windows Cobol on stock boxes with relatively low effort all the time in the insurance space. That usually works out pretty well, which says something about Cobol I guess.

    1. Re:1 change is all by Anonymous Coward · · Score: 0

      Ruby, perl ?? are you people joking. This kind of code is never written in a non-type checked language (dynamic) for a reason, nor will it ever be.

  80. I thought it was hanged. by camperdave · · Score: 1

    ...Chris has the good looks of Antonio Banderas and is hung like John Holmes

    I thought the use of hung for people was bad form, so shouldn't it be: "Chris had the good looks of Antonio Banderas and was hanged like John Holmes."?

    --
    When our name is on the back of your car, we're behind you all the way!
    1. Re:I thought it was hanged. by LizardKing · · Score: 1

      I thought the use of hung for people was bad form, so shouldn't it be: "Chris had the good looks of Antonio Banderas and was hanged like John Holmes."?

      Having watched the Saddam video, I hope not.

  81. I know I'll get flamed for this, but... by smcdow · · Score: 1

    In 25 years time the same class of articles dealing with legacy systems and languages will be written, except they will be about Java instead of COBOL.

    --
    In the course of every project, it will become necessary to shoot the scientists and begin production.
  82. This is moot by Duncan3 · · Score: 1

    You have to keep your skills up to date with what's valuable, not with what's new.

    Thanks to outsourcing, you can get five, maybe ten dollars an hour for pre-spec'd Ruby or C# these days. Every high school kid in China and India is learning them, so paying more then that is foolish since there is probably a free open source solution anyway.

    I dunno about you, but that makes Ruby and C++ rather uninteresting skills to have. McDonalds will pay ten and hour for someone that speaks English (around here being legal makes you management).

    COBOL on the other hand you can support your family with, for now.

    --
    - Adam L. Beberg - The Cosm Project - http://www.mithral.com/
  83. Re:I am 56 years old - so DO IT by Anonymous Coward · · Score: 0

    I'm 54 and have been programming my daily bread in COBOL for the last 30 years. If you've got any experience in other languages COBOL shouldn't be too hard, just a pain in the butt.

    Knowing other languages doesn't hurt of course, I love playing around with LISP/Scheme, Smalltalk and have frittered away countless hours with Ruby, Python and even Forth.

    Main thing is (as a later poster recognises) is that familiarity with the biz world (or application domain, is that still a valid buzzphrase?) is what also helps.

    As to being replaced by a 21 year old it's unlikely since they think COBOL smells funny and their Java toting buddies will laugh at them. Of course they're usually wet behind the ears when it comes to a particular biz anyway and need some mentoring. But most are salvagable. :)

  84. The author mixes modern practice with modern arch. by iPaul · · Score: 1

    The author mixes the idea that the business process (how you do stuff in the business) is modernized if the architecture (the tools used for implementation) is modernized. So, if we use an SOA wrapper over a COBOL app we've modernized the business process. The business process is completely orthogonal to the language/platform being used. While tools like BEPL and SOA can enable flexible and modern practices, they don't guarantee that will be the fruit of your labor. A green screen app may represent an interface into the most modern, agile, and well thought out business process (i.e. how you do stuff for the business). An SOA may be an interface into the most 19th century, retrograde, stupid means of doing something business related (like sending e-mails to 3 different people to get approval to spend $10 on a new pencil sharpner).

    There's no such thing as a bad or dead language. There are languages that are better or worse than others for certain tasks. I make my bread and butter doing web apps. I started in C++, moved to Java, and now I'm working with Ruby. I've used what I felt were the best tools for the job at hand. For graduate school I spent a lot of time with Lisp, because that was the best tool for the job. For all my IT brothers and sisters out there busting COBOL for a living, I say be proud!

    --
    Leave the gun, take the cannoli -- Clemenza, The Godfather
  85. It's the enviroment, not the language. by natoochtoniket · · Score: 2, Insightful

    The problem with all of these modernization projects is not the language. It is the mass of old data, and the huge mass of business rules that are implemented by the old code. Reimplementing the business rules in new code, without interrupting the business, is just about impossible. Turns out the easy way is usually to just port the old Cobol code to the new environment.

    The problem is not the language. The problem is the environment. Consider: A lot of that old Cobol code presently runs on Autocoder 790 systems, which are run by emulators on an OS 360 system, which is run by an emulator on a 390 series "mainframe", which is run by an emulator in the old Sun box that gathers dust in the corner of the old data center.

    We really don't need a new language. What we need is something like a Cobol compiler, with an ISAM file-system emulation library, that outputs code for a well defined machine such as a java virtual machine. Then the resulting executables can run on whatever box happens to be handy next year.

    This is either funny or insightful. Maybe both.

  86. bounds checking by hey · · Score: 1

    Well, at least COBOL has array bounds checking. Unlike C/C++.

  87. Don't be by Dion · · Score: 1

    With the parser features in perl 6 COBOL can be reimplemented in 20 lines of perl:)

    --
    -- To dream a dream is grand, but to live it is divine. -- Leto ][
  88. Dated numbers? by ebvwfbw · · Score: 1
    The antique language accounted for 75% of all business transactions last year, and some 90% of financial transactions.

    The guy that said this from Ovum also said a lot more (HERE), cited on Microfocus' web site, the maker of Microfocus Cobol (yea, they are not biased....). Microfocus does make a good Cobol compiler BTW. That quote could be 10 years old or more and probably is. Most of finance moved on years ago and don't run a single line of Cobol anymore. NYC has a lot of mainframes displaced with blades and linux. IBM helped a lot of them do it. I know I threw all of my Cobol/MVS/other mainframe crap out years ago. I haven't even had an inquiry about that stuff for years.

    1. Re:Dated numbers? by SuiteSisterMary · · Score: 1

      I remember beta testing MicroFocus Visual Object COBOL in 1995.

      --
      Vintage computer games and RPG books available. Email me if you're interested.
  89. COBOL can be wrapped by CustomDesigned · · Score: 1
    The better COBOL implementations run in a virtual machine. So the program binaries can simply be copied from 68k to 88k to PPC to i386 running Unix or Linux or Windows or System 36. In a modern network environment, CORBA supports COBOL just fine. So keep the legacy business logic, and integrate it with your favorite modern language to web enable or whatever you need to do. Business logic is *very* *very* tricky, and generally has evolved over years of tweaking in response to real life situations. Don't even think about "rewriting" it. For smaller modules, sometimes you can get away with a relatively mechanical syntax translation so it can be conveniently "wrapped" in a new language.

    I've never supported COBOL, but I've supported my share of legacy business logic written in 1960s era languages.

  90. I wouldn't bet on your 50k lines of C# by Panaqqa · · Score: 1

    Once you get beyond the overhead of 100-200 lines of code shared by all COBOL programs (ENVIRONMENT DIVISION, etc.), some single lines of COBOL can perform some powerhouse tasks. It's not all "ADD SUBTOTAL AND TAXES GIVING TOTAL" type stuff.

    Now, as to speed: remember that COBOL compilers have become pretty damned efficient over 40+ years. I have seen 1,000 line COBOL programs compile into 24K executables (that's K not M), all of it optimized native machine language. And since COBOL programs are by nature procedural, not too much dead code escapes notice and stays in. I have seen COBOL programs running on a 25 year old 8-bit processor (IBM S/38) rip through a million row table in less time than a modern server would take using Java code hooked up to PostgreSQL (with all its abstraction layers, etc.) - COBOL, done properly, is anything but slow.

    1. Re:I wouldn't bet on your 50k lines of C# by abradsn · · Score: 1

      Postgres is pretty slow. In fact most modern rdbms databases are slow as hell if you compare them to the old style of database. But that's besides the point that you are making. I humbly stand corrected on the assumption of slow cobol. More though I was referring to the speedup that workstations have had over the past several decades... though I had a bit of a brain lapse in that area too (as pointed out in another reply).

      Since, I've not really seen production cobol code, I'll take your word for it. I was basing my assumption off of other code that was ported from procedural pascal to object pascal. So, looking back I can see that I am likely wrong about that assumption too.

      Cheers.

  91. Cobol is simple; don't tell anyone by Anonymous Coward · · Score: 0

    Cobol supporters I have met and those online are unfamiliar with the rest of the computer industry. That is how they can spew out streams of statements patently untrue and hilariously ignorant. Oooo...structures! Oooo...business rules! Even two older languages (Fortran and Lisp) are much more advanced.

    Cobol people would do best to not argue here in defense of their simple language. They need to avoid drawing attention to their simplistic technology and slow development process if they are to keep their management in the dark.

    And, the MicroFocus company should definitely keep quiet. Their tools are indeed very cool, but they need to keep the emphasis away from the Cobol language itself lest management smell the inefficiency. Sure, the financial companies are rolling in cash and able to sustain inefficiency--but for how long?

  92. COBOL is like the dumb jock who gets all the girls by Afroblanco · · Score: 0

    Big, stupid, and makes life miserable for geeks. We despise its success, but that doesn't change the fact. Much to our chagrin, the smartest candidate often loses out to the more boring, popular, and simpleminded one.

  93. COBOL . NET by Bob-taro · · Score: 1

    'nuff said

    --
    Prov 9:8 Do not rebuke mockers or they will hate you; rebuke the wise and they will love you.
  94. Domain Experts and Undocumented Work by gatesvp · · Score: 0, Offtopic

    The key limitation of COBOL systems are two-fold:

    1. You need Domain Experts.
    2. You need Documentation.

    The main hurdle I've found when dealing with Mainframe apps are the lack of either (or both) of these. You find these monolithic COBOL systems that have been continuously updated for over 20 years and nobody knows exactly what they do.

    What's more, 20 years of changes always involves some serious "Business Logic" changes. So the data is often kludged, with pre-1995 data treated differently from pre-2000 data, treated differently from current data. What's more, there are usually about 2 people who actually "remember" all of the changes, but it was never written down, so it's stored in the deep recesses of their brain. And since 1994 was the year that docs were still written in WordPerfect for DOS, you don't have electronic copies of anything unless you can find a dusty printout in an old binder somewhere.

    Oh yeah, and the two people who have been there for 20 years. They're too busy to really impart their knowledge to the batch of people replacing the system. And really, why do they want to obsolete themselves? Why go outside of their comfort zone? Why write all of these documents and undergo this whole process when the current system "works just fine" and I only have 5 years to retirement?

    So what's the reality? Most companies I've met have been taking shortcuts on their development processes for years. They kludge the code, fail to clean up, fail to date (or sometimes even comment) code and then they fail to document all of the changes.

    As we all know that these shortcuts save time now at the expense of time later. Well if you've been writing cheques from the "later" account (as most companies are wont to do), then you're eventually so far behind that you simply can't recover.

    Let's face it, if you had an exact spec for the functioning of your COBOL system, then conversion would not be a big deal. It would be time-consuming, but it wouldn't be "hard". But if you don't have a spec, then programming is not the issue at all. Without the spec all you have is a system with [un]known bugs and 20 years of vaguely understood changes.

    I've heard of people developing systems to refactor COBOL code, but this is just another kludge. Porting code just gives you bad code in another language, the goal is always to port concepts, which is why domain experts are so key.

    So basically, without Domain Experts and quality Documentation, COBOL systems will continue to exist. Without these two pieces the "upgrade" is basically impossible.

  95. COBOL+VB by dtfinch · · Score: 2, Informative

    Some of the scariest shit I've ever seen. The old parts are written in COBOL, a pile of over 4000 scripts with 6 character filenames that work together to form an ERP system. It originally used flat files to store records, with multiple record types in each file. At some point they managed to upgrade to a real database server without significant code changes, which means multiple record types, with completely different fields, in each table. It updates database records using the ever popular "delete and reinsert without any atomicity" method, occasionally (dozens of times) deleting a major customer's records because it crashed while updating them. New parts of the ERP system are written in VB6, and store much of their data in Access databases, despite that there's a perfectly good database server they could use. At one point I wrote a script to monitor one of the Access databases and backup and repair it each time it became corrupted.

  96. COBOL is not all by bytesex · · Score: 1

    COBOL is just a very small part of an (IBM) puzzle; you say COBOL, but you mean COBOL, CICS, OS/390 architecture, mainframe terminals, that protocol that goes in between them, that horrible tree-based database architecture, MQ-server etc. etc. etc.

    --
    Religion is what happens when nature strikes and groupthink goes wrong.
  97. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  98. What's the point? by DonVictor · · Score: 1

    There's no point in this, because you're not filling a need. This is like developing a car for the Amish. It's not that they can't get a car, its that they don't want a car. If the COBOL shops had an interest in changing tools, they would have done so some time between 1959 and now.

    Someone with a huge pile of COBOL doesn't care about language features, expressibility, or whatever else is out there. If they wanted any of that they would switch. They care about shareholder value and ROI, which dictate that "change nothing" is cheaper than "rewrite everything".

  99. Yes I coded COBOL in college... by Harlow_B_Ashur · · Score: 1


    but I never compiled!

  100. LISP legacy codes? by peter303 · · Score: 1

    My sense is LISP is the exception because it wasnt a core commercial language, save for an A.I. business bubble in the 80s. Academics tend to rewrite their codes more often. Or more precisely each generation of energetic grad student re-invents the next great system, but only writes 80% of it.

  101. Re:COBOL . NET - MEMO TO IBM - OPEN SOURCE MONO by scottsk · · Score: 1

    Two great tastes that taste great together ... too bad there's not a free COBOL .NET for Mono - if people could hack COBOL (don't laugh, there's an Emacs editing mode for it, ask me how I know) on a Linux box, they'd be more apt to learn it. If I saw there was a demand for COBOL programmers, I would buy Mike Murach's book and work through it with my Mono COBOL compiler. The real problem is there's no open-source COBOL compiler. IBM has COBOL compilers. They ought to take one of them, retarget the back end code generator for Mono or the JVM, and release it under AlphaWorks or something. Then people could learn COBOL very easily. (I know IBM had a COBOL compiler for OS/2 and Windows - they could almost release it as-is for the x86 Linux architecture. I mean, you'd have to change the I/O calls to use UNIX-style I/O, but you can almost be sure the runtime library is written in C and could be ported easily.) That's my beef - there's a skills shortage!!! Well, why not release better tools so people can learn? Not everyone has a mainframe. Although I guess you could get an old VS COBOL II tape image and run it under the MVS 3.8 turnkey Hercules system....

  102. Object-oriented COBOL on the Java Virtual Machine by dazedNconfuzed · · Score: 2, Interesting
    --
    Can we get a "-1 Wrong" moderation option?
  103. death of COBOL predicted by OricAtmos48K · · Score: 1
    1893: Ada Lovelace discovers Charles Babbage

    1895: Ada Lovelace discovers the calculator is more fun than Charles Babbage

    1950: COBOL is born; world celebrates

    1953: FORTRAN is born; revenge on COBOL

    1957: Death of COBOL predicted

    1963: BASIC is born; a language for people who do counting on their fingers

    1965: Death of FORTRAN predicted

    1966: C is on the horizon

    1973: Death of COBOL predicted

    1974: Pascal is born; competition with C

    1977: C is born; revenge on FORTRAN

    1979: Ada is born; revenge on Charles Babbage

    1982: Death of FORTRAN predicted

    1985: Death of Charles Babbage predicted

    1986: Death of COBOL predicted

    1991: Charles Babbage legally pronounced dead

    1993: Death of BASIC predicted

    1997: merging of C and C++ into new language D

    2001: dark monolith discovered on Jupiter moon; determined to be an old COBOL card deck for an accounts receivable program

    2002: COBOL reborn as COBOL++

    2010: Death of Pascal predicted

  104. "Modern" languages fail to support decimal numbers by Chuck_McDevitt · · Score: 1

    One reason COBOL works well is that it supports decimal numbers and decimal arithemetic. No sane financial guy is going to let you use floating point (i.e. Approximate numerics) in financial calculations. This makes it very difficult to migrate any of the work the COBOL code is doing into other laguages.

  105. Scotty's Laws by Anonymous Coward · · Score: 0

    Your forgetting Scotty's Laws, which required you as an engineer to maintain your miracle worker image while supporting the captain of the ship in his image that he understands everything that is going on. COmmon Business Oriented Language was in part developed with this in mind and to allow some code discussion with the accountants and financial workers necessary to deliver the required design. Now when the CEO demands to see something of the code, well that's no problem, "sure mr. ceo, will take an x hour printing run to get you that and will have it delivered to you", print it out, ship the boxes of printed materials to the CEO, keep in mind these are huge boxes with all the pages about the size of a desk calendar ( you know, the ones that lay down and cover most of the desk), thousands upon thousands of pages, all with easily recognizable words on them. All the CEOs closest subordinates will assure him its readily understandable to them, accounting will assure him they understand it, finance will assure him they understand it, but there he sits in his office filled with boxes of printouts and scratches his head, sure he understands some of the words on the printouts but,,,,. The CEO may even call up the IT head for some discussion but even with him he will be trying not to let out how clueless he is about something on his ship, in the end all the printouts get returned to IT and the miracle workers are left alone.

    Now if these programs were done in other languages, no one but IT would pretend to understand it and the CEO would feel free to say "this is gibberish, give me something I understand, I am required to watch over you guys." The selling point on computers in those days was that they replaced bookkeepers, accountants and some financial people with lower paid data entry clerks etc.

  106. Re:From my experience by Martin71a · · Score: 1

    Its like the guy that has two cars. He has a 1976 Volvo with 300,000 miles that runs fine and gets him from A to B in a reasonable manner. He drives this Volvo to work, to run errands, and it performs its job routinely without fail. When he wants to go out run 150 mph down the autobahn he takes out his Ferrari instead. Just because something is old and not efficient for a one task doesn't mean it still isn't efficient for what it was designed. Would I develop alot of new apps in COBOL? Probably not but that doesn't mean that every line of COBOL needs to be converted. COBOL for business transaction oriented apps, especially batch applications, is quite sufficient. It is easy to learn, easy to maintain when documented, and portable.

  107. Re:From my experience by NiteShaed · · Score: 1

    Funny, I thought it was "Confusion Oriented Business Obfuscation Language" :)

    --
    Some bring out the best in others, some the worst. Some bring out far more.
  108. Re:COBOL is dominant because no change is required by asuffield · · Score: 1
    The reason there is so much legacy code about is because that code has been around for some years, is proven and is bug free.


    It's more like "because the people who would have to make the decision to replace it don't care about the bugs and see no point spending money on a replacement". They have low-paid grunts to take care of the bugs for them - and the labour costs are insignificant compared to the cost of the maintainance contract on that hardware.
  109. Re:UTTER Nonsense! COBOL is glue language in a sta by frank_adrian314159 · · Score: 1
    But no one is going to port their mission-critical business applications from a mainframe to a virtual machine runtime environment.

    That's because on a mainframe (at least a zSeries), they're already running in one! I love the mainframe's HW virtualization support. And think! It's only been around forty-some years! F*ckin' Intel/AMD newbs...

    --
    That is all.
  110. Re:A Modest Solution by oohshiny · · Score: 1

    Just merge C, Ruby, & COBOL syntax into one compiler.

    That's roughly what .NET is; it's a bunch of front-ends and a single back-end compiler. And it can handle those language, plus Java (and probably Perl 6 as well).

  111. bullshit by oohshiny · · Score: 1

    Integrating structure I/O and databases into programming languages was a fad in the 60's and 70's. Even Pascal and C ended up having embedded SQL.

    People moved away from it because they realized that it was better to give people general purpose language constructs rather than hardcode a bunch of database code into the language compiler.

  112. COBOL Is English? by BBCWatcher · · Score: 1, Interesting

    I'm always fascinated by the programming language debates here at Slashdot. They don't make any sense to me.

    English is a terrible, confusing mess of a spoken language (and not so great written). Some of the Asian languages are written language monstrosities. Modern Japanese has four alphabets (including romanji)! Esperanto allegedly fixes all that. So we'll all be speaking and writing Esperanto any day now, right? No.

    COBOL thrives because it gets its job done, and it has an enormous (and growing -- 2 billion net new lines each year) installed value. That's not going to change any time soon although, just like English, COBOL will evolve.

    Speaking of evolution, there's an awful lot of dated knowledge about COBOL in this long discussion. It's hard to know where to begin to address that. Looking just at the relatively recent IBM stuff, modern COBOL (called "Enterprise COBOL" in IBM parlance) is now object oriented (if you want or need), has language syntax to parse and generate XML, and has well specified cross-language calling conventions in every direction you can imagine (COBOL to Java, Java to COBOL, C to COBOL, COBOL to C, etc.) The environmentals and tooling keep getting more and more interesting, and that's probably a lot more important than the language itself. Something called WebSphere Developer for System z puts all COBOL development onto a graphical Eclipse framework. (Want to set a breakpoint? Drag a stop sign. Can't remember what verb comes next? Use Code Assist. Want to map copybooks to/from XML? Drag and drop.) No more TSO/ISPF/PF12 stuff (unless you want). The IBM Debug Tool U&AF has great code coverage measurements as you test. Application Performance Analyzer lets you peer into all your code to tweak it and optimize it extremely rigorously. Fault Analyzer zeros in on exactly where an abend occurred and helps you figure out what was going on in order to quickly fix the problem. The source code libraries/change management tools (SCLM, Endevor, Panvalet, ChangeMan, etc.) are first rate for team development and, at least in the case of SCLM and Endevor, plug into WebSphere Developer for z so you can do check-ins/check-outs from your PC. The testing tools (IBM's or Compuware's) are also first rate and keep getting better. You can even do many wild things most other languages can't, like instantiate COBOL as EJBs running inside WebSphere Application Server for z/OS alongside Java EJBs, interoperating transparently and as full peers. Re: Linux (including mainframe Linux), AccuCOBOL, a commercial compiler, seems to be getting reasonably popular. For code analysis and understanding IBM's WebSphere Studio Asset Analyzer, Asset Transformation Workbench, and CICS Interdependency Analyzer are all quite helpful, and I don't think I've seen that level of sophistication in comparable tools for other programming languages. It's probably also worth mentioning Language Environment, which puts COBOL on the same common runtime foundation as every other programming language for tracing, debugging, abend analysis, etc. LE started about 20 years ago, but it has evolved and matured quite nicely and keeps getting better.

    I would like to see a 64-bit z/OS COBOL compiler. IBM hasn't pulled the trigger yet, out of an abundance of caution I think. (COBOL requirements tend to get driven by "we're going to need it in X years" rather than "wouldn't it be cool to have?" And I think we're only just getting into the time when direct support for 64-bit data structures looks like it might be moving into the "need soon" category.) C, C++, Assembler (obviously), and Java have all already made the leap on z/OS, so my suspicion is that COBOL is next. Note that 64-bit v. 31-bit -- yes, 31-bit -- isn't really the same issue as on other machines. You can mix 64-bit and 31-bit code freely on z/OS, including cross calling conventions. The only issue is whether a single address space running a COBOL program can itself contain a 64-bit data object of some kind. Right now that's 1.8 GB of data objects, or thereabouts.

    1. Re:COBOL Is English? by Anonymous Coward · · Score: 0

      This comment above has to a joke. ??

    2. Re:COBOL Is English? by Anonymous Coward · · Score: 0

      This comment above has to an idiot. ??

  113. Re:A Modest Solution by DarkOx · · Score: 1

    Dude you have never see the results of a COBOL to C translator before have you. We used one to migrate some of our store systems form COBOL ot C. The result is something we call C-BOL. You have C code but each of the WORKING-STORAGE SECTION. Paragraphs are made into structs, and any place you did a move by name or somehting results in an even crazier union. Trust me you don't really want to go this way...

    --
    Repeal the 17th Amendment TODAY! Also Please Read http://www.gnu.org/philosophy/right-to-read.html
  114. Re:UTTER Nonsense! COBOL is glue language in a sta by Shadow99_1 · · Score: 1

    Uhh... CICS... please don't remind me of it... CICS was the last straw that made me decide networking was for me programming was not... The fewer reminders of that nightmare the better... Heck the fewer the number of times I have to remember trying to debug 150k line COBOL apps that spill out onto 30 or 40 pages of paper (which was 'easier' to read than the IDE interfaces window on screen) the better...

    --
    we are all invisible unless we choose otherwise
  115. You know.... by Shads · · Score: 3, Interesting

    ... I can program in C/C++, Pascal/Delphi, Java, VB/Basic, Perl, a bit of Ruby, Python, and several shell scripting languages/applications like sed/awk. I find cobol to be the most obnoxious pain in the ass language I've ever used. I had to take two semesters of it in college and I hate it. I hate it just like I hate RPG. They're underpowered, obnoxious, and annoying to work with. Screw cobol, screw rpg. I'd sooner bag groceries than program in either language.

    --
    Shadus
    1. Re:You know.... by antipody · · Score: 1

      Then you would have COBOL screwing you.

  116. open source COBOL by cavehobbit · · Score: 1

    I am surprised no one has found this: http://www.opencobol.org/

  117. CoBOL and ForTran by Joseph_Daniel_Zukige · · Score: 1

    ... if we are going to talk about capitalization.

    Co_mmon B_usiness O_riented L_anguage

    For_mula Tran_slator

  118. Yeah, but the suit by Joseph_Daniel_Zukige · · Score: 1

    will find the SUBTRACT TOTAL-EXPENSES form better.

    Except my memory is that it is more likely to be

    SUBTRACT 1200-TOTAL-EXPENSES FROM 5000-GROSS-SALES GIVING 3300-NET-PROFIT.

    where the 1200, the 5000, and the 3300 are essentially scoping prefixes. Managed by the programmer according to the coding rules.

  119. Role Playing Games? by Joseph_Daniel_Zukige · · Score: 1

    I remember RPG. I had thought the rest of the world might have forgotten it.

    But, yeah, the real reason CoBOL sticks is that the suits don't like scope in their rules, and when they have to have it, they prefer it to be explicit.

    1. Re:Role Playing Games? by Cro+Magnon · · Score: 1
      I remember RPG. I had thought the rest of the world might have forgotten it.


      We're trying to forget it! I learned it at school because there was one large company that used it, but luckily I got hired at a COBOL place and never had see RPG again!
      --
      Slow down, cowboy! It has been 4 hours since you last posted. You must wait another few hours.
  120. Updating cobol plain silly by Anonymous Coward · · Score: 0

    Cobol was a hack to begin with. 5 years after the authors created it, they got together and stated publicly, that their efforts in creating the language were quick and dirty solutions. They never expected it to last longer than 6 months, at which time they expected something (almost anything) better would come along, and that if they expected that it would last as long as it did, they would have bothered doing a better job of it. Certainly all of the 'divisions' could easily be replaced with a simple variable list, and insistence on the formatting (line 12, line 80 and all that rot) could easily be done away with, as all modern languages have a whitespace eater in the command parser which is easy to implement. The lexical analyzer works just as well with the whitespace eater in place too, and is often easier to implement. The whitespace eater is about 10 lines of assembly. Cobol should have died in 1999. I know pundits will pound about how its critical and all that, but really, its all just assembly at the bottom (assembly being the mnemonics of machine code), and if you say your computer doesn't do that, well then, it doesn't have a processor now does it! Seriously, a Cobol2C translator should have been created and used (and sure, if a bug turns up, fix it), 35 years ago. I vote to make it mandatory that COBOL not be allowed to be installed on new hardware. When the vacuum tube beasts you old-timers insist on running finally break down, the COBOL can go with them. Modern languages for silicon based semiconductors I say! Let the dinosaurs and their ways of thinking go in the same direction.

  121. Let's try that again: by Joseph_Daniel_Zukige · · Score: 1

    MULTIPLY 9190-B BY 9190-B GIVING 9190-B-SQUARED.
                            MULTIPLY 4 BY 4320-A GIVING 4320-FOUR-A.
                            MULTIPLY 4320-FOUR-A BY 9180-C GIVING 9190-FOUR-A-C.
                            SUBTRACT 9190-FOUR-A-C FROM 9190-B-SQUARED GIVING 1000-RESULT-1.
                            COMPUTE 1000-RESULT-2 = 1000-RESULT-1 ** .5.
                            SUBTRACT 9190-B FROM 1000-RESULT-2 GIVING 77340-NUMERATOR.
                            MULTIPLY 2 BY 4320-A GIVING 77340-DENOMINATOR.
                            DIVIDE 77340-NUMERATOR BY 77340-DENOMINATOR GIVING 5500-X.

  122. automatic coding standards? by Joseph_Daniel_Zukige · · Score: 1

    Only if you have such tools and they happen to conform to the coding standards favored by your current bosses.

    Only in business could coding standards be an acceptable substitute for automatic scoping rules.

    Of course, no modern language gets automatic scoping right, either, so even if the suits didn't like global/explicit scope on everything, what modern languages provide really isn't enough of an improvement.

  123. Why rewrite? by Joseph_Daniel_Zukige · · Score: 1

    Precisely because nobody understands the rules well enough to dare rewrite.

    Business rules do change, and the old business rules never were really correct, just close enough for the time and then they got momentum.

    Still, to make a real replacement for CoBOL, we need to make the syntax for subprograms part of the language and fix the overhead so that subprograms can be called with no more penalty than procedure calls in Pascal. That, and make the linkage work so subprograms will be re-entrant.

    Trying to make PROCEDURE calls re-entrant will break too much.

  124. Context free by Joseph_Daniel_Zukige · · Score: 1

    CoBOL code inherently has serious problems emulating context sensitivity.

    That's why it can be so fast. You can't really parse with it, you can only run batch.

    Unless, of course, your program implements a stack or two and your coding rules make everyone go to the stacks for private variables.

  125. Re:UTTER Nonsense! COBOL is glue language in a sta by Anonymous Coward · · Score: 0

    Oh, I'm sorry you completely brainless boob, but several points: Linux runs on supercomputers... MOST OF THEM, including all of the top ten for the past several years. SUPERCOMPUTERS EAT MAINFRAMES FOR BREAKFAST LUNCH AND DINNER! The throughput of a measly little mainframe IS PITHY COMPARED TO A SUPERCOMPUTER! Secondly, there is NOTHING wrong with the uptime of Linux. Years, decades, no problem. As for 'typical linux box' do you mean this: http://www.sgi.com/products/servers/altix/4000/ ?
    You make it sound like something from microsoft, and are WAY OUT TO LUNCH! As for COBOL, it does nothing that ANY OTHER MODERN LANGUAGE CAN ALSO DO! Read carefully about what "TURING COMPLETE" means before spouting off again. You may have never heard of it before, but your level of education may be your limiting factor. Oh ,and BTW, Linux runs very well on IBM mainframes too (when Linux was ported to the mainframe, sales of mainframes went up for the first time in years). Be careful about biting the hand that feeds you! Upmty indeed, what a clod!

  126. INFO-COBOL@MIT-MC by SimHacker · · Score: 1

    One of the best kept secrets on the early ARPANET (which was supposed to be for official use only) was the INFO-COBOL@MIT-MC mailing list. It has absolutely nothing to do with COBOL -- it was for jokes and other funny stuff. It was called INFO-COBOL because at the time, emailing jokes was considered an abuse of the ARPANET.

    Occasionally some rube would stumble across it in the "list of lists" INTEREST-GROUPS.TXT, and ask a question about COBOL, and everybody would laugh uproariously at them -- the idea that somebody would actually consider using COBOL was even funnier than most of the jokes people posted.

    Then there was another stealth mailing list maintained by The TTY of Geoffrey S Goodfellow, called "DB-LOVERS", which was specifically for Dead Baby Jokes.

    -Don

    --
    Take a look and feel free: http://www.PieMenu.com
  127. Issues with COBOL by jbolden · · Score: 1

    Why? Do you have some facts that support your position?

    First off most ATM software was not written in COBOL. However problems with COBOL

    1) No anonymous data structures
    2) No typing on points, essentially only a void pointer
    2') Pointing to various types of dynamic or statically allocated structures is quite complex
    3) Weak conditionals
    4) No first class functions
    5) No recursion
    6) Limited variable constructors
    7) No garbage collection
    8) No obvious parse trees (yet another problem with build DSL in COBOL)

    I could go on but that list works for now

  128. With cbl2rb... by leonbrooks · · Score: 1

    ...the "write once" has already been done.

    Translating to red gems make your debugging easy — as in, you can now do some in Ruby instead of burying your COBOL in printouts & holding a scrying glass up against the results.

    --
    Got time? Spend some of it coding or testing
  129. Re:From my experience by peteybear · · Score: 1

    In comparing languages, it might be wise to remember that most of code written in any language was written by programmers, the vast majority of which never took the time to understand the languages in which they code; remember, the 80-20 rule applies virtually anywhere. It has been estimated that becoming a good programmer in any language takes 4-10 years. Most of those old COBOL programs were written by people just as motivated, dedicated and knowledgable as today's programmers. What has changed is the environment. In the early days of computing, practitioners didn't have the tools, training and techniques in any language that they have now; in many cases, much of what was being programmed was being done for the first time, ever. And the biggest COBOL facing programmers maintaining COBOL programs has little to do with the language, it has to do with the maintenance of the records pertaining to the application, particularly the state of the available source code. In that regard, with few, if any, exceptions, COBOL's supposedly verbose syntax is self-documenting, as it was intended to be. Frankly, most of the negative comments I've seen have been made by people with only limited knowledge or experience in COBOL. Another factor in the decline of COBOL is that it was used predominantly on mainframes; when minicomputers (remember them?) came along, it took some time for full versions of the COBOL compiler to be implemented on them, so applications were written in other languages. Today's COBOL compilers, like those from Acucorp, Fujitsu and Microfocus, to name a few, offer facilities, functionality, ease of use and productivity that are equal to or exceed that of many other languages. As in many other fields, apples-to-apples comparisons are often difficult to verify, and are often clouded by the experiences of those doing the comparisons: one man's fish is often another man's poison, and not alwasy within the realm of objectivity. I've found that most of what are commonly described as COBOL's faults or weaknesses are simply opinions based on a limited knowledge of COBOL versus other languages. Remember, it pays to know what end of the horse is doing the talking.

  130. Re:From my experience by Anonymous Coward · · Score: 0

    I'm not sure what schools you went to, but both times I went for CS I had to take four cobol classes. This was between 2-10 years ago.

  131. Re:"Modern" languages fail to support decimal numb by Anonymous Coward · · Score: 0

    Posting Anonymously for obvious reasons ...

    I've seen C++ code that bills non-exactly all over the place. If it was just adding stuff up, fair dos, but this crap applies rates. Well the prgrammers did try, and certain obvious problems are trapped.

    Fixed point maths. Never heard of it mate !!!!!

  132. COBOL is designed by committee by JCOTTON · · Score: 1

    Something that has not been said yet in this thread (and a few days late) is that COBOL is designed and controled. "The initial specifications for COBOL were presented in a report of the executive committee of CODASYL committee in April of 1960..." HERE COBOL Language features and syntax is designed for the purposes that Business needs and wants.
    1. Works Well, Efficient
    2. Easy to use
    And so on. Architecture, modern design, OO, and so on are not really in the mix. The reason that COBOL has remained stable for so long is because it is in the interest of Business. The programmers do not have to re-learn a new language every two years. The OS does not require massive upgrades (think XP, Vista) every 4 or 5 years. Stability saves money.

  133. Hey, thats MY job by blake6489 · · Score: 1

    as an intern for the DNR in alaska, my job is to do the grunt work of 'webifying' a ~21 year old COBOL database system. the back end isnt being changed, but the application is getting a java and jsp front end so that the forms can be used over the internet with something like modern a GUI.