Slashdot Mirror


COBOL Celebrates 50 Years

oranghutan writes "The language used to power most of the world's ATMs, COBOL, is turning 50. It also runs about 75 per cent of the world's business applications, so COBOL should be celebrated for making it to half a century. In cricketing terms, that's a good knock. The author says: 'COBOL's fate was decided during a meeting of the Short Range Committee, the organization responsible for submitting the first version of the language in 1959. The meeting was convened after a meeting at the Pentagon first laid down the guidelines for the language. Half a century later, Micro Focus published research which showed people still use COBOL at least 10 times throughout the course of an average working day in Australia. Only 18 per cent of those surveyed, however, had ever actually heard of COBOL.'"

51 of 277 comments (clear)

  1. A good knock in deed.. by bsDaemon · · Score: 5, Funny

    Though, to be fair, 50 years isn't quite as long as the average cricket game.

    1. Re:A good knock in deed.. by Eudial · · Score: 2, Funny

      Yeah, I almost had time to write a hello world program in COBOL during a cricket game once. Though I couldn't find enough Libraries of Congress to save it in, so I had to chuck it. A shame, really.

      --
      GAAH! MY PRINTER IS ON FIRE!!! PUT IT OUT! PUT IT OUT!
  2. 75% of apps? Shaa, right! by Adeptus_Luminati · · Score: 4, Interesting

    "It also runs about 75 per cent of the world's business applications"

    Gee, I didn't know Windows Apps were coded in COBOL.

    Come on, 75% is a HIGHLY dubious claim. Where's the source / proof / evidence? Where I work, we have nearly 200 business apps and I'm pretty sure less than 2% of business apps were made in COBOL - possibly even 0%.

    Adeptus

    --
    No trees were killed in the making of this post; however, many trillions of electrons were horribly inconvenienced.
    1. Re:75% of apps? Shaa, right! by duffbeer703 · · Score: 4, Informative

      Do you accept or make payment via credit card, check or ATM debit? Congratulations, you (indirectly) use COBOL.

      --
      Conformity is the jailer of freedom and enemy of growth. -JFK
    2. Re:75% of apps? Shaa, right! by Archtech · · Score: 4, Informative

      "It also runs about 75 per cent of the world's business applications"

      Gee, I didn't know Windows Apps were coded in COBOL.

      They can be, using the excellent Microfocus COBOL or many other implementations.

      But actually, only a very few of the world's (important) business applications run on Windows. Seriously. Big heavy-duty transaction-processing apps run overwhelmingly on mainframes, because they just work.

      --
      I am sure that there are many other solipsists out there.
    3. Re:75% of apps? Shaa, right! by Fred_A · · Score: 3, Funny

      Come on, 75% is a HIGHLY dubious claim. Where's the source / proof / evidence?

      Actually if just Solitaire was coded in COBOL it would seriously skew the statistics already, numerous people would spend hours poking at a COBOL app each day.

      --

      May contain traces of nut.
      Made from the freshest electrons.
    4. Re:75% of apps? Shaa, right! by Old97 · · Score: 4, Insightful

      The wording is misleading. Perhaps it's more accurate to say that 75% of business computing by value depends on COBOL. I've worked at a number of places in the financial services industry and have a lot of friends who do as well. All of our core business functions are still in COBOL. A lot of the data is still in VSAM, IMS and Model 204 legacy stores. A lot of what is in DB2, an RDBMS, is VSAM files converted directly to tables instead of truly relational databases.

      The fun stuff (Java, .NET, Web) runs the outward facing services and peripheral functions, but claims processing, credit card reconciliation, billing, accounting, etc. is still in COBOL. The computer industry press spends a lot of time admiring the new chrome and fins and that new built-in radio with FM, but business is still powered by the COBOL drive train running on mainframes.

      Even the clued in managers want to get off of it and onto more flexible systems and more productive languages, but it's too scary (risky) because they are afraid to break something. No one knows what the business rules are because they are embedded hither and yon in COBOL programs.

      --
      Very often, people confuse simple with simplistic. The nuance is lost on most. - Clement Mok
    5. Re:75% of apps? Shaa, right! by PhunkySchtuff · · Score: 4, Insightful

      Can we get rid of it? Surely COBOL has developed faults over time, just like a train that's been running since 1850 would have.

      Or, just maybe, it's proven itself to be stable, reliable, well-understood, suited to the purpose for which it's used and relatively bug free?

      Nah, of course not. It's old and busted. Bring on the new hotness.

    6. Re:75% of apps? Shaa, right! by drinkypoo · · Score: 3, Insightful

      I think what we're arguing over here is the application of the English language. As the sentence is written, it is probably incorrect. Due to logarithmic growth, it is virtually impossible that the numbers come out right. If one said that 70% of business transactions were facilitated through COBOL at least in part then it might be true, because of all the legacy code still doing its job out there at banks and other financial institutions.

      Mainframes are breathing their last gasp; they will soon exist only in cases where you need very fast access to all of very large data sets. And honestly, clustering filesystems and databases are solving that problem too. Clusters will rule nearly every aspect of large computing because they are the only thing more reliable than a mainframe.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    7. Re:75% of apps? Shaa, right! by MBGMorden · · Score: 4, Insightful

      I have to agree. We recently switched parts of our tax billing software from an old COBOL system running on an AS400 to Windows. There were some legitimate concerns involved - creating a graphical sketch wasn't possible on a text-mode system, and tax laws change very frequently, and the old system was just becoming difficult to maintain.

      So, we switched to a Windows app with a SQL Server backend. FWIW the database backend has been rock-solid, but the actual client? It's junk. That old clunky COBOL system might have been awkward to use and a bit long in the tooth, but it NEVER crashed, and its mistakes were minimal to say the least. This new Windows system crashes constantly (including crashing if you work too fast - yeah I literally have to do a "one one-thousand" count when switching between properties or the client will lock up), and it goofs up the data frequently enough that in another 5 years I think our data will be reduced to an unreliable mess.

      Truthfully though, it's not the fault of Windows, or whatever language the newer apps are written in (Visual Basic in the case of our new pile o' junk). You can certainly write good stuff in new languages on new systems. I think it's a two-fold problem. One, the complexities of a GUI makes codes many times more intricate, making the job more difficult (and more error prone), but also, programmers today look at problems differently. They program for "features" first so they can give a good sales presentation. In the old days it seems like a reduced feature set was fine so long as your code was done right. That's not the case anymore, which is a shames, because on most of our newer systems we use MAYBE 20% of of the features included, and I'd gladly trade the other 80% for stability and accuracy.

      --
      "People who think they know everything are very annoying to those of us who do."-Mark Twain
    8. Re:75% of apps? Shaa, right! by sgbett · · Score: 3, Insightful

      I don't think its the languages that are getting worse...

      --
      Invaders must die
    9. Re:75% of apps? Shaa, right! by SanityInAnarchy · · Score: 5, Insightful

      they will soon exist only in cases where you need very fast access to all of very large data sets.

      Which is quite often.

      And honestly, clustering filesystems and databases are solving that problem too.

      Except that clustering filesystems almost always have to compromise on one of the ACID properties. For example, Amazon's Dynamo and CouchDB are highly available, redundant, and fast, but allow conflicts, assuming the application will correct for them. Ok, but that fails for a banking application -- if I were to withdraw my entire balance from two different nodes simultaneously, I'd have a massive overdraft, but I'd also have the money.

      You could imagine trying to shard it instead, but what happens when you transfer money between two shards? You still need a transaction, only now it needs to be synchronized between two nodes. What do you do? Do you lock both nodes at once? Now you've got a possibility of deadlocks.

      Clusters will rule nearly every aspect of large computing because they are the only thing more reliable than a mainframe.

      Reliability can be defined in several ways. Clusters are more available than a mainframe -- if your mainframe goes down, you're down. But clusters are less consistent than a mainframe, unless you're willing to take such massive hits from synchronization that the performance advantage is gone.

      For the vast majority of applications, some inconsistency is acceptable. Take Amazon's example -- if you tell one node to add item A to your cart, and another node to add item B, producing two conflicting versions of your cart, the cart application should be smart enough to merge them. The only synchronization needed is checkout, and here, all you'd need to do is refer to a specific version of that record in the form that's submitted.

      But for applications which can't tolerate that inconsistency, unless there's some clustering method I'm unaware of, you're still going to want something like a mainframe.

      --
      Don't thank God, thank a doctor!
    10. Re:75% of apps? Shaa, right! by MikeBabcock · · Score: 2, Insightful

      What are you, a college student? You honestly believe anywhere near 75% of the world's business applications runs on Windows?

      Microsoft only wishes it had the big iron servers that do the fun stuff like banking and credit card processing.

      --
      - Michael T. Babcock (Yes, I blog)
    11. Re:75% of apps? Shaa, right! by Hurricane78 · · Score: 2, Informative

      GP uses the old "virtuality is reality" fallacy*. COBOL is not like a train, because it is not exposed to nature/physics. There is no natural disintegration in virtual things. It can lie there for a trillion years, and if the hardware is kept running and backups and error-correction are in place, it will not degrade in a single bit.

      Also "surely" is no base for any arguments to put on top of it. :)

      ___
      * The same one that media distribution companies use, to act as if the software on that media would be a real product instead of the result of a service.

      --
      Any sufficiently advanced intelligence is indistinguishable from stupidity.
    12. Re:75% of apps? Shaa, right! by SanityInAnarchy · · Score: 2, Insightful

      One, the complexities of a GUI makes codes many times more intricate, making the job more difficult (and more error prone),

      I doubt this is much of an issue. GUIs can certainly be abstracted to the point where it's not an issue.

      programmers today look at problems differently.

      Well, some programmers. (Hire me!)

      I do agree, but recent programmers certainly don't have a monopoly on WTFs. I think you've got something of the success effect here -- that is, your old COBOL system was necessarily reliable, because if it wasn't, it wouldn't have lasted this long. So the old COBOL apps that are still in production are likely at least somewhat reliable.

      But reliable and maintainable are different things. I'd argue rewriting them just to make them more maintainable -- carefully, of course, so they're reliable, but you also want to be able to open them up twenty years from now and make a minor change without pulling your hair out.

      --
      Don't thank God, thank a doctor!
    13. Re:75% of apps? Shaa, right! by MasterOfMagic · · Score: 5, Insightful

      Stable, reliable, well-understood, and bug-free are true of many more recent languages.

      <sarcasm>I didn't know that more modern languages had a 50 year history of reliability, scalability, and security to process transactions 24/7. Live and learn I guess...</sarcasm>

      Further, the cost of developing, debugging, and testing the replacement in any language (including redeveloping the system from the ground up in COBOL) is quite expensive, no matter what language you choose. Likely more expensive than the big iron and software environments necessary to run the old code that has worked reliably for the last 20 to 40 years.

    14. Re:75% of apps? Shaa, right! by Bakkster · · Score: 5, Insightful

      Stable, reliable, well-understood, and bug-free are true of many more recent languages.

      Yup, JAVA never crashes, C# is easily understood, C++ is free of bloat, and interpreted languages run faster. /s

      I dispute that it's the best suited to the purpose for which it's used. Show me a construct in COBOL that wouldn't be much easier in something modern -- even Java, if we have to.

      COBOL isn't used because it's easier to write than your JAVA or other new language. It's used because it was designed with business transactions in mind and is reliable. If you have to give up reliability or predictability to gain readability or 'modern-ness' (as has often been my experience with JAVA), it's not a good fit for businesses who can hire additional programmers to produce reliable code.

      Regardless, if COBOL works well for the application already, then some modern language would have to one hell of a lot better to rewrite these applications for the incremental improvement to be worth the cost and risk involved with a complete rewrite.

      --
      Write your representatives! Repeal the 2nd Law of Thermodynamics!
    15. Re:75% of apps? Shaa, right! by orzetto · · Score: 4, Insightful

      Visual Basic

      I think I see your problem here...

      One, the complexities of a GUI makes codes many times more intricate [...]

      Here's the rest of your problem. A GUI must never bump into a difficult or mission-critical algorithm. That's supposed to be its own library, which is accessed by the GUI through a clean and solid software interface. This is a major architectural fault: a Big Ball of Mud, and some languages encourage that more than others.

      My suggestion would be: get a language with a lower density of script kiddies, sufficiently popular and object-oriented (Python, C++, Java, ...), get some good programmers with proven track record, and rewrite the client. Specify that you want all functions and variables documented, and test suites; if they say "that will cost you more", show them the door. If they say "we do it anyway", that's a good sign.

      --
      Victims of 9/11: <3000. Traffic in the US: >30,000/y
    16. Re:75% of apps? Shaa, right! by baegucb · · Score: 3, Interesting

      Where I work we benchmarked database performance on existing servers vs. a Linux partition on the mainframe. Performance was 5 times faster on the mainframe. Massively parallel high speed IO made the mainframe faster So now we are converting stuff over to the mainframe. And if we want near 100% uptime, it's done on the mainframe, so the most important web sites run on the mainframe.

      I do agree with your comment though about the 70% of transactions.

      As a side note, COBOL is an easy language, but others are more fun to code in. I always liked assembler best :)

    17. Re:75% of apps? Shaa, right! by SanityInAnarchy · · Score: 2

      I didn't know that more modern languages had a 50 year history of reliability, scalability, and security to process transactions 24/7.

      That's a bit like the guy who puts "10 years of Ruby on Rails experience required" in a job posting. Of course it can't have precisely the same track record if it hasn't been around that long.

      It's also a bit like saying "I didn't know that modern cars had a 100+ year history of reliability, scalability

      But take Erlang -- released in 1986, and has been known for consistent reliability, even in the face of programmer error -- catching errors, respawning those processes, and letting the programmer fix the underlying problem on the fly, patching an in-production application without dropping a single connection.

      It's been used in things like telephone switches which have to run for decades nonstop, without dropping a single request.

      Security -- what can a language do to help that, other than avoid encouraging blatantly insecure constructs? But then, Erlang doesn't ever allow non-Erlang code inside the Erlang process, save for the VM itself -- thus, any security hazards in C libraries are going to be severely limited in what they can access. And a DoS of such a library would only result in that process being restarted.

      And scalability -- surely you're joking. Erlang is one of the few platforms on which you can comfortably spawn a few hundred thousand processes, and let the language itself manage scheduling -- so it scales to many cores. It's also based on message passing, which means RPC is dead simple, which means it scales about as easily to clusters as to cores.

      And that's just one language. LISP is a whole other discussion, and still one worth having.

      Further, the cost of developing, debugging, and testing the replacement in any language (including redeveloping the system from the ground up in COBOL) is quite expensive, no matter what language you choose.

      Very true. However, there comes a point where the original code -- in any language -- has become so brittle that the cost of minor changes (remember the California minimum-wage fiasco?) suggests that a rewrite makes sense. If you've come to the point where a rewrite makes sense, I would think another language also makes sense.

      Now, you can write good code in any language, so technically, if something is brittle, it's not COBOL's fault. COBOL is Turing-complete, after all. But the question is how easy a language makes it to write good code.

      COBOL, well, tends to encourage spaghetti code. Properly structured code is a bit against the grain -- after all, what other language in popular use today has local variables as a bolted-on, after-the-fact feature? It would seem to me that local variables are kind of a huge step in the direction of developing a stable, secure, and bug-free program.

      --
      Don't thank God, thank a doctor!
    18. Re:75% of apps? Shaa, right! by Bakkster · · Score: 2, Insightful

      I've seen the JVM (that's one that is capitalized!) crash multiple times on more complex programs. One was a digital logic architect program written by a professor and several graduate students. After several years of development, it still crashed frequently on large projects, due to the JVM running out of memory. Crashes were common enough that we had to convince the professor to add an auto-save to make it less un-usable. Not saying it's due to Java specifically, but it did seem to be linked to the virtual machine.

      Regardless, I have yet to see a compelling argument to rewrite COBOL code in Java or any other 'modern' language. If the COBOL works, and will continue to in the near future, what is the benefit of a lengthy rewrite? Does the cost of design, development, verification, testing, and deployment provide at least as much benefit (in dollars/time) to the company? Is it worth the risk to replace a system that has worked well for decades with one that could introduce a serious compunding error that doesn't manifest itself until years down the line?

      Perhaps some modern language might be a best fit for a newly written program, but I'm still not convinced. While I can't say for certain that COBOL will compile to be any faster than the equivalent Java, my experience with high-level languages tells me that they tend to create bloated executables. This isn't a bad thing for a general-purpose language with expansive libraries that can do everything, but for these kinds of transactions a special-purpose language should be able to outperform.

      tl;dr You may have a case for new programs, but it makes no sense to rewrite working COBOL.

      --
      Write your representatives! Repeal the 2nd Law of Thermodynamics!
    19. Re:75% of apps? Shaa, right! by SanityInAnarchy · · Score: 3, Interesting

      After several years of development, it still crashed frequently on large projects, due to the JVM running out of memory.

      So, JVM memory leak, or application memory leak?

      Regardless, I have yet to see a compelling argument to rewrite COBOL code in Java or any other 'modern' language. If the COBOL works, and will continue to in the near future, what is the benefit of a lengthy rewrite?

      Maintainability.

      The question is, does the COBOL do everything you need it to do? How much does it cost (in terms of time, money, manpower) to make a change you need to make? Add up that cost, estimate it over time, compare to the cost of a rewrite and how maintainable it would be after said rewrite.

      Granted, sometimes, there's not going to be a lot of justification. But when a change wages requires six months of work, it's worth seriously considering how long a rewrite would take. Six months for what should be a ten minute change (generously), no matter what the language, demands a rewrite.

      It's also something that has to be thought about carefully, because it may not be immediately apparent what such flexibility could buy you.

      Some bad analogies: If I did my accounting with a paper ledger, computerizing the process would probably make no sense to me -- until you realize that once it's in the computer, it can automatically do much of the math, eliminating errors, or making them much easier to fix. Similarly, if I became a fluent C/C++ programmer (especially C++), it might not be immediately obvious to me how useful garbage collection is -- but there's a whole class of bugs that just disappear when you use a garbage-collected language. If you've only ever worked with punch cards, or with a slowly-compiled language, it may not be immediately obvious how useful an interactive command prompt (read-eval-print-loop, to use the LISP terminology) can be.

      So it's worth considering, just pulling something out of my ass: If it only took a few minutes to author a report, what kinds of reports could you have? How specialized would they get?

      Perhaps some modern language might be a best fit for a newly written program, but I'm still not convinced. While I can't say for certain that COBOL will compile to be any faster than the equivalent Java, my experience with high-level languages tells me that they tend to create bloated executables.

      Bloated by what metric?

      Especially, you mentioned "bloated executables" -- if /usr/bin/myapp is ten megs instead of a few hundred kilobytes, seriously, how much does ten megs of disk/RAM cost? And how much does a team of qualified COBOL programmers cost, how much of a direct cost is there due to COBOL taking longer to implement, and how much of an indirect cost due to whole classes of bugs that simply don't show up in another language?

      And, when you add it all up, if your app is the kind that would work well on a cluster, how much more are you paying for your mainframe than it would cost to build the equivalent cluster out of PC hardware? Suppose you could triple the hardware and still save money -- thus a language that's three times as slow ultimately costs exactly as much as COBOL, performance-wise.

      So, tl;dr on that one: The Big Picture is much more complicated than whether your executable is "bloated".

      --
      Don't thank God, thank a doctor!
  3. People don't "use" COBOL by davidwr · · Score: 3, Interesting

    People "use" applications and embedded systems.

    It would be more accurate to say people use applications written in the language several times a day.

    I wonder how many times people use applications written in C or languages common to embedded systems? What languages, for example, are used to create the code that makes their automobiles, home entertainment centers, voicemail, etc. work?

    How many times a day do people use applications that rely other languages that predate the moon landing?

    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
  4. COBOL by mcgrew · · Score: 4, Funny

    Happy birthday, Crappy Old Bad Obsolete Language! You need to take better care of yourself, you look a lot older than fifty.

  5. Re:Celebrates? by Archtech · · Score: 2, Funny

    Now if that isn't a troll...

    --
    I am sure that there are many other solipsists out there.
  6. For those of you still hanging on by kriston · · Score: 3, Informative
    --

    Kriston

  7. Greetings follow COBOL programers ... by Anonymous Coward · · Score: 3, Funny

    ... and GET OFF MY LAWN!

  8. COBOL made me what I am today by walkoff · · Score: 5, Funny

    We were taught COBOL at college 25 years ago and i'm still a grumpy old git

  9. Typo by winnitude · · Score: 4, Funny

    "COBOL Celebrates 50 Years"

    Should read:

    "COBOL Bemoans 50 Years"

  10. Re:Cue the fucktards. by gardyloo · · Score: 2, Insightful

    Come on, I've teed it up for you, now knock it out of the park!

    Maybe we can make a touchdown from that half-court shot, as you so nicely handicapped the goalie.

  11. Not So Bad by Ancient_Hacker · · Score: 4, Insightful

    COBOL did a lot of things right, things that a lot of modern languages ignored.

    Little things like:

    * Having a manufacturer and machine and OS-independent standard.
    * Quasi human-readable code.
    * "MOVE CORRESPONDING"

    that said, it's just as easy for numbskulls to write bad COBOL as to write bad C++ or bad Ruby.

    1. Re:Not So Bad by ChienAndalu · · Score: 2, Insightful

      * Quasi human-readable code.

      Human readability doesn't count. You have to understand it too. Cobol uses English words instead of a more concise syntax with special characters, and is therefore more difficult to understand. Mathematical equations and chemical formulas have their special syntaxes, and computer programs should have them too.

      that said, it's just as easy for numbskulls to write bad COBOL as to write bad C++ or bad Ruby.

      Obvious. But can you show me *good* COBOL?

    2. Re:Not So Bad by Hurricane78 · · Score: 2, Interesting

      I disagree with the assumption that it's "just as easy". In some languages, it's definitely easier to write bad code. PHP is such an example. C/C++ is another one. In PHP it comes with the retardedness of the language. In C/C++ it comes with the freedom.

      A good example for a language that has certain things in place to prevent bad coding, is Haskell. Type problems in running code are (except for the external input reader) simply impossible.

      --
      Any sufficiently advanced intelligence is indistinguishable from stupidity.
    3. Re:Not So Bad by orzetto · · Score: 2, Insightful

      A good example for a language that has certain things in place to prevent bad coding, is Haskell.

      I have been studying some Haskell in the past few months, and while I am in awe at Haskell's type system, and how you can write a language without for and while, and lazy evaluation, and functional purity, and partial application, and so on, there are two things that made me give up:

      1. Functional purity makes I/O a major mess. Monads are complex, unintuitive and unwieldy. I think I spent over one month only trying to warp my mind around that. It does not help that Haskellers keep repeating that "monads are really simple", there is a reason why they are the most asked-about topic in newsgroups.
      2. The worst thing is the Haskell community's coding standards. Single-letter variables are common, and I actually read some delirious rant about this being necessary "because it's so abstract you cannot name it". If it's so abstract you cannot name it, you abstracted too much, or you don't understand what you are doing. There seems to be a proliferation of operators, since Haskell foolishly allows to define new ones, even completely useless ones like $. Coding function with undocumented one-liners seems to be considered a virtue.

      Haskell has many good ideas, but it will never be a successful language because it's just too damn difficult, and no one in the Haskell community seems to care about it. I gave up when I thought that, even if I learned it, it would be utterly useless because few other people will bother to learn it. It also weighed in that there are so few software projects based on Haskell.

      Haskell is a great language to calculate factorials, but very little else.

      --
      Victims of 9/11: <3000. Traffic in the US: >30,000/y
    4. Re:Not So Bad by orzetto · · Score: 3, Insightful

      You can think of monads in general as a way to formally define types of computation that may have a context in which they operate.

      See, you are part of the problem. Is that supposed to be an explanation? If you cannot explain it in plain English, you do not really understand it yourself (I think I am quoting Feynman). Your explanation is also wrong (as most "explanations" about monads): Maybe has no context, and neither do lists. The general definition of monad has nothing to do with context, only with chaining.

      Try reading Real World Haskell? The text is available online.

      Read, until chapter 15 where I gave up around the Reader monad. I read the Thompson before. See below for horror example.

      OK. Let's take the simple example of map:

      f becomes function, e first, es rest.

      However map is pretty easy to grasp. For the promised RWH horror code, here is one from chapter 14:

      bindSt :: (SimpleState s a) -> (a -> SimpleState s b) -> SimpleState s b
      bindSt m k = \s -> let (a, s') = m s
      in (k a) s'

      There are multiple issues: the SimpleState is not a state (problem common to the State monad), but a state processor, a function. I really would like to inflict pain on whomever decided the name. The authors use m presumably for a monad, then (the gods knows for which reason) k for a function. They also use a single apostrophe (the smallest character they could find, arguably) to distinguish the new state from the old. Funny thing, they actually try to follow up with a more "readable" version, in which they make a sorry attempt at readability, which fails hopelessly (step seems a noun, but is actually meant as a verb).

      [...] helps keep the code using the combinators reasonably short [...]

      Argh, no, you must not keep the damn code short! The alpha and omega is keeping it readable. Ideally good code should read almost as plain English. Operators are not English, and should be used sparingly (I once thought it was silly to limit the operators in C++... now I see the wisdom). Surely you can be too verbose, but at a minimum the code must be self-explanatory. Well that's the professional coding world, where Haskell does not belong, and never will.

      Funny thing, I discovered that "terse" has a different meaning in English from what I expected. In my language (from which the word comes) it means clean, transparent, so I extrapolated "readable". Guess what, it took people praising Haskell for being "terse" for me to figure out that something was amiss.

      --
      Victims of 9/11: <3000. Traffic in the US: >30,000/y
  12. Lack of knowledge by zoomshorts · · Score: 4, Interesting

    Most businesses did not see any need to port mainframe stuff to WinDoze.
    COBOL is solid. WinDoze is flakey. RM COBOL extended COBOL to modern
    programmers. If it isn't broke, you don't 'fix' it.

    Get a grip, and learn. I suggest going back to school. Just my opinion
    though.

    "Come on, 75% is a HIGHLY dubious claim. Where's the source / proof / evidence? Where I work, we have nearly 200 business apps and I'm pretty sure less than 2% of business apps were made in COBOL - possibly even 0%."

    I suggest YOU go to work for any major business and work on their accounting software. Highly dubious? Hardly. Your business 'Apps' are probably front ends for a real language on a mainframe.
    Visual this or that.

  13. Happy 50th by CharlyFoxtrot · · Score: 5, Funny

    identification division.
    program-id. birthday.
    environment division.
    data division.
    procedure division.
    main section.
    display "get off my lawn!"
    stop run.

    --
    If all else fails, immortality can always be assured by spectacular error.
    1. Re:Happy 50th by Anonymous Coward · · Score: 5, Informative

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

  14. Re:Cue the fucktards. by some_guy_88 · · Score: 2, Funny

    Look, I did a class on VB in high school so I know what I'm talking about.

    COBOL is so crap that you can't even create a new COBOL project in Visual Studio anymore. You really need to get up to speed.

  15. Longevity by wandazulu · · Score: 5, Insightful

    I worked at a company that had a Cobol-based program that went live back in 1969. A team of programmers had kept it going ever since. Shortly after I started (mid 1995), I was in a meeting when one of the Cobol programmers mentioned that so-and-so had died over the weekend. Everybody started talking about her, what a great person she was, etc. After the meeting, I asked who she was, and was told that she was the last surviving member of the original team that wrote and deployed the application. When the system was finally shut down back in 2003 or so (I had long since left, but still had some contacts there to tell me what was going on), I really felt weird about hearing it; here was this thing that had outlived its creators (and some of the later maintainers), and now it was gone too.

    Isn't it strange how computer software is both unbelievably ephemeral, yet also incredibly long-lived. I've worked on both sides and I'm not sure which is more fulfilling; it apparently took several years to write the aforementioned Cobol program, but it outlived its creators. I wonder what a programmer on something like, say, Madden, would feel, knowing that this thing they're working so hard on will be totally supplanted by the next version, next year.

    Strange business, this computing machinery. Strange indeed.

    1. Re:Longevity by Ollabelle · · Score: 2, Interesting

      I can believe it would have taken a long time to write one of those programs. When I was in college back in the late 70's, my first programming class was in Fortran, and one assignment was a simple look-up table to determine how much to charge for a taxi service between different locations using different vehicles. At this time, it was all punch cards, so excluding the start and stop cards, the whole program was about 12 - 15 cards. AFterward, the professor announced that this same program in the COBOL class was a 3-person team effort that generally required 900+ cards; I vowed at that time to never take the class. It was always a sight whenever one of those students would drop their stack of cards all over the computing room floor....

      --
      Ibid.
    2. Re:Longevity by CharlyFoxtrot · · Score: 2, Insightful

      Well, ideally, they'd be able to get excited about doing it differently, maybe doing it better.

      Le mieux est l'ennemi du bien. (The better is the enemy of the good.) - Voltaire

      Might be anecdotal but I've seen a few perfectly good system thrown out in the search for an ephemeral "better" that then failed to materialize.

      --
      If all else fails, immortality can always be assured by spectacular error.
  16. Mandatory quote by SignoffTheSourcerer · · Score: 2, Informative

    The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offence.
    Edsger W.Dijkstra, 18 June 1975

    --
    Ordo Militum Unix.
  17. How is SNOBOL doing? by TimSSG · · Score: 2, Funny

    How is SNOBOL doing? Better or worse than COBOL? Tim S.

  18. Declared dead for decades... by bostei2008 · · Score: 2, Insightful

    and still very much alive.

    You cannot kill it (quite literally, mainframes have a MTBF of what, 40 years? How is your windows box doing?).

    You can sneer at it, disregard it, ridicule it. But it is still there after decades of getting bad rep and no fresh blood. That is actually pretty impressive.

  19. Best joke I know about Cobol by Jimmy_Slimmy · · Score: 2, Funny
  20. COBOL Joke by Haxzaw · · Score: 5, Funny

    Jack was a COBOL programmer in the mid to late 1990s. After years of being taken for granted and treated as a technological dinosaur by all the Client/Server programmers and website developers, he was finally getting some respect. He'd become a private consultant specializing in Year 2000 conversions. Several years of this relentless, mind-numbing work had taken its toll on Jack. He began having anxiety dreams about the Year 2000. All he could think about was how he could avoid the year 2000 and all that came with it. He tried getting a job with an Orange County web development firm, but couldn't hack it in the end. Jack decided to contact a company that specialized in cryogenics. He made a deal to have himself frozen until March 15th, 2000. The next thing he would know is he'd wake up in the year 2000; after the New Year celebrations and computer debacles; after the leap day. Nothing else to worry about except getting on with his life. He was put into his cryogenic receptacle, the technicians set the revive date, he was given injections to slow his heartbeat to a bare minimum, and that was that. The next thing that Jack saw was an enormous and very modern room filled with excited people. They were all shouting "I can't believe it!" and "It's a miracle" and "He's alive!". There were cameras (unlike any he'd ever seen) and equipment that looked like it came out of a science fiction movie. Someone who was obviously a spokesperson for the group stepped forward. Jack couldn't contain his enthusiasm. "Is it over?" he asked. "Is the year 2000 already here? Are all the millennial parties and promotions and crises all over and done with?" The spokesman explained that there had been a problem with the programming of the timer on Jack's cryogenic receptacle, it hadn't been year 2000 compliant. It was actually eight thousand years later, not the year 2000. Technology had advanced to such a degree that everyone had virtual reality interfaces which allowed them to contact anyone else on the planet. "That sounds terrific," said Jack. "But I'm curious. Why is everybody so interested in me?" "Well," said the spokesman. "The year 10000 is just around the corner, and it says in your files that you know COBOL".

  21. tags by smoker2 · · Score: 2, Insightful

    Which prick tagged this !kobol ? Does it SAY kobol anywhere in the title, summary or article ? Or is so that you can easily search for kobol later and not find this story (in which case you could have saved your typing) ? FFS. Next time there is a story about google I'm going to tag it !poodle.

  22. It works by cjonslashdot · · Score: 2, Informative

    Mainframe transaction platforms are rock solid - much more than one can say for most web app platforms.

  23. Re:COBOL is nice for business processing by BrokenHalo · · Score: 2, Interesting

    So did I. Fortran was (and still is) fun, COBOL was tedious and Burroughs B3700 Assembler should have been even more so if it were not for the fact that it is that much harder to do.

    It is trendy to disparage COBOL, but it was and is a very reliable and effective language for dealing with business transactions. The only times it tended to break were when the data input contained funky characters which would precipitate a "subscript out of range" error. I found the best way to prevent that was to disable the keypunch-ops' "CTRL" keys.

  24. Re:How can a language be bug-free? by thethibs · · Score: 2, Insightful

    That assumes that programmers make well-informed, rational decisions at all times. Chuckle.

    --
    I'm a Programmer. That's one level above Software Engineer and one level below Engineer.