Slashdot Mirror


COBOL Will Outlive Us All

jfruh writes "Here's an old computer science joke: What's the difference between hardware and software? If you use hardware long enough, it breaks. If you use software long enough, it works. The truth behind that is the reason that so much decades-old COBOL code is out there still driving crucial applications at banks and other huge companies. Many attempts to replace COBOL applications flopped in the 1980s and '90s, and we're stuck with them for the foreseeable future — but the Baby Boomers who wrote all that code are now retiring en masse."

318 comments

  1. Batch by mwvdlee · · Score: 5, Informative

    Well... that and the fact that COBOL is actually very good at what it was made to do; batch file processing.

    --
    Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    1. Re:Batch by grh_angelone · · Score: 5, Funny

      I hate it. Stupidest language of all time. I'm trying to convert all these crap programs to nicely done RPG IV, but its a Don Quijote task. I hate the fact, that file access can only be done in 50 lines of code. String operations are total nonsense, ever tried to get a string rightaligned? RPG file access via chain is done in 5-6 lines including the definition of the file and rightalign via evalr().

    2. Re:Batch by Nerdfest · · Score: 2, Insightful

      It is no batter at 'batch' processing than any other language. The reason there's still so much of it around is that the majority is hacked together spaghetti written by people who should not have been writing code in the first place; tightly coupled code that people cannot easily replace a component at a time. Earlier attempts to replace the code generally failed because they attempted to use the same people who wrote the COBOL systems to write the replacements. It is a language that is used to allow systems to be written by people who should not be coding in general. Yes people write bad code in all languages, but COBOL is an enabler, just as (in other ways) Visual Basic and Perl are.

    3. Re:Batch by jellomizer · · Score: 5, Insightful

      No, the language doesn't matter. It is the fact that the COBOL code is old. When it was popular it was common for organizations to write their own software. This custom written software was molded to fit the companies processes and workflow. Then you add decades of alterations and the software gets very complex, however it nearly covers the full operation.

      So now if you are going to replace it, right now it is popular to get these "enterprise" solutions that are so generic that it takes more work to configure it than it does to make new software or port the code in a new language.

      As well most organizations just don't know why they need to upgrade they just think they do, and after the upgrade they want a program to do exactly what the last one did.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    4. Re:Batch by mwvdlee · · Score: 4, Informative

      Yes, I'm sure it's much easier to code in RPG. In Java/C++/PHP/C# you could probably do it in less than a dozen lines of code as well. But none of those come close to the performance of COBOL for these specific tasks.

      As far as right-aligning a string; it's supported in the data division: http://mainframewizard.com/content/cobol-just-right-clause. I'm sure if I had to program RPG without any training or a manual, I wouldn't produce very good code either.

      COBOL is bad at a lot of things and in a lot of ways, but it does have a few redeeming qualities. It just turns out those particular qualities are highly sought after in many large companies.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    5. Re:Batch by hcs_$reboot · · Score: 2

      Having to write MULTIPLY a BY b GIVING c instead of c = a*b surely prevents the implementation of complex algorithms.

      --
      Slashdot, fix the reply notifications... You won't get away with it...
    6. Re:Batch by grh_angelone · · Score: 5, Informative

      ok, this doesn't bring us any further, but do you really think, that moving something in a right justified variable is the solution?

      this doesn't only need another variable, but if your source value has trailing spaces you will need a ridiculously long INSPECT line and an index variable for a substring.
      since cobol is dumb, you will further need an INITIALIZE for both variables.

      cobol:
      01 var1 PIC X(50)
      01 var2 PIC X(50) justified right
      01 sub PIC 9(2)
      initialize var1 var2 sub
      move "test " to var1
      initialize var1 tallying sub for trailing space
      if sub = 0
      move var1 to var2
      else
      move var1(1:sub) to var2
      end-if

      rpg:
      d var1 s 50a
      d var2 s 50a
      c eval var1='test '
      c evalr var2=%trim(var1)

      seems way more convinient :)
      even tough RPG is ill-reputed as an old static programming language this looks somehow like any other high level language and anyone should understand what's going on here without trying to figure out what that strange INSPECT does

    7. Re:Batch by Anonymous Coward · · Score: 5, Informative

      No. COBOL was designed for taking simple decimal (BCD) representations of quantities and financial amounts, conducting basic arithmetic operations on those and transferring the result back to storage or line-printer-style reports.

      It is still the basis of a great many online, interactive applications as a result of the development of OLTP systems that were intended to provide "real time" transactions on top of old legacy batch procedures. CICS in particular is alive and well and nothing to do with batch processing - though its interactivity is largely achieved by having the display terminal emulate the fixed fields of punched cards and line printer columns - and although it has support for several languages, COBOL is where it found its natural home.

      There's nothing magical or mysterious about COBOL (apart, perhaps, from the MOVE CORRESPONDING statement) - it's a procedural programming language that works with simple representations of data. The idea that a modern generation of programmers can't understand it is ludicrous and anyone that suggests rewriting swathes of code simply to change the syntax of its representation doesn't understand the first principles of software engineering.

      COBOL is here to stay in both batch and interactive applications.

    8. Re:Batch by peragrin · · Score: 5, Insightful

      That because the cost of retraining people in new workflows is generally higher than the software package to begin with.

      If you gut and replace software you have to modify every employee's workflow to compensate. EVERY person has to do their job slightly differently, and no one has the answers as to how it all has to be worked out from the beginning for each part.

      That takes months in a small 20 person organization that is flexible and adaptable. It can take years of lost productivity for larger ones.

      I am doing it right now. We are gutting our old ERP system to use a much simplier but ultimately more useful ERP system. Everything from sales, accounting, purchasing, warehousing, inventory, delivery drivers, all have to change how they process their paperwork. We basically had the office staff doing 2 days of nothing as we sorted out bugs with the initial data transfer. Now that is done we begin the task of sorting out workflows, new SOPs, etc.

      --
      i thought once I was found, but it was only a dream.
    9. Re:Batch by Anonymous Coward · · Score: 1

      What's wrong with COMPUTE c = a * b? It's not exactly a new language feature.

    10. Re:Batch by ixarux · · Score: 3, Insightful

      ^ This, I would agree with.
      COBOL is not a great programming language, and people who are experts in it are NOT good programmers per se. It definitely worked well back in the days, and we should appreciate its use, but let us not let nostalgia tinge the garbage that was useful a long time ago, and now just sits there as the elephant that no one cares to move around, gently tended by the cheap Asian labour... and has no exploits because it doesn't really move around a lot.

    11. Re:Batch by SuperDre · · Score: 0

      good/bad writing code is all in the eye of the beholder...... What you call good code can look like utter crap to another developer, and ofcourse the opposite is true too... There is no right and there is no wrong...

    12. Re:Batch by jythie · · Score: 1

      I am skeptical of COBOL actually preforming types of tasks quicker then other languages. Every year the compilers for the most active languages get better and better, while the COBOL one has pretty much stood still for a long time.

    13. Re:Batch by cyber-vandal · · Score: 1

      Or you could write COMPUTE c = a*b instead.

    14. Re:Batch by dywolf · · Score: 2

      in other words, if ain't broke, don't fix it. just keep the guy that wrote it on retainer (or else he'll retire, then come back as a consultant for 5x the salary), and pay him explicitly to train the new guy.

      or else don't buy generic stuff, but hire a -good- code monkey to go through and develop the new program, in parallel with the old (ie, staff dont see the new one til it's completely done, outside of occasional small group tests...with some classic A/B iterations)

      --
      The guy who said the election was rigged won the presidency with the second-most votes.
    15. Re:Batch by Nerdfest · · Score: 3, Interesting

      Good or bad programming is not defined by the 'style', it's defined by it's readability, maintainability, reusability and efficiency. Yes, there is a right and wrong. Not black and white right and wrong, but certainly tending towards it. Much COBOL code was written by people who didn't understand that either. It works, and solves the immedaite problem in many cases, but it's a difficult to maintain, difficult to read, tangled mess. Yes, there is well written COBOL, but in my experience, it's rare. Personally, I find even well written COBOL difficult to read because of the verbosity. It's like reading a long paragraph of instructions, where a point form list would be easier to read and understand.

    16. Re:Batch by LoRdTAW · · Score: 2

      COBOL may be decades old but there are still young people taking up COBOL programming. I have a friend who is around 30 now. He was a CS major in university and one of his professors recommended he learn COBOL. He told me it is the most valuable and useless programming languages you could learn. Out of university he got a job with a company doing contract work for IBM doing guess what? COBOL code maintenance. Now he is living in California making six figures working for a big financial institution maintaining and writing COBOL. Not so useless now, is it?

    17. Re:Batch by johnnyb · · Score: 5, Funny

      The real problem with COBOL is that, as Larry Wall has pointed out, you can't write poetry with it. There just isn't any good poetry that starts out with IDENTIFICATION SECTION.

      The one thing I do miss about COBOL is easy access to fixed-point numeric processing. This seems like a no-brainer, but it is still missing from nearly every language.

    18. Re:Batch by asylumx · · Score: 1

      So now if you are going to replace it, right now it is popular to get these "enterprise" solutions that are so generic that it takes more work to configure it than it does to make new software or port the code in a new language.

      Tell me about it! It doesn't have to be COBOL. Why is our company stuck on 20 year old RPG code? For the same reason that in 5 years it will be stuck on 25 year old RPG code. Because it does what we need and it's a royal pain to try to replace.

    19. Re:Batch by sycodon · · Score: 3, Insightful

      You miss the whole point if COBOL, which is to provide a language that clearly explains what's going on while it's doing it. That means that a freshly graduated I.S guy can go in and understand what's going on and make changes.

      Sure, you can wire God Awful code with it and, I have seen it, but it doesn't take much effort to do it right.

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    20. Re:Batch by sycodon · · Score: 1

      And BTW, nothing, and I mean NOTHING beats COBOL when it comes to slicing and dicing a record of data.

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    21. Re:Batch by Anonymous Coward · · Score: 0, Interesting

      Okay, here's the absolute truth about COBOL.

      First and foremost, it's a language that cannot muck with the underlying hardware. Period.

      IBM will never support anything else on their iron - and I mean never never !!!
      It's too much of a revenue stream.

      I worked at a place once where we tried to get a C compiler for their mainframe. Ain't gonna happen - on the surface, they appear to provide one.
      But that's a façade - an illusion.

      Another thing I was told (this is hard to believe) was that protected memory on mainframes is an option. Read my lips - IBM Mainframes do not
      have protected memory by default
      . It's a purchased option. Guess how many IBMs out there do not have this option? That's correct. MANY!

      So, a bad C program can toast the OS on many of these machines. So, it's not that COBOL can't be converted, it that the conversion brings with it
      a significant risk. Besides, COBOL works. The cost/benefit of converting those many lines of COBOL is the key. A company can upgrade their iron
      to a faster box, without touching a single line of code. I'm sad to say that that is the only language in the world that can hold that chalice. C can't
      (it's only a portable as its underlying libraries and instruction set size) — nothing else even comes close to COBOL's amazing portability.

      CAPTCHA = nights

    22. Re:Batch by Classic53 · · Score: 3, Interesting

      I on the other hand am looking forward to what IBM delivers with their COBOL VNext project (http://www.destinationz.org/Community/Evangelizing-Mainframe/June-2012/Join-the-Enterprise-COBOL-Vnext-Managed-Beta-Progr.aspx)!

    23. Re:Batch by Anonymous Coward · · Score: 2, Informative

      No, COBOL is magical, in that it supports handling of decimal arithmetic as integer, keeping track of the decimal place as a separate operation until the end. That is one of the main reasons that so many financial institutions used it -- no rounding. As far as I know, only PL/I is the only other language with this built in feature, even to this day. Certain compilers also used occult features of machines that did arithmetic in decimal (like a calculator) instead of binary --again, great (and in the 70's, a requirement for international banking) for financial applications.

    24. Re:Batch by camperdave · · Score: 1

      Stop blaming COBOL for the performance. It's not the language. It's the resultant compiled code that matters, and the processor(s) it runs on.

      --
      When our name is on the back of your car, we're behind you all the way!
    25. Re:Batch by oh_my_080980980 · · Score: 1

      Really RPG? You're telling me RPG is better than COBOL? What drugs have you been smoking. For what COBOL does, there isn't a better language suited for that task.

    26. Re:Batch by oh_my_080980980 · · Score: 1

      By that logic people should be able to program in C if they know Java....

    27. Re:Batch by VortexCortex · · Score: 5, Funny

      There once was an IDENTIFICATION SECTION
      Preceding a formula that defied all reflection.
      Using all the chem-lab's powers,
      it ran longer than four hours,
      To make pills that promoted erection!

    28. Re:Batch by Anonymous Coward · · Score: 0

      A 30 something making 6 figures as a programmer isn't really that uncommon. If you think it is, you are very underpaid. There's no reason to subject yourself to the misery of maintaining COBOL for that amount of money.

    29. Re:Batch by oh_my_080980980 · · Score: 2

      Really? I found a lot of shitty code is written by people who program in C#....it's not the language but the person.

    30. Re:Batch by camperdave · · Score: 2, Insightful

      Out of university he got a job with a company doing contract work for IBM doing guess what? COBOL code maintenance. Now he is living in California making six figures working for a big financial institution maintaining and writing COBOL. Not so useless now, is it?

      Money gets paid to lots of people for useless things. Professional athletes, fashion models, and dog groomers for example.

      --
      When our name is on the back of your car, we're behind you all the way!
    31. Re:Batch by Anonymous Coward · · Score: 2, Interesting

      You probably have not been working with COBOL. The vendors that are supporting it are pushing the technology as much as the C/C++ compiler vendors are.

    32. Re:Batch by Anonymous Coward · · Score: 0

      Ada or Jovial

    33. Re:Batch by Anonymous Coward · · Score: 1

      Proper cobol would be:

      000000* There once was an IDENTIFICATION SECTION
      000001* Preceding a formula that defied all reflection.
      000002* Using all the chem-lab's powers,
      000003* it ran longer than four hours,
      000004* To make pills that promoted erection!
      IDENTIFICATION SECTION.

    34. Re:Batch by JDG1980 · · Score: 1, Insightful

      No, COBOL is magical, in that it supports handling of decimal arithmetic as integer, keeping track of the decimal place as a separate operation until the end. That is one of the main reasons that so many financial institutions used it -- no rounding. As far as I know, only PL/I is the only other language with this built in feature, even to this day.

      According to Wikipedia, the following languages all support an accurate decimal data type in the standard libraries: Python, Ruby, Java, and Objective-C.

    35. Re:Batch by telchine · · Score: 4, Funny

      It just turns out those particular qualities are highly sought after in many large companies.

      It keeps its head down, doesn't rock the boat and never asks for a pay rise?

    36. Re:Batch by gewalker · · Score: 1

      It is not just the people, it is the whole application architecture. The business logic is captured in the COBOL code. If you want to run transaction against the business logic, you do screen scraping and your like it. If you want to pull related records together, you run through the COBOL logic that logically connects them. This is not the fault of COBOL itself, but the engineering constraints of the '60s and '70s when people built the enterprise apps that they still depend on.

      Sure COBOL is a bad language, did you really expect a good language when the only other high level language to learn from was FORTRAN?

    37. Re:Batch by ebh · · Score: 1

      Mmmm, EBCDIC...

    38. Re:Batch by mabhatter654 · · Score: 5, Funny

      RPG vs COBOL!!!

      Fight! Fight!
      Canes and walkers allowed... No punching the kolostamy bag.

    39. Re:Batch by mabhatter654 · · Score: 1

      RPG can do that too!

      But your point is that's another IBM "home team" language.

    40. Re:Batch by Anonymous Coward · · Score: 4, Funny

      There once was an IDENTIFICATION SECTION

      Preceding a formula that defied all reflection.

      Using all the chem-lab's powers,

      it ran longer than four hours,

      To make pills that promoted erection!

      ...Burma Shave

    41. Re:Batch by Lawrence_Bird · · Score: 1

      Amen brother. The hate on COBOL is senseless and just illustrates the poor understanding of software engineering and financial considerations. Rewriting legacy code just for the sake of rewriting in something 'modern' is pointless. At that applies equally to any stable production software, regardless of language. There is significant hate directed at FORTRAN too, which unlike COBOL, actually is as much a modern language as it is legacy compatible (at least pretty far back). But its not PC to not mock the olden ones.

    42. Re: Batch by Anonymous Coward · · Score: 0

      COBOL = COmmon Business Oriented Language, RPGS = Rapidly Producing Garbage. Nuff said.

    43. Re:Batch by Anonymous Coward · · Score: 1

      Another thing I was told (this is hard to believe) was that protected memory on mainframes is an option. Read my lips - IBM Mainframes do not
      have protected memory by default
      . It's a purchased option. Guess how many IBMs out there do not have this option? That's correct. MANY!

      It's probably been over 15 years since I last programmed in COBOL in a mainframe environment, so my memory is rusty about many details, but this is nonsense. From a training that must have taken place in the 1980's I remember how every process had its own address space, including exact details on how those adresses were translated using segment and page tables to actual adresses, how pages could be swapped in and out of memory, and so on.

      You may be referring to CICS, which is (or was when I was young) a single address space serving many users. It was possible for a program to mess up andother program's memory in CICS, or bring CICS down entirely. I also remember that as a thing of the past. At some point, years before I stopped being a COBOL programmer, programs' address spaces in CICS were properly protected from each other. I don't know if that's optional, but I wouldn't want to live without it.

      I remember COBOL programs being perfectly capable of accessing memory that they shouldn't. Array bounds checking is turned on by a compiler option. Guess what can happen if you don't turn it on. COBOL also supports pointers. And by the way, if IBM doesn't want their customers to use C, I wonder why they let them have assembler, which is just as dangerous.

    44. Re:Batch by jtollefson · · Score: 1

      I wish to the Lord
      That I had mod points for you
      That was flippin great!

    45. Re:Batch by Anonymous Coward · · Score: 1

      This post is incorrect on so many levels. I used to work as a mainframe sysprog 10 years ago, and one of my chores was supporting the compilers. I personally used COBOL, PL/I, C/C++ and Java. We even had Perl running under USS.

      I'm not sure where you're getting the protected memory not available by default thing either. Protected memory has been in the architecture since at least XA. Are you perhaps posting from 1960?

    46. Re:Batch by Anonymous Coward · · Score: 0

      wrong ... even when i was doing cobol (20 years ago), we were running assembler and c programs on the mainframe.

    47. Re:Batch by fuzzywig · · Score: 1

      I have no mod points but must congratulate you in some way shape or form.

    48. Re:Batch by Anonymous Coward · · Score: 4, Funny

      IDENTIFICATION DIVISON.
      PROGRAM ID. A COBOL FABLE.
      SECURITY. INSECURE.
      PROGRAMMER-ID. ARTHUR SHAPIRO.
      REMARKS. SLIGHTLY MORE MANGLED VERSION OF ONE IN JAN., 1968
      DATAMATION.
      DATE WRITTEN. ONCE UPON A TIME.

      ENVIRONMENT DIVISON.
      CONFIGURATION SECTION.
      OBJECT COMPUTER. ANY MUSIC BOX, MEMORY SIZE 8X64 BYTES,
      19 TAPE DRIVES, 11 DISK DRIVES, 1 GOLDILOCKS, 3 BEARS.
      INPUT-OUTPUT SECTION.
      FILE-CONTROL.
      SELECT TAPE DRIVES, ASSIGN THEM TO CREDITOR.
      SELECT DISK DRIVES.
      SELECT GOLDILOCKS, SELECT BEARS, ASSIGN TO ONE COTTAGE.
      I-O CONTROL.
      APPLY RED TAPE TO TAPE DRIVES, APPLY BRAHMS RECORD TO DISK DRIVE,
      APPLY GOLDI, BEARS TO COTTAGE.
      DATA DIVISON.
      FD GOLDI.
      LABEL RECORDS ARE STANDARD
      VALUE OF IDENTIFACTION IS "GOLDILOCKS"
      DATA RECORD IS GOLDILOCKS.
      01 GOLDILOCKS.
      02 HGT SIZE IS 62 INS.
      02 WGT SIZE IS 110 LBS.
      02 VITAL-STATS.
      03 B 38.
      03 W 24.
      03 H 36.
      02 RATING 100%.
      FD THREE-BEARS.
      LABEL RECORDS ARE STANDARD
      VALUE OF IDENTIFICATION IS "BEARS"
      DATA RECORDS ARE DADDY-BEAR, MUMMY-BEAR, BABY-BEAR.
      01 DADDY-BEAR.
      02 HGT 70 INS.
      02 WGT 750 LBS.
      02 COLOR-OF-EYES BLOODSHOT.
      02 DISPOSITION UNBEARABLE.
      01 MUMMY-BEAR.
      02 HGT 65 INS.
      02 WGT 700 LBS.
      02 COLOR-OF-EYES BLUE.
      02 DISPOSITION BEARABLE.
      01 BABY-BEAR.
      02 HGT 40 INS.
      02 DISPOSITION INFANTILE.
      WORKING-STORAGE SECTION.
      01 COTTAGE PICTURE IS COZY.
      02 KITCHEN.
      03 TABLE SIZE IS LARGE, VALUE IS 1.
      03 CHAIRS SIZE IS MEDIUM, VALUE IS 3.
      02 PORRIDGE.
      03 KING-SIZE OCCURS 1 TIME.
      03 QUEEN-SIZE OCCURS 1 TIME.
      03 PRINCE-SIZE OCCURS 1 TIME.
      02 DOOR SIZE IS USUAL, VALUE IS OPEN.
      02 BEDROOM.
      03 BED.
      04 LARGE OCCURS 1 TIME.
      04 MEDIUM OCCURS 1 TIME.

    49. Re:Batch by bdhall1313 · · Score: 1

      Delphi and C# both have variable types for handling financial calculations. Delphi uses the "currency" type and C# uses the "decimal" type.

    50. Re:Batch by Anonymous Coward · · Score: 1

      Cobol Poetry:

      if A = B and C = D then X = Y/Z.

    51. Re:Batch by gregor-e · · Score: 1

      Some of the fattest-paying contracts in the whole of software development are for dinosaur systems. Seriously - if you want to make twice or thrice whatever your current contract is, develop expertise in a 'dead' technology that is still being used in a high-value niche market.

    52. Re:Batch by Dimitrii · · Score: 4, Interesting

      even tough RPG is ill-reputed as an old static programming language this looks somehow like any other high level language and anyone should understand what's going on here without trying to figure out what that strange INSPECT does

      Back in the late 80's early 90's, I was a co-op for IBM. I wrote an RPG program to rearrange some data file. Because of scope, the program had to be reviewed by a senior programmer.
      "This is just a start. Where is the rest of it. Do you need help?"
      "No. It is complete. Sample input and output files right next to it. I used the cycle"
      "The cycle still works?!"

      I had learned RPG II in HS. The cycle is all that was needed. He showed that program to every programmer that walked into his office.

      The deal it that it all keeps working.

    53. Re:Batch by bws111 · · Score: 5, Informative

      Um, no. I don't know where you got that crap, but it is entirely false. IBM itself currently sells COBOL, FORTRAN, C/C++, PL/1, and REXX compilers for z/OS. In addition, you can use gcc, etc.

      And your line about IBM mainframes not having protected memory is complete bullshit. They have had protected memory since 1964. It is not an option.

      And NO user space programs affect system integrity, no matter how they are written or what language they are written in. That is one of the major selling points of z/OS.

    54. Re:Batch by Rastl · · Score: 1

      Some of the fattest-paying contracts in the whole of software development are for dinosaur systems. Seriously - if you want to make twice or thrice whatever your current contract is, develop expertise in a 'dead' technology that is still being used in a high-value niche market.

      Oh yes. I wrote the employee onboarding/offboarding process at my previous employer. It took me about 8 years to fully develop it because of systems involved and getting buy-in from the various silos but when it was done it ROCKED! Passed every internal, external and federal audit. Was timely and directed to get the employee set up with the exact access they needed and made sure tickets were generated for everything on a termination.

      Fast forward 2 1/2 years. During this time the company had been acquired by a much larger company. I get a call asking if I would be willing to consult for them to keep the process running. Note that it hadn't had a single glitch in the time since I left. I know this because there was no one to maintain it and if they wanted it to keep running that meant it was still running.

      This was supposed to be a 2 month gig. Now it's running into 2014 Q1 which means conservatively 2014 Q3. I have a tidy second income for the next year and a half with maybe 10 hours a week on nights and weekends.

      And I have a sneaking suspicion that the new company IT department is going to be in touch about polishing up their systems to make them work well too. My hourly rate goes up for them if it does happen.

    55. Re:Batch by markhb · · Score: 2

      Is RPG IV still column-specific, as the version I learned in high school (I don't recall if it was II or III) was? IOW, do you need to use [code] tags around that snippet?

      --
      Save Maine's economy: write stuff down. All comments are exclusively my own, not my employer.
    56. Re:Batch by flyingfsck · · Score: 1

      And there is nothing preventing anyone from declaring a few macros and writing a few functions to make things better.

      --
      Excuse me, but please get off my Pennisetum Clandestinum, eh!
    57. Re:Batch by Synerg1y · · Score: 1

      I think this is why... with new software systems comes new hardware to power those systems. When COBOL was being used for new development, I don't think the P1 was even out, we're on Xeons now. I'm not saying it's a good direction by any means, but it seems to be the preferred way of doing things, possibly so people can keep their sanity when trying to mimic COBOL. But in all fairness, newer frameworks are designed for newer hardware.

    58. Re:Batch by AwesomeMcgee · · Score: 1

      You mean the mathematically based languages which are built from the ground up for dealing with data sets like Haskell wouldn't know how to handle a record of data as well? Me thinks you have limited language exposure..

    59. Re:Batch by Anonymous Coward · · Score: 0

      Fail!

      It needs to start with IDENTIFICATION SECTION

    60. Re:Batch by frank_adrian314159 · · Score: 3, Funny

      It didn't start with IDENTIFICATION SECTION, so your example doesn't hold. But here's one:

      IDENTIFICATION SECTION delightfully leading to nouns and verbs of magic...
      In COBOL!!!
      A language for managers, a language for all -
      Bits of love, bytes of affection, words of poetry, identifying sections of paradise.
      Programming, motherfucker!
      Do you speak it?

      --
      That is all.
    61. Re:Batch by frank_adrian314159 · · Score: 5, Insightful

      ... the following languages all support an accurate decimal data type in the standard libraries: Python, Ruby, Java, and Objective-C.

      Which is not the same as supporting it in the language itself, either from a convenience nor a performance point of view.

      --
      That is all.
    62. Re:Batch by Anonymous Coward · · Score: 0

      PL/I anyone?

    63. Re:Batch by Anonymous Coward · · Score: 0

      You are not aware of the current state of z/OS, are you? You know, thinks like the USS environment (zOS is a certified Unix, and it could be sold as Unix), with its XLC++ compiler, which works both under USS and native MVS, and is supported for writing IMS and CICS applications...

      To not speak about PL/I.

      I have done COBOL, PL/I, C and a few others. And when I have to handle a big, flat sequential file or an OLTP task, my choices are PL/I or COBOL. Just because I do my job faster with them

    64. Re:Batch by sycodon · · Score: 1

      Perhaps, but it seems that the feature of being able to call any data any type and anywhere is a defacto violation of strict typing languages. So it's strength is illegal according to mathematically based languages.

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    65. Re:Batch by Anonymous Coward · · Score: 1

      I do all of my batch file processing in C#. The only thorn in my side is a shitty "standard" called EDI.

      Why is it "shitty"? Because it isn't a standard. Every company rips the "standard" apart and makes a franken-spec out of it, which makes parsing it a matter for custom code. Every. Single. Time.

      It also seems to be a file format that can't make up its mind. It's text, but might allow a binary section between text delimiting tags. It's a delimited file, but it has fixed-width fields. It has groups, records, and fields, but ANY of those could be optional. And none of the fixed-width fields are guaranteed to be fixed width. They might be ranged-variable width. Or they might be optional, which makes them no different from a plain old delimited field. The format can be best described as "schizophrenic".

      And all of this is precisely because COBOL isn't good at batch file processing, it's actually rather shitty for it. It can't do proper string parsing or handle things in an acceptable manner, so EDI (which was defined in the middle of the COBOL days) works around every last idiotic failing of COBOL.

      EDI is shit. COBOL is to blame for that, which makes COBOL shit.

      Seriously, fuck COBOL.

    66. Re:Batch by Sique · · Score: 5, Informative

      When COBOL was being used for new development, I don't think the P1 was even out, we're on Xeons now.

      When COBOL was being used for new development, the microprocessor wasn't even invented yet, and Intel founder Robert Noyce was working at Fairchild Semiconductor and had his first integreted circuit ready.

      --
      .sig: Sique *sigh*
    67. Re:Batch by PingXao · · Score: 2

      This post is full of fail. From the part about C compilers to the part about "no protected memory" to the part about IBM never supporting "anything else on their iron".

      Occasionally an AC will post something worthy of modding up to +5. This ain't one of them, folks.

    68. Re:Batch by Anonymous Coward · · Score: 0

      C#:
      decimal foo = 0m;

      Done!

      All .Net languages have access to the System.Decimal type, which simply wraps the internal fixed-point data type, even for those languages that lack a predefined data type keyword for it. (C# defines the decimal keyword as an alias to that type in its spec. Not sure about any other languages.)

      Most (if not all) of the System.Math methods handle both double and decimal types. The division and modulus operators tend to prefer working with double if both inputs aren't explicitly decimal, but given two decimals they have no problems. And when working with databases that support a fixed-point data type (like DECIMAL or MONEY), the ADO.Net layer properly maps it.

    69. Re:Batch by grh_angelone · · Score: 3, Informative

      i ditched the columns for my example :)
      but i don't mind the column-specific syntax.
      in fact, i really like it

      but IBM introduced free format RPG some time ago
      you can start a free block wich /free and end it with /end-free
      http://www.ilerpgprogramming.com/2009/01/code-examples-of-free-format-rpg-iv.html
      but they did a sloppy job on the implementation
      the definitions in the program header and some operations still have to be done in fixed format

    70. Re:Batch by nadaou · · Score: 1

      why the fuck do people post what their captcha was?

      --
      ~.~
      I'm a peripheral visionary.
    71. Re:Batch by Anonymous Coward · · Score: 0

      I don't know what _your_ definition of 'protected memory' is, but IBM mainframes beginning in the OS/360 days have had a form of memory protection - each hardware memory page has a 'protect key' which is stored as a separate byte as part of the memory hardware. Different pieces of code run in different protection keys (for example, the OS is key 0, application / unauthorized programs are typically key 8). If your program is running in key 8 and you try to access stuff in for example key 5, your program will terminate from a hardware exception. And unless your program runs in an authorized state (the program has to be marked as authorized, and be loaded into storage from a program library also marked as authorized, and a couple other criteria) you cannot change the key of your program in the program itself - it will be terminated by the OS.

      As for mucking with the hardware - that is the job of the OS layer. Applications software (what some call 'userspace stuff' should _never_ muck with the hardware on a multi-user machine; why would you want to run the risk of having some poorly-debugged program crash everyone else?

      If you _do_ want to much with the hardware, you are free to run your own OS (Linux, for example, and I think Solaris is now available) in a partition of the hardware.

    72. Re:Batch by Anonymous Coward · · Score: 2, Funny

      As keeper of the OpenCOBOL FAQ, I'll beg to differ.

      Here is a 3 line compilable 5-7-5 un-haiku

      PROGRAM-ID. ONE
      PROCEDURE DIVISION. ADD.
      1 TO RETURN-CODE.

    73. Re:Batch by Anonymous Coward · · Score: 0

      string[] lines = filecontent.Split(terminatorCharacter);
      string[] fields;
      string field;
      for(int x = 0; x < lines.Length; x++)
      {
      fields = lines[x].Split(delimiterCharacter);
      for(int y = 0; y < fields.Length; y++)
      {
      field = fields[x].Trim(encapsulatorCharacter, ' '); // trims both encapsulators and spaces from field contents // TODO:match up encapsulator mismatches to fix delimiter characters in data fields // TODO:store your field data in some sort of data structure
      }
      }

      This is the basic guts of a .Net CSV document class. It's a bit memory intensive in this form. It would be a good idea to combine several parsing approaches in a selectable way.

      For a fixed-width file, you would iterate through the lines and use a String.Substring(start, length) call for each field, like this:
      customRecord.Field1 = lines[x].Substring(0, 10); // characters 0-9
      customRecord.Field2 = lines[x].Substring(10, 27); // characters 10-36

      Then you have all of the built-in XML-handling classes in System.Xml (includes XmlDocument, XmlDocumentFragment, and all of the XPath stuff) and System.Data (the strongly-typed ADO.Net schemas).

      How much COBOL does it take to do either of the flat text file formats? What about anything in XML? I'm sure there has to be some available XML library for COBOL.

      I haven't used COBOL since high school, so I'm genuinely interested in seeing what kind of effort it requires to do something similar to the languages I work with every day. And I'm also not convinced of COBOL's superiority in text parsing.

    74. Re:Batch by Anonymous Coward · · Score: 0

      "Some of the fattest-paying contracts in the whole of software development are for dinosaur systems."
          Yup. A friend of mine who was always on the cutting edge of software/web development took a time out when she saw that her pay was rapidly approaching minimum wage territory. She went back to school to learn COBOL and a couple of assembly languages.
          She now has a lock on a company that has had a decades long contract with the Feds. Her plan is to move the front end off of XENIX, (Yes, XENIX...), onto something more FreeBSD'ee, and for security reasons, push all the critical tasks into assembly. No shells, no scripts, no script kiddies. In fact, everything in the OS not absolutely needed will be stripped out.
          The back end still has to deal with COBOL, running on some legacy monster placed under a mountain, many years back.
          The owner of the company is ready to retire; he is nearly 80, and hand it all over to her.
          (Me, I'm an old FORTRAN guy. Once I pushed a huge chunk of code into Excel. When I showed it off, it was one of those "No, you didn't.. wait... how did you _do_ that?" moments.)

    75. Re:Batch by SuperDre · · Score: 1

      And yet readability, maintainability, reusability en efficiency (well the latter is complete bollocks these days) are still all concepts which are in the eye of the beholder, especially readability..
      One of the new(ish) things for C# for instance is lambda expressions, well, I've seen people almost only using lambda expressions even though in most cases a regular function (because a lambda expression is nothing more than a function without a name IMHO) would be much better for readability (and certainly reusability)..
      As I said, it's all in the eye of the beholder and what you're used to..
      And as other people said, I've seen people write crap in ANY language and some of them even follow rules and still it looks like crap..
      What may look like excellent structured form to you, may look like spageti to someonelse...

    76. Re:Batch by mwvdlee · · Score: 2

      Indeed. And I have yet to see any programming language (excluding assembly) that can do all the things you can do in machine code. And yes, this includes C.

      Why would it be so strange that not all languages cover the same abilities on machine code level?

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    77. Re:Batch by hackula · · Score: 1

      I have seen crap in COBOL and C#. You are correct that it is about the people. Don't forget, however, that different languages attract different types of people. The VB effect is a strong one. Some languages provide easy ways to code poorly and do not guide the user towards optimal solutions. Languages with crap module systems, for example, tend to encourage programmers to just take the "easy" route and jumble all their code in one 50,000 line god file. ASP.Net (not the MVC version) allows people with little knowledge of HTML/CSS to design web pages with its WYSIWYG editor. It will even hook up to your code automatically by double clicking on a button or whatever. Well, it turns out that the output of the designer is some of the worst slop code on the planet, but because they made the initial steps easy for a bad coder, it has started to dominate the corporate shops, even when M$ has a much better system (Asp.Net MVC) with a slightly higher learning curve. Someone using Asp.Net Webforms instead of a proper MVC framework (asp.net mvc, rails, django, express, sinatra, etc.) is not necessarily a bad coder, but their choosing an obviously inferior framework is pretty troubling.

    78. Re:Batch by sycodon · · Score: 2

      Now, mind you, this is from my memory...from 25 years ago. So the syntax is certainly incorrect and don't even ask about the type definitions but this will give you the jist of the idea:

      01 VendorPerformanceRecord (433)
                      10 VEN_VendorID char(10) ,
                      10 IMA_ItemID nvarchar(100) ,
                      10 IMA_ItemName nvarchar(100) ,
                      10 avg_actual_lead_time_raw int ,
                      10 avg_actual_lead_time_workdays int ,
                      10 avg_actual_days_early_or_late_raw int ,
                      10 avg_actual_days_early_or_late_workdays int ,
                      10 total_nbr_of_receipts int ,
                      10 total_qty_of_receipts float ,
                      10 total_value_of_receipts float ,
                      10 total_count_late_receipts int ,
                      10 total_qty_late_receipts float ,
                      10 total_count_early_receipts int ,
                      10 total_qty_early_receipts float ,
                      10 total_count_on_time_receipts int ,
                      10 total_qty_on_time_receipts float ,
                      10 pct_late_count decimal(28, 10) ,
                      10 pct_late_qty decimal(28, 10) ,
                      10 pct_early_count decimal(28, 10) ,
                      10 pct_early_qty decimal(28, 10) ,
                      10 pct_on_time_count decimal(28, 10) ,
                      10 pct_on_time_qty decimal(28, 10)

      05 VendorPerformanceRecordA (433) redefines VendorPerformanceRecord
              10 KeyInfo char(210)
              10 AvgInfo char(20)
              10 Totals char(45)
              10 Pecentages char(168)

      So here we have the same data record, sliced up two different ways. Note that entire sections that were decimal are now character. This is perfectly legit and used mostly to move data around, which is actually a large part of what COBOL does. Also note this performs two functions: 1. It defines variables and 2. It clearly documents the variables and their relation to the record of data.

      Now imagine you are a guy new to a system and you are told to modify a an existing application to extract the percentages and display them with the Vendor ID and then move the totals, and just the totals to another record and write it out.

      The data is clearly defined, you know where the percentages are, you know where the totals are, you don't have to write code to move 9 fields, you just grab the redefined variable "Totals" and deal with that.

      Many other cool things can be done with it that I can't remember.

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    79. Re:Batch by Anonymous Coward · · Score: 0

      Hmmmm. Coming from a person without knowledge of the subject....

    80. Re:Batch by mwvdlee · · Score: 1

      Please explain. I'm under the impression that IBM sells a C/C++ compiler. And even failing that, doesn't gcc work?

      Yes, IBM provides their own C/C++ compilers, there are a few third party commercial C compilers available (don't know about C++) and GCC works too (for instance http://gccmvs.sourceforge.net/, but google has more).

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    81. Re:Batch by hackula · · Score: 1

      A programmer with 10 years of experience in California can easily make 6 figures using most any language. For example, a mid level Java programmer is making something around 100k in the valley typically. Rails freelancers should be at least in that range as well. The difference between COBOL and something like Rails is that if your COBOL gig dries up it can be pretty difficult to find another job to replace it in a timely matter. A Rails (or any other hot language/framework combo) guy pretty much has to beat off clients with a stick. Also, most of the guys making big bucks on COBOL/RPG/Fortran derive most of their value from their knowledge of the particular system they have been maintaining for the past 20 years. That means they might be worth 400 bones an hour to ABC Regional Bank, but when the bank goes out of business, most of their value is lost as well. Being stagnant comes at a very high price in the programming world.

    82. Re:Batch by hackula · · Score: 1

      We are typically talking about batch financial transactions that get queued up and run on a weekend towards the end of the month in the context of COBOL. Performance is largely moot in this area.

    83. Re:Batch by Anonymous Coward · · Score: 0

      First and foremost, it's a language that cannot muck with the underlying hardware. Period.

      Assembler is/was apparently often used in performance critical sections of mainframe code. The processors have a very extensive instruction set for that more comfortable assembler programming experience.

    84. Re:Batch by bws111 · · Score: 1

      Wait, you think that when you use your credit card, or do an online banking transaction, or make an airline reservation, or make an online purchase, or make an insurance claim, they 'batch it up and run it on a weekend at the end of the month'?

    85. Re:Batch by AvitarX · · Score: 1

      Have you ever seen an ungroomed dog?

      --
      Wow, sent an e-mail as suggested when clicking on "use classic" banner, and got a fast response that addressed my msg
    86. Re:Batch by doom · · Score: 1

      " ... and anyone that suggests rewriting swathes of code simply to change the syntax of its representation doesn't understand the first principles of software engineering."

      Ding! We have a winner. Unfortunately, you've just described nearly every programmer in existence.

      My guess: The reason we still have code written in COBOL is that management got suckered by techies playing the language-of-the-month game a couple of times, and then wised up.

    87. Re:Batch by doom · · Score: 1

      "A Rails (or any other hot language/framework combo) guy pretty much has to beat off clients with a stick." Until the fad dies down (eventually, people will get tired of re-writing Rails prototypes in something that scales...), and then you're stuck trying to decide which band-wagon to jump on next.

    88. Re:Batch by Dadoo · · Score: 1

      But none of those come close to the performance of COBOL for these specific tasks.

      I'd actually like to know if this has ever really been put to the test.

      The application on which we run our business was written in a language that is obviously a descendant of COBOL, and one of the reports it generates takes multiple hours to run. One day, I thought I'd try an experiment and, after messing around for an hour or two, I had a sed/awk pipeline that produced exactly the same results in about 10 minutes - and part of that time was used to convert the language's data files to text that sed and awk could understand.

      It would be interesting to see how much COBOL code could be replaced in a similar way.

      --
      Sit, Ubuntu, sit. Good dog.
    89. Re:Batch by roc97007 · · Score: 3, Funny

      Ah yes, COBOL poetry. The fourth worst poetry in the universe.

      --
      Oliver's law of assumed responsibility: If you're seen fixing it, you will be blamed for breaking it.
    90. Re:Batch by Anonymous Coward · · Score: 0

      A dot matrix printer and a paper shredder slices and dices any code or program quite nicely.

    91. Re:Batch by Anonymous Coward · · Score: 0

      Hating FORTRAN is only done by those who are stupid enough to think FORTRAN 66 is the current state-of-the-art, and are blissfully ignorant of the fact that Intel, AMD, IBM, NVIDIA, NAG, PGI, Cray, Fujitsu, Oracle, and a lot of other companies are spending some pretty serious money on it. Even Apple used to have a FORTRAN compiler, now they just recommend PGI I think. And lately you have all sorts of fancy things like Fortran 2008, Co-array Fortran, and even CUDA libraries and high-level GPGPU routines being developed. If you sum up all the the CPU/GPU hours consumed in the world in a year, I'm betting Fortran uses more than any language bar none.

    92. Re:Batch by semi-extrinsic · · Score: 1

      The difference between COBOL and something like Rails is that if your COBOL gig dries up it can be pretty difficult to find another job to replace it in a timely matter.

      No, the difference between COBOL and Rails is that the guying doing Rails-programming is going to have to forget Rails and learn the new facny-language du jour in ten or maybe just five years. The COBOL programmer will never have to learn another language, and can even teach his children and grandchildren COBOL, thus ensuring prosperity not just for himself but for coming generations of his offspring.

      --
      for i in `facebook friends "=bday" 2>/dev/null | cut -d " " -f 3-`; do facebook wallpost $i "Happy birthday!"; done
    93. Re:Batch by sjames · · Score: 1

      I think a huge part of it is that COBOL is sufficiently capable to handle most actual business needs and at the same time sufficiently clunky to convince management not to specify dancing pigs in the interface. It's reliable and reasonably fast exactly because it so strongly discourages all of the specifications cruft that leads to slow and unreliable code.

      Meanwhile, the style of processing that it practically demands makes data entry operators think about what they're doing. Nobody expects it to understand that when you add "shove an umbrella up his ass" to the comments you actually mean don't give him the 5% repeat customer discount on alternate Tuesdays. Nobody expects it to 'just know' when you transpose digits. Nobody expects it to 'guess' or 'deal with it' when you leave a field empty. It is an error. No "OH dear, you didn't enter a sales amount here, do you want me to use the last known price? Do you need me to read this to you using James Earl Jons' voice in Hindi? Just ABEND. That's why it keeps working decade after decade.

    94. Re:Batch by frank_adrian314159 · · Score: 1

      You've obviously had neither (a) a significantly sized batch run or (b) a significant number of batch runs that had to be done on a periodic basis (and don't forget things like end of quarter or year jobs that run on top of your regular load). Because bigger iron to run these jobs on costs real money, performance is certainly not moot.

      --
      That is all.
    95. Re:Batch by Darinbob · · Score: 1

      Yup, a lot of programmers just don't think too well about batch processing. They're used to programs being interactive, or dealing with files byte by byte, etc. There's a whole lot wrong with COBOL but it does what it does well and it will cost a lot of money to port to a different language, almost all of that money spent on figuring out specs and requirements and QA.

    96. Re:Batch by Darinbob · · Score: 2

      A family friend donated to me all her deceased husband's RPG-II manuals, thinking that they'd be useful to a kid interested in computers. When I read them I almost gave up on the idea of going into computing altogether.

    97. Re:Batch by Darinbob · · Score: 2

      COBOL compilers don't need to generate fast code. They just need to generate code that is correct. The compilers are getting faster (duh) but that's not their main purpose. The reason COBOL programs are still around isn't about performance, it's about keeping legacy programs running that are cheaper to maintain than rewrite or replace. Making a new program in COBOL would be silly.

      Imagine if your HR department told you that they were going to change all the payroll processing code because they found this kid who claims he can do it better in C#. I am pretty sure that you'd be scrutinizing every paycheck very closely for errors and keeping a detailed paper trail.

      And really it's still one of the few languages designed to be read clearly and understood by people who are not programmers.

    98. Re:Batch by Darinbob · · Score: 1

      The goal is to make code that is readable. And that does not just mean readable by coders. It means you can give the code to the finance department and they can check it for validity or give it to project managers to see if it meets the specifications. Granted it is not perfect here, the data type declarations can be confusing for example. But the goal of COBOL was not to be something only understood by coders or to make the coder have to type fewer characters.

      Note that "c = a*b" itself is not simple. In mathematics this is an equation and not an operation. Some languages change that to "c := a*b" but then it leaves people who aren't programmers wondering what ":=" means. And what is "*", is that a multiply or a Kleene star or something else?

    99. Re:Batch by mwvdlee · · Score: 1

      Anything that can be handled with sed and awk would typically be handled in JCL without touching any compiled code. Stuff like DFSORT/ICETOOL are remarkable flexible, have literally decades of continued improvement behind them and can do pretty much any file operation except business logic. One of the nice things about a mainframe is that pretty much every third party application can be controlled through JCL. A bit like bash scripting, but with more control. JCL itself is a bit complex though.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    100. Re:Batch by Anonymous Coward · · Score: 1

      You miss the whole point if COBOL, which is to provide a language that clearly explains what's going on while it's doing it. That means that a freshly graduated I.S guy can go in and understand what's going on and make changes.

      ahahahahahahahah
      you've never actually seen what happens in COBOL programs have you?

      this is normally NOT what happens

      yes this is the language intention

            COBOL programs can end up being harder to understand than Perl programs.

      i hear that the aust DHS is set to convert all of its COBOL to SAP

    101. Re:Batch by angel'o'sphere · · Score: 1

      On the bank side, it is certainly run at earliest as at night.
      The only thing that happens right away is checking ovalidity of the card, perhaps balance etc.
      But the 'transaction' during which the (card) account is debited and the other account (airline etc.) gets the money is not done immediatly.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    102. Re:Batch by StormShaman · · Score: 1

      Isn't this the same idea as defining two structs and a union of them in C?

    103. Re:Batch by SluttyButt · · Score: 1

      You guys have no idea how the minis and mainframes process all these data. Compiled codes not fast enough? That is as fast and as efficient as any of the modern-day compilers do today. You have no idea how these ancient compilers have been optimized beyond your comprehension. In fact, you guys do not understand how and why a process is presumingly slow - read: IT'S NOT THE LANGUAGE

      If you want to run fast efficient programs, you must consider this: I/O.
      -How data is moved from storage media to memory (vice versa) and what data-chunk sizes they are being processed.
      -How do you optimized database I/O.

      In short it's all about I/O and memory operations. Basic nuts and bolts stuff you do not learn in CS schools today.

    104. Re:Batch by SluttyButt · · Score: 0

      Dude, you do not know COBOL enough. It's not the swiss cookie cutter you ignorantly believe it to be. You have to know what is batch processing (or online cases for some). You are not qualified to comment.

    105. Re:Batch by SluttyButt · · Score: 1

      JCL is not complex. With time, you will see that those syntax are as comprehensible as any good SOP you had come across.

    106. Re:Batch by SluttyButt · · Score: 1

      COBOL codes can be easily broken down into tree structures. It's tree-structure procedural language. Bugs can be easily isolated and tested. You don't read the codes blindly. You look into the structure and isolate it as needed.

    107. Re:Batch by SluttyButt · · Score: 1

      Dude, you have disqualify yourself for making ignorant remarks on COBOL. COBOL is a language that can be as elegant as any programming language that has to offer today. Your single-track mind could not possibly comprehend the functions offered by COBOL without understanding the whole mainframe/mini architecture.

    108. Re:Batch by mwvdlee · · Score: 1

      JCL is rather verbose and very easy to get wrong though; it's rather unforgiving.
      There's good reason for this, but it ensures that few people can create working JCL from scratch.

      Writing a bash script usually involves knowing how to use the features of the programs you want to access. Writing a similar script in JCL typically requires knowing most of the features you're not using as well.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    109. Re:Batch by dywolf · · Score: 1

      dont i know it. and if you think those are big, should look at some of the contracts firms like ATS in Peoria, Ill, get for reverse engineering legacy hardware from firms that no longer exist. One of their biggest money makers.

      --
      The guy who said the election was rigged won the presidency with the second-most votes.
    110. Re:Batch by ralphdaugherty · · Score: 1

      Implementation wasn't sloppy. Free form keywords and bulletproof compiler testing and error handling for other specs like D specs would be a huge undertaking. Not even remotely cost effective for anyone, IBM or customers.

    111. Re:Batch by Anonymous Coward · · Score: 0

      Small correction. I spent many years in the late 70's and early 80's coding macro level and command level CICS in both COBOL and assembler. The statement "...its interactivity is largely achieved by having the display terminal emulate the fixed fields of punched cards and line printer columns..." wasn't the case. a 3270 terminal was 24 X 80. Basic Mapping Services was used to describe the layout of the screen. Terminal control was used to send a map and receive the result. The only use of card or printer operations used Transient Data, a separate CICS function

    112. Re:Batch by lsatenstein · · Score: 1

      ok, this doesn't bring us any further, but do you really think, that moving something in a right justified variable is the solution?

      this doesn't only need another variable, but if your source value has trailing spaces you will need a ridiculously long INSPECT line and an index variable for a substring.
      since cobol is dumb, you will further need an INITIALIZE for both variables.

      cobol:
      01 var1 PIC X(50)
      01 var2 PIC X(50) justified right
      01 sub PIC 9(2)
      initialize var1 var2 sub
      move "test " to var1
      initialize var1 tallying sub for trailing space
      if sub = 0
      move var1 to var2
      else
      move var1(1:sub) to var2
      end-if

      rpg:
      d var1 s 50a
      d var2 s 50a
      c eval var1='test '
      c evalr var2=%trim(var1)

      seems way more convinient :)
      even tough RPG is ill-reputed as an old static programming language this looks somehow like any other high level language and anyone should understand what's going on here without trying to figure out what that strange INSPECT does

      Back to cobol. Wasn't there a 77 xyz picturex(50) justified right clause redefines var1.

      --
      Leslie Satenstein Montreal Quebec Canada
    113. Re:Batch by grh_angelone · · Score: 1

      might work.
      but if you have whitespaces after your value this might do nothing.
      you would stil have to inspect the string and replace the space by loval
      i guess.
      didn't try

    114. Re:Batch by dave87656 · · Score: 1

      Well... that and the fact that COBOL is actually very good at what it was made to do; batch file processing.

      Not just that ... COBOL is very good at interactive programming as long as you're using a character cell terminal. Also, it has a built-in report generator and with the right database preprocessor you can bind variables to a cursor making DB programming very easy. Unfortunately, AFAIK, there is no open source version of COBOL, or does someone know of one?

    115. Re:Batch by lsatenstein · · Score: 1

      It was 40 years ago that I programmed in IBM 360 Cobol. Back then there may have been a 77 or 77 may have been a condition on the variable. My memory fades after 40 years.

      --
      Leslie Satenstein Montreal Quebec Canada
    116. Re:Batch by hackula · · Score: 1

      That is correct. I used to write insurance systems. The stuff written in the past 10-15 years is run in real time (almost exclusively .Net of some form). This stuff is the BLL, DAL, and UI layer that handles rating policies, quotes, etc. The "mainframey" stuff then comes into that system and does a lot of the more permanent processing so that the data can be put into the accounting systems. Nobody is running a real time web server on COBOL or driving a GUI app with COBOL. This stuff happens nightly at the highest frequency (I am sure there are SOME exceptions). Most of these systems are doing what you might call "end of month" processing. I have done this work on systems that processed billions of dollars worth of business per year, so I really do know what I am talking about here. My last job like this was actually replacing an RPG system that did just that with a SQL backed .Net web service application that could process policies in real time. In my experience, most RPG/COBOL programmers learned to code before event based programming was even a thing, and since most of them have been pretty siloed for the past 20 years, few have any experience with the real time paradigm at all. Ironically, we see a similar thing happening in the web right now with real time web apps and rich web clients. We all know that not everyone will make the jump, so many people will be left maintaining the more "get updates when you refresh the page" web apps.

    117. Re:Batch by hackula · · Score: 1

      True, but this is the kind of hardware that businesses typically write a blank check for IME. Most banks are used to dropping 200k on an iSeries plus licensing. IBM shops are pretty cost tolerant, almost by definition.

    118. Re:Batch by TangoMargarine · · Score: 1

      The UW college I attended is still teaching CICS to the Computer Information Systems emphases as of a couple years ago. I just checked with on of them and he says yeah...true story.

      --
      Unity? Screw that: XFCE. Slashdot Beta? Screw that: SoylentNews. Australis? Screw that: Pale Moon. UX developers DIAF
  2. More work for me by Anonymous Coward · · Score: 1

    I code in Java but I'm also not above coding in an old language. My C skills are one of the main reasons I'm valued where I work. I did learn some COBOL at one stage and remember thinking it was tedious...but I'd happily pick it up and apply my knowledge to it.

  3. So Simple! by Grindalf · · Score: 3, Interesting

    Writing COBOL is not just easy, it's fun! It takes about a fortnight to work through the manual and become fluent. It uses very English like syntax. It's much easier than FORTRAN or C as it's so small! Lets face it in this world of UNIX massively parallel cloud social web computing, this is hardly a complex problem to solve – it's already been done by the folks that wrote COBOL. A simple database! So get that manual out, and have a try!

    --
    The purpose of existence is to make money.
    1. Re:So Simple! by c0lo · · Score: 1

      So get that manual out, and have a try!

      You convinced me, I'll give it a go.

      --
      Questions raise, answers kill. Raise questions to stay alive.
    2. Re:So Simple! by paiute · · Score: 4, Funny

      So get that manual out, and have a try!

      These seem to me like famous last words, almost as dangerous as the classic "Hold my beer and watch this!"

      --
      If Slashdot were chemistry it would look like this:Cadaverine
    3. Re:So Simple! by Anonymous Coward · · Score: 0

      So get that manual out, and have a try!

      It sure is easy to learn and it sure will outlive us all by centuries: http://abstrusegoose.com/323

  4. If a technology is outdated, outsource it. by ixarux · · Score: 5, Interesting

    Yup. I was hired into one of those mainframe companies that worked with COBOL and JCL. The work was the most menial of works I had ever done(after they trained me for 6 months in it).
    The financial sector, the lumbering dinosaur that accepts change only when they have no other option, and the ones maintaining decades-old mainframes really have no incentive to change technologies at the moment. It's easier to just outsource the maintenance and servicing of the mainframes. There are enough of coders (like in the company I joined) in developing countries across the world who would gladly take it up.
    From my experience, there is little development happening any more. I think the day when they run out of people who want to this crappy menial job (which is never) is the day COBOL will go extinct.

    1. Re:If a technology is outdated, outsource it. by Grindalf · · Score: 0

      JCL, is that the one from Digital's VAXen? I've had some fun with that beast before ... Ah nostalgia ...

      --
      The purpose of existence is to make money.
    2. Re:If a technology is outdated, outsource it. by Anonymous Coward · · Score: 2, Insightful
      "The financial sector, the lumbering dinosaur that accepts change only when they have no other option"

      You mean one of the first industries to start using computers commercially? Way before your glorious NASA?

    3. Re:If a technology is outdated, outsource it. by Grindalf · · Score: 1

      My understanding is that the financial sector does “cost based analysis” which is that the work goes to whoever buys the project's budgetary accountant the best meal – plus or minus capability. :0)

      --
      The purpose of existence is to make money.
    4. Re:If a technology is outdated, outsource it. by Anonymous Coward · · Score: 0

      Given NASA isn't exactly a commercial enterprise that's hardly surprising.

    5. Re:If a technology is outdated, outsource it. by Anonymous Coward · · Score: 0

      One of the first, The first being a tea shop

    6. Re:If a technology is outdated, outsource it. by Anonymous Coward · · Score: 0, Insightful

      I knew you nerds would nitpick that. But the fact remains, we have computers today largely because they are useful on their own, not because we needed to put a few test pilots in rubber suits on the Moon to impress the Commies back in '69. I get so tired of the fact-free emotional religious ranting of the space fringe.

    7. Re:If a technology is outdated, outsource it. by DarkOx · · Score: 2

      No IBM brought us JCL. So after writing you "business friendly" COBOL program. It was certain you would still need to find a wizard of the highest order to run it. Only he could convince the Gods Zeek and Zed to turn your program into a living process instead of some mere bytes on on a virtual tape somewhere

      --
      Repeal the 17th Amendment TODAY! Also Please Read http://www.gnu.org/philosophy/right-to-read.html
    8. Re:If a technology is outdated, outsource it. by nospam007 · · Score: 1

      "JCL, is that the one from Digital's VAXen? "

      Most modern Dispatch stations in Europe still run their trains on OpenVMS (ESTW) because the original program was running on VAXes 40 years ago. Just like the space shuttle, they can't easily change the program because each change has to undergo security evaluations that just cost too much money and time.
      Each signal, crossing etc is still operated via 2 modems each to report their status.

    9. Re:If a technology is outdated, outsource it. by Grindalf · · Score: 1

      I'm laughing. It was not VAX “Job Control Language”! So Zeek and Zed must be the Gods of “Zee” OS. Smart A wing tip wizard is required in your analogy, in effect ...

      --
      The purpose of existence is to make money.
    10. Re:If a technology is outdated, outsource it. by jandersen · · Score: 5, Interesting

      So, you didn't like to work on a mainframe, then?

      But don't slag off the mainframe just because it is 'old' technology - the PC architecture isn't all that young either, and the mainframe, believe it or not, is in fact very VERY much on the technological forefront, hardware wise. Mainframes had fiber attached disks before most modern developers had heard of networking.

      Big to huge institutions don't use mainframes because they are too backwards thinking, but because of reliability. In an industry where downtime costs millions to tens of millions per minute, that counts a lot. On a mainfram you can hot-swap just about everything - not just disks, but everything. And if you wish, you can run Linux on it as well; but it is amazing how often the choice is MVS and COBOL; that is because they are just what you need - not multitools like UNIX and C, just a plain old knife meant for cutting only.

    11. Re:If a technology is outdated, outsource it. by Silfax · · Score: 1

      The VAX had DCL - Digital Command Language, and as far as JCL goes, it is essentially a method of setting up environment variables so programs can access external resources, a shell script - nothing more.

      I don't remember ever seeing Zeke & Zack (not Zeek & Zed) on a Z/OS system - If I recall they were mostly on VSE systems and were a automated operator/scheduler. I can't remember which was which, it has been a long time since I have worked on VSE, Z/OS is a daily thing.

    12. Re:If a technology is outdated, outsource it. by hideouspenguinboy · · Score: 1

      I'm sitting right now in a year long training program my employer created to get people to shift from distributed IT to the mainframe world. At the moment I'm hoping to go into z/VM and linux, but at the end of the course I'll have my choice of several technologies to go into. The folks who know this tech are retiring fast - it's an excellent place to go for lots of free training and advancement.

      I was never of the opinion that mainframes were 'old' or 'going away', but I've been amazed to see how far in front of the distributed world the mainframe is, and how many things I thought were relatively new that were actually done decades ago on the mainframe - virtualization technology in particular, but also just IO in general - nothing in the distributed world even comes close.

    13. Re:If a technology is outdated, outsource it. by Zordak · · Score: 2

      because we needed to put a few test pilots in rubber suits on the Moon to impress the Commies back in '69. I get so tired of the fact-free emotional religious ranting of the space fringe.

      This is what really gets me about cold war defense budgets. Was it good enough to build a sound stage in Arizona and film a few guys bouncing on strings? No, some congressman needed to send a little pork back to the home district, so he's like, "Hey, what if we build the soundstage on the freaking MOON to fake the moon landing?" And Congress is like, "That's freaking BRILLIANT! And we'll save tons of money on set building!" But did they even stop to think about how many poor children in Africa could have been fed just for the cost of sending a professional film crew along with Apollo 11? I think not.

      --

      Today's Sesame Street was brought to you by the number e.
    14. Re:If a technology is outdated, outsource it. by mapsjanhere · · Score: 4, Funny

      You're missing the main point - programmer productivity. You know how hard it is to surf porn on a VT100?

      --
      I'm aging rapidly, I bought a new game and had no idea if my machine was good for it.
    15. Re:If a technology is outdated, outsource it. by Lawrence_Bird · · Score: 1

      I once was involved in COBOL
      I think it was on an 11/780.
      Though not very usual
      The times they were crazy

      We had IBM metal too
      But Ken Olsen knew
      Vaxen can do anything Blue
      If you would just code it too

    16. Re:If a technology is outdated, outsource it. by Anonymous Coward · · Score: 1

      I dont think you can call mainframes "outdated". In fact, the technology utilized in mainframes is extremely cost-effective, efficient, and RELIABLE. There are many mainframes running today that have not been rebooted for a decade. Like it or not, mainframes still run the world and will for many years to come. Whether they realize it or not, server farm managers are striving to attain what a single mainframe can give them today - reliabllity, scalability, and manageability.

    17. Re:If a technology is outdated, outsource it. by Anonymous Coward · · Score: 0

      Surely you can get your boss to spring for a VT220; sixels, baby!

    18. Re:If a technology is outdated, outsource it. by Anonymous Coward · · Score: 0

      In a mainframe, it could be a really big tab, since VT100s are not used there. Mainframes use 3270s.

    19. Re:If a technology is outdated, outsource it. by Anonymous Coward · · Score: 0

      It's been done. I've seen it. Once you put a programmer in a dark cellar without windows for longer than a week ascii porn and fantasy will do the job just fine.

    20. Re:If a technology is outdated, outsource it. by Anonymous Coward · · Score: 0

      The mainframe was "Cloud' before "Cloud"was cool!

    21. Re:If a technology is outdated, outsource it. by mapsjanhere · · Score: 1

      True, but in college talking to a VAX/VMS system was as big as it got for me. Searching "the web" on lynx using a VT100 emulator. Cursing the "rich" people with SUN workstations and the newfangled "Mosaic", with pictures. So now that I think back, there were some odd themed newsgroups to find.

      --
      I'm aging rapidly, I bought a new game and had no idea if my machine was good for it.
    22. Re:If a technology is outdated, outsource it. by Anonymous Coward · · Score: 0

      What? Never heard of ascii? It's more then not just handing someone a @-}--- in chat or IM and yes VT100 compatible!
      textfile art

    23. Re:If a technology is outdated, outsource it. by Xabraxas · · Score: 1

      ...and they haven't upgraded since.

      --
      Time makes more converts than reason
    24. Re:If a technology is outdated, outsource it. by fwarren · · Score: 1

      You're missing the main point - programmer productivity. You know how hard it is to surf porn on a VT100?

      Cypher did it

      --
      vi + /etc over regedit any day of the week.
  5. Lords of COBOL by ae1294 · · Score: 5, Funny

    All of this has happened before and will happen again...

    1. Re:Lords of COBOL by Anonymous Coward · · Score: 3, Funny

      Not to me it wont! As an ex cobol programmer I have a no resuscitation card for cobol emergencies card to be buried with me.

    2. Re:Lords of COBOL by jrminter · · Score: 1

      Clever. The Battlestar Galactica reference made my morning.

    3. Re:Lords of COBOL by a_hanso · · Score: 1

      I came here just to point out that "The scriptures say that COBOL points the way". I'm glad to see someone else had the same idea.

  6. Quality Assurance by Anonymous Coward · · Score: 0

    I use to make a living rewriting these solutions to suit modern platforms. In my experience, it wasn't the language that made these solutions great pieces of engineering, I think it was either better programmers or a better culture regarding quality, maybe they were better motivated? I for one would love to see what some of these guys could have done if they just had a bit of syntactic sugar to sweeten their code to get around some of the clever but ugly hacks we've all seen.

  7. If it aint broke... by detain · · Score: 4, Interesting

    why bother paying tons of money developing new software, going through the painful growth and ironing out all the bugs of the new software, educating people on the new software, importing your current clients into new software, getting modern hardware to run the new software, installing modern networking equpment for the new hardware to run the new software, etc.. theres just no real reason to upgrade the software. There won't be many new exploits for COBOL based software as well, since its not used by the average person.

    --
    http://interserver.net/
    1. Re:If it aint broke... by Anonymous Coward · · Score: 0

      I agree... except... in this case the answer is:

      Because it is broke!

    2. Re:If it aint broke... by jkflying · · Score: 1, Insightful

      Why rewrite to something that is modular and well designed? Because it is impossible to add any new features to the old system without inadvertently breaking everything else.

      --
      Help I am stuck in a signature factory!
    3. Re:If it aint broke... by Anonymous Coward · · Score: 0

      At a guess, companies reaching the limits of scalability of ancient software? Or does COBOL stuff in the financial industry scale pretty well?

    4. Re:If it aint broke... by Anonymous Coward · · Score: 4, Insightful

      My guess is that a rewrite will not give you something modular and well designed, it will more likely result in a reformatting of all the data into millions of incomprehensible XML files.

    5. Re:If it aint broke... by Anonymous Coward · · Score: 0

      The people who wrote the COBOL were real programmers, who also had clear goals, and understood the data.
      There are cross language converters - say COBOL to PASCAL/ADA like here: http://www.mpsinc.com/cobol.html.
      Clear thinking people.But the language is irrelevant, management has it in for real programmers, because they cost more than click and drag monkeys who only know one 'product', and believe the marketing spin that with XYZ enterprise database engine, any change is easy and cheap.

      Now you have visual programmers who can't code, but fully get the eye candy and forms bit, but no idea what they are doing, other than chunking out code to specifications, which often resembles a spreadsheet. You have DBA's who have turned off relational integrity checking, and enterprise architecture that goes out of date in months.

      With COBOL, you can only build up to your competency. With modern shite, you can dream up anything, and say yes to anything, but just don't expect it to work too long, or stay 'cheap' one you are hooked to voracious vendors.

    6. Re:If it aint broke... by Anonymous Coward · · Score: 1

      > getting modern hardware to run the new software, installing modern networking equpment for the new hardware to

      Banks don't run old hardware or networks, CoBOL runs fine on the latest hardware thank very much

      Have a look at Micro Focus, it will run CoBOL on .Net CLR and a JVM

    7. Re:If it aint broke... by gutnor · · Score: 2

      Do you really want to pretend that all the change we have had in software like browser, os, databases, search algorithm, storage, network algorithm, and countless other area have has no impact at all ?

      The reason the Bank do not change a working software is that by the time the software really works (i.e. 10+ years after the initial design), nobody really knows why it is working - if you are lucky. Most of the time the company has also lost the knowledge of how it is working too. Changing it becomes a huge risk - since you don't know why it is working, you will never be sure the new system is behaving like the old one. Also since you have lost the why, you just can't design a new better system.

      In an age where a company like Google is able to run analytics on the whole internet, that sites like facebook can instantaneously know what was your favorite brand of pasta in June 2007, do you really think Banks are happy to have whole floor of admin people check by hand that one of their own client has not requested the same mortgage in 2 different branches ? No need to be even that technical, would they just happy to have a system that support space in surname and accented characters so that you do not have to implement training session, guideline book, review processes, special compliance validation to work around that limitation that after 30 years in business now affects 30% of their clients.

    8. Re:If it aint broke... by Anonymous Coward · · Score: 1

      Cobol isn't the most interesting part of the enviorment. It's the eco system around it as well. z/OS, MVS, IMS, CICS and so forth are built for large volumes from the begining on very limited hardware. So from the beging there was a scaling problem and they solved it early on.

      You can for example run batches in partions or in modern lingu sharded. If your current mainframe works fulltime 'just' add another on and you have a larger sysplex (modern lingu cluster). If that grows out, add another one and so forth. When you reached the maximum number of machines IBM have probably released a new generation so you can upgrade by replacing your existing machines on by one.

      So problems of scale in finaciall institution are common and solved on daily basis due to the fact they run mainframes.

    9. Re:If it aint broke... by Anonymous Coward · · Score: 0

      Because if this were the case companies like Microsoft would just roll over and die. This is the reason why they are changing very rapidly to software rental instead of fixed software sales. Right now I go into a bank and all the terminals are XP pro workstations and the big iron running them is not something that gets switched out frequently or has the server software changed.

      If you really examine what is happening the use of simple robust reliable software with menu driven easy guis that have not changed over to a full blown windows api video centric icon driven gui is hurting them big time. AND FOR VERY GOOD REASON

      I remember a food warehouse that was sold an awful windows api style inventory interface. If an order for ketchup came in you scrolled down to the ketchup icon to access the correct sku and bring up the stock list from the db, then if you had an order for that item the visible ketchup bottle icon added it to the shipping list for an order. My guess is they thought that guys who work in a warehouse can't even spell or use their brain at all...assholes!

      NEEDLESS to say it was a friggin' nightmare hung the servers and only lasted 3 months before the guy at head office that bought it was canned and the old system was put back in place.

      And this is the issue at hand Microsoft relies upon the concept that one needs to see everything and not have any essential skills to use Windows software, whereas in reality the speed and accuracy at which good old typing search terminal based guis can work will never be replace by touch screen or icon based interfaces. In some ways keyboard terminal programs are the very best solution to complex item based db access and manipulation.

      It is obvious that most programmers have never actually worked in a real world environment like a warehouse especially corporate spin doctor CEOs like Steve Ballmer and his ilk. Forest meet the trees.

    10. Re:If it aint broke... by 91degrees · · Score: 2

      Source compatibility is pretty common, but aren't the current bank computers binary compatible with the early 360's from the 1960's?

    11. Re:If it aint broke... by DarkOx · · Score: 4, Insightful

      The character set limitations are really platform issues not issues with COBOL or even in most cases the programs written it in. Honestly I have never understood all the COBOL hate. Sure it fails to deliver on its promises of letting business folks write code without any domain specific training in software develop. Just like every other language that has approached that challenge mostly BASIC or Object BASIC dialects.

      That said I'd be actually pretty surprised if a good C/C++/Java/Ruby/Python/PHP/whatever guy could put together a program to do something like print a fifty million decent looking telephone bill statements with accurate summary lines for transaction-data as quickly as a COBOL programer of similar skill and experience can. There really are some problems COBOL solves well. Bulk record processing and account reconciliation is one of those things because that was pretty much THE commercial and military logistics application for computers in the LATE 40's when COBOL was born. COBOL as you might expect is quite fit for that application.

      Its when people start trying to do interactive applications in COBOL be it CICS or web or whatever it gets silly and forced. It brings to mind various analogies about square pegs for round holes, and threaded fasteners to be deployed by hammer. Its sorta like how people tried to CGI applications in C for a long time in the webs early days. Sure it worked and if C was all you knew I suppose you could get the job done. C is good at many things, large amounts of string manipulation is not one of them; but its something you need for a dynamic website. Does that make C a bad tool, no, it just means its the wrong application for it.

      --
      Repeal the 17th Amendment TODAY! Also Please Read http://www.gnu.org/philosophy/right-to-read.html
    12. Re:If it aint broke... by Anonymous Coward · · Score: 0

      Bullshit. The mainframe vendors and programmers pionered all of that except browsers. Show me a modern OS featuer outside the graphics system that didn't ship on a mainframe first. Oh by the way, if facebook or google are wrong, nobody cares. If your bank is wrong, you have a severe emotional event.

    13. Re:If it aint broke... by gutnor · · Score: 3, Insightful

      BTW, this is not a COBOL hate, that is a "if it ain't broke ..." hate.

      Argument like there is training required, there will be bug, ... are generally not the cause at all. The real cause is that the company lost the very business knowledge that is abstracted by the software. Worse, most of the time that knowledge has been outsourced to other third party completely.

      The 2 problems highlighted could be solved, even in Cobol. They won't be solved, and the reason is not that new software cannot be better, it is that the company has lost the knowledge of its own core business and is unwilling to take any real measure to learn it back. Most of the time, "If it ain't broke ..." is not wisdom, it is a sign of incompetence as bad as "Nobody has ever been been fired for buying IBM".

    14. Re:If it aint broke... by Anonymous Coward · · Score: 0

      Yes, it does. I work for an Australian credit union. Our banking system runs on AIX (and is written in pick basic with a Rocket U2 Universe nonrelational database backend, but that's another story).

      We run Micro Focus "application server" and "server express", as our biller file (list of valid payee codes) is validated by a COBOL program. We shell out for the "runtime" and the "compiler" as we need to recompile the program every 6 months or so when a biller dreams up another code validation method (I'm looking at you, Telstra)

      COBOL is a very minimal - but essential - part of our banking system. Without it, members can't pay bills via phone/internet banking or over the counter. The biller validation is only available as a COBOL program. I've asked for a java or C version, but sadly BPay only provide it as COBOL source code.
      All we do is compile it (and wrap it with a C header to make it executable.) The resulting executable only runs if the rest of the COBOL environment is available for some reason.

      Having said that it *just works* (provided the Micro Focus licencing service hasn't fucked up again)

      I'm sure Micro Focus make a fortune off customers like us.
      It costs us about 5 grand per annum for the COBOL licences to compile and run one 800 line COBOL program, that changes just often enough we need to keep the compiler around. We're using about 1-2% of the available functionality in the cobol products we licence.

    15. Re:If it aint broke... by butlerm · · Score: 1

      The late 1950s would be more accurate. Computers in the late 1940s predated compilers. If you were extraordinarily lucky, you might have an assembler.

    16. Re:If it aint broke... by Anonymous Coward · · Score: 0

      Why bother paying...? Because if all the people who know COBOL start retiring, and younger folks won't do it at market rates, salaries will have to rise. At some point, the scales will tip. (Yes, that ignores the possibility that they may just farm it out to 3rd world countries, where they'll do anything.)

    17. Re:If it aint broke... by Anonymous Coward · · Score: 0

      Yeah, because software always gets better when new features are continually added..

  8. COBOL was supposed to be a quick fix by Required+Snark · · Score: 3, Interesting
    COBOL was defined by the "Short Range Committee". It was never intended to last.

    there it was decided to set up three committees: short, intermediate and long range (the last one was never actually formed). It was the Short Range Committee, chaired by Joseph Wegstein of the US National Bureau of Standards, that during the following months created a description of the first version of COBOL. The committee was formed to recommend a short range approach to a common business language.

    http://en.wikipedia.org/wiki/COBOL

    --
    Why is Snark Required?
    1. Re:COBOL was supposed to be a quick fix by Big+Hairy+Ian · · Score: 1

      Sames true of SMTP!

      --

      Build a Man a Fire, and He'll Be Warm for a Day. Set a Man on Fire, and He'll Be Warm for the Rest of His Life.

  9. Not replacing, wrapping... by Anonymous Coward · · Score: 0

    While it is true that many companies run mission critical COBOL applications, they are very well aware of the issues that this poses. Many IT shops approach them proposing to replace existing applications which doesn't make any economic sense whatsoever... the risk associated with such a project makes it a no-starter.

    What smart IT shops are doing is proposing to "modernize" existing infrastructure. The way it's done is with analyzing key "services" that existing apps provide and then "wrapping" them with modern technologies such as web-services. This way it's easy to build modern UIs on top (HTML5, Mobile apps etc) as well as build another backend for new functionality under the same new UI. From the business's perspective it looks like an entirely new application with a modern UI and the ability to add features while at the same time not assuming the tremendous risk of retiring existing apps.

    The premise of the article is that there will always be COBOL jobs but the reality is that the approach I describe doesn't really require any COBOL knowledge (or hardly any).

    1. Re:Not replacing, wrapping... by Silfax · · Score: 1

      That is exactly what we are doing at my shop (a major research university). We are slowly wrapping nice gui web front ends around the existing code. This way we can present a modern appearance - while retaining all of the business logic that is embedded in the legacy COBOL (and some PL/1) code.

      Whenever there is a need for a brand new application, it is quite often easier to access the data (usually a combination of IMS and Oracle databases) on the mainframe, and use zDirect to grab the IMS/DC screens. Sometimes new programs are written, sometimes old programs modified.

  10. COBOL Rocks. by Anonymous Coward · · Score: 0

    One of the things that I seriously loved about COBOL was the basic English structure of it. Properly written, you (the programmer) could sit down with an actual USER, who was not a programmer, and debug it. In my opinion, one of the biggest advantages of COBOL, from the organizational point of view, is that it was so easily maintained.

    Spaghetti code? That's an absolutely crap thought process to dislike an entire language because of poor coders. Those exist with every language.

    It exists, because its good. Simple as that.

    1. Re:COBOL Rocks. by ebh · · Score: 1

      It's very easy to tell *what* a COBOL program is doing, but unless it's very well written, it's not at all obvious *why*.

    2. Re: COBOL Rocks. by cyber-vandal · · Score: 1

      Which languages do you use? I want a magic language that makes it obvious why some clown did an ugly hack 5 years ago that now doesn't work.

    3. Re: COBOL Rocks. by ebh · · Score: 1

      Column-independent syntax and free-form comments are a good start. (You can't enforce good commenting, but you can at least enable it.) And to be fair, COBOL's long variable names were a huge improvement over old versions of FORTRAN and BASIC.

      COBOL initially claimed to be self-documenting because of its English-heavy syntax. Indeed,

          PERFORM DO-SOMETHING VARYING X FROM 0 TO 10 BY 5.

      is much more readable at first glance than

          for (i=0; i=10; i+=5) { do_something(); }

      but this let programmers think they didn't have to add many of their own comments. Thus, it was more likely that a typical ugly hack would not have been commented.

    4. Re: COBOL Rocks. by ebh · · Score: 1

      (Wow, I wonder how many hours have been lost finding bugs resulting from syntactically-correct typos like the one I just made...)

    5. Re: COBOL Rocks. by cyber-vandal · · Score: 1

      I've worked in quite a few languages. COBOL is no more and no less a magnet for lazy developers who can't be arsed to write comments than any of the other languages I've used. As for free form comments what is the difference between * in column 7 then whatever text you like or // and then any text you like. There is godawful poorly documented code in every language, regardless of how amazing their commenting facilities or column independent syntax might be.

  11. Every 3 to 5 years. by sgrover · · Score: 5, Insightful

    Every 3 to 5 years this topic comes up. It's almost like some new batch of CompSci graduates start to evaluate the state of the industry, and share their "discoveries" with the world. Except it is the same old discoveries couched in modern terms.

    1. Re:Every 3 to 5 years. by mvdwege · · Score: 5, Insightful

      That's because IT is suffused with a teenage culture that equates 'old' with 'useless'.

      Being able to spew the buzzwords related to the newest fad seems to be a requirement for a dev job these days.

      It doesn't help that the industry as a whole (especially in the US) seems to prey on young naive workers and likes to keep them that way in order to extract the maximum profit out of them.

      --
      "I know I will be modded down for this": where's the option '-1, Asking for it'?
    2. Re:Every 3 to 5 years. by Anonymous Coward · · Score: 0

      That's because IT is suffused with a teenage culture that equates 'old' with 'useless'.

      Being able to spew the buzzwords related to the newest fad seems to be a requirement for a dev job these days.

      It doesn't help that the industry as a whole (especially in the US) seems to prey on young naive workers and likes to keep them that way in order to extract the maximum profit out of them.

      Ruby!

      Gawd, an interpreted language that makes Java look screaming fast.

    3. Re:Every 3 to 5 years. by Anonymous Coward · · Score: 0

      Crowdsourcing customer-facing solutions in node.js that are cloud-driven and hyperscalable!

      Can I have $130k/year and all the Rockstar I can drink?

    4. Re:Every 3 to 5 years. by a_hanso · · Score: 1

      Every 3 to 5 years this topic comes up... Except it is the same old discoveries couched in modern terms.

      Pythia does say that all this has happened before and will happen again. COBOL is where it all began.

    5. Re:Every 3 to 5 years. by Anonymous Coward · · Score: 0

      That's because IT is suffused with a teenage culture that equates 'old' with 'useless'

      That's not IT. That's slashdot. As slashdot became more popular, slashdot gradually became dominated by teenagers. For an old fart who's been here since it was called "chips & dips", it's easy to see. You can tell by the writing style, the particular words used, the aggression while "debating", the clinging to mainstream opinion.

      In the real world, we most certainly do NOT equate "old" with "useless". In the real world, we don't fix what ain't broke. Teenagers don't "work" in the real IT world, unless you're talking about virus removal on Mom's laptop.

    6. Re:Every 3 to 5 years. by westlake · · Score: 1

      Every 3 to 5 years this topic comes up.

      It feels more like two or three times a year on Slashdot.

    7. Re:Every 3 to 5 years. by Lawrence_Bird · · Score: 1

      Actually, that culture defines, at the least, America today. We live in a disposable society who only wants the latest shiny, scorns the old and mocks those still using it.

    8. Re:Every 3 to 5 years. by Anonymous Coward · · Score: 0

      No, Slashdot is filled with old farts who think Unix circa 1994 was the peak of technological development, and it's all been downhill since.

      Get out of this place and the IT "fad" culture is far more prominent. See the "OMG you're still using Backbone.js and not Ember.js?" rant circulating yesterday.

    9. Re:Every 3 to 5 years. by Anonymous Coward · · Score: 0

      I'm not even a software developer, and I've noticed this pattern of topic churn on /. at least three times now.

      As for the industry pushing the new shiny in schools, when I went to take Unix/Linux classes at my local college about 8 years ago, they insisted that I take a Windows XP class concurrently in order to remain enrolled in Unix. Then proceeded to offer me a discount MS OS. I know Vista was out at the time. I can't remember what they were pushing at the time.

      Unix had nothing to fucking try to sell me. It did seem to offer self reliance, shell scripting, and a (to varying philosophical degrees) free OS for life.

      I just went to Microsoft's student portal to see how my experience matches the current reality. The top banner entreated me to "Join the Revolution" and get started with Windows Store Apps. Another promised "Go Underground" with Windows Phone. Yeah. Be edgy. Be a Rebel. (captcha: offend. Got that right, boyo.)

    10. Re:Every 3 to 5 years. by Anonymous Coward · · Score: 0

      O.k. I looked it up. Vista wasn't quite out yet. Calm down.

  12. Surprise! by Organic+Brain+Damage · · Score: 1

    Software that did not function as intended? Such an amazing surprise!

    1. Re:Surprise! by Anonymous Coward · · Score: 0

      The surprise was that it worked better than was ever intended.

    2. Re:Surprise! by sandytaru · · Score: 1

      Hence, why they didn't bother with the Long Range Committee!

      --
      Occasionally living proof of the Ballmer peak.
  13. Time machine by hcs_$reboot · · Score: 1

    I'd swear I read the same article at the end of the 90's, before y2k .

    --
    Slashdot, fix the reply notifications... You won't get away with it...
  14. Not old hardware, new hardware by Anonymous Coward · · Score: 1

    I belive that all larger mainframe customers run on modern hardware. Mainframes are still developed and upgrade regulary. You can even run previous version togheter with current version of the hardware in your mainframe cluster. Additional machines can be hot added and work migrated live between the machines.

    Mainframe have all the bells and whistels of the "cloud" and have had for several years.

    My work place recently replaced the tape storage system to a new one, or rather the 2 tape storage systems as we run geographically disperesed clusters of mainframe in order to provide guaranteed uninterruptable service.

    1. Re:Not old hardware, new hardware by Anonymous Coward · · Score: 0

      Not true, Our company specialise in supporting a number of customers that use older legacy systems and in house developed software, one of which is a large international customer (that shall remain nameless, but you will be familiar with), who use mini computers and micro computers that were assembled in the late 1970s / early 1980s, they use a language not dissimilar to cobol, that was created in the mid sixties.

      Because of the nature of older hardware, assuming you can still source individual components (i.e. electrolytics, capacitors, etc), the computers can be repaired. Take a modern system, and everything is surface mount these days, which means when a board fails, it has to be replaced. What happens when the manufacturer stops producing these boards? You are forced to upgrade! This is no trivial job, as many companies that still use these legacy systems have had hundreds of man years worth of development spent on the software. You can't just rewrite this software, in many cases the cost runs into hundreds of millions, and in some industries (more specifically with control systems), you have to consider safety, environment, and the fact that government bodies might have to sign on to updating many of the systems in certain industries after rigorous testing. And I've not even mentioned the fact that many process/service industries need to have years of downtime to replace their some systems.

      What tends to happen quite often is that modern peripherals are attached to the legacy systems, e.g. we have compact flash cards / SCSI disks attached to some legacy systems where there where once Winchester disks with interchangeable platters), there are specialist companies that produce equipment to interface the different generations of equipment.

      There is little incentive to update these systems due to high cost involved or in some cases it's just quite simply impossible. There will always be opportunities for companies that can bridge the gap, and it's a lucrative market to be in, as we can demand high rates due to the scarcity of skills (for which we have an active internal staff development programme), but still offer massive savings to our customers.

    2. Re:Not old hardware, new hardware by Mabhatter · · Score: 1

      More importantly, upgrading Mainframes if you stay on track, is easier than buying a new PC and having all your stuff copied over. Today's mainframes are DESIGNED to be upgraded/replaced easily. As long as you have your source code and stay on the manufacturer's track it's easier to replace than to migrate... Like staff needs counted on fingers easy.. Even for multi million dollar machines.

  15. Outdated? Maybe Not by Anonymous Coward · · Score: 1

    One of the things that continues to fascinate me is the tendency of computer folks to create new programming languages -- claiming to be 'better' than their predicessors for solving problems but most often just different and frequently worse. Compared to the development issues I have experiences writing C, C++, shell scripts, various assemblers and macro languages, Fortran, APL, various Basics, Forth, Focal and many others whos names I have forgotten over the last 50 years, Cobol was trivial both to write and to generate. Wordy but boring, it just did its job. If I were doing an accounting application it would just make sense to use something like Cobol. Problem is that with IT, marketers are continually dusting off and renaming old ideas -- new doesn't necessarily mean better. Sometimes old just means it works. And the word obsolete gets thrown around a lot -- especially with regards to Cobol. Have any of us ever really questioned what it means? Obsolete in my mind means replaced by better approaches, not just different, Effectively it seems to mean paid for and understood, therefor bad, from the perspective of those folks who make their living from selling stuff. From an implementers perspective, and the businesses that pay for it, there is a lot to say for suitability for a purpose.

  16. COBOL is a work of genius by sirwired · · Score: 5, Insightful

    Viewed through the eyes of a modern programmer, COBOL is indeed a joke. A horrible one. It violates nearly every single principle of good language design in what appears to be a misguided attempt to make programming "friendly." A CS undergrad would get a poor grade turning in something like COBOL as a Programming Languages 101 project.

    But for a language first specified in 1959 (when computing didn't even have the Integrated Circuit yet), it's a work of staggering genius; they didn't HAVE all those rules of good language design to fall back on! At the time, FORTRAN had been out for all of two years and LISP for one; hardly enough time to have much experience with knowing what not to do, and neither of those languages targeted the same problem domain.

    COBOL made modern computing accessible and useful to businesses. It's programs have maintained decent backwards compatibility for about half a century. And for all it's foibles, all those hundreds of millions of lines of COBOL actually work. They may be a disgusting kludge, a result of decades of compromises, but these gigantic black boxes of spaghetti Work. And there's no reason to think they'll stop doing so any time soon. Nor any reason to believe that replacing them would be in any way cost-effective.

    1. Re:COBOL is a work of genius by DarthVain · · Score: 1

      Took COBOL in University. I didn't think it was a particularly hard language to code, however it wasn't exactly all that exciting either. It is rather adept as moving around account information and financials it seemed.

      One thing I did notice was that the professors that teach it did not adhere to the same programming design rules of other CS languages. I mean I recall some other professors loving the optimization you can get out of recursive algorithms. So for my final project in COBOL I threw one in there, and though myself sort of proud of the elegance of it. However it was the ONE thing the COBOL professor docked me points off from. He was NOT a fan of that sort of design.

      Now Assembly. That was hard.

  17. Cheer up... by Anonymous Coward · · Score: 0

    ...these days there's JAVA for the masochists!

  18. COBOL Will Outlive Us All by Anonymous Coward · · Score: 0

    COBOL.

    cockroach.

    I think it's pretty obvious.

  19. I don't think there will be a shortage. by OpenSourced · · Score: 1

    It takes a week for a programmer to learn COBOL. A month at most to be proficient. Of course depending on dialect and environment, it can take more to be productive, but that's true also for COBOL programmers coming from other backgrounds. That means there will be no big shortage of programmers as big companies can train in-house in a matter of days.

    The problem with COBOL is that it will erode your sanity with mindless repetition and superfluous verbosity. If you are put to make COBOL programs, make a generator for the most common tasks. It won't save you perhaps such a big amount of time, but it'll make life more interesting.

    --
    Rome taught me patience and assiduous application to detail. Virtues which temper the boldness of great, general views.
    1. Re:I don't think there will be a shortage. by CrazyBusError · · Score: 2

      Sorry, but I'm going to have to disagree with you. You can learn basic cobol in a week, sure. You can probably even learn all the useful keywords in a month, but almost certainly won't learn all their options or the best way to use them or the caveats of using some of them. You won't learn the various gotchas waiting in the wings when defining data structures either, whether in memory, or on disk.

      A month might make you able to write fairly complex stuff, but it won't give you time to learn the best ways to write efficient fast code and COBOL, despite its apparent simplicity, is remarkably easy to write nasty (self modifying if you wish) resource-hogging evilness. If you're on mainframes, it'll be longer than that before you've figured the full intrigues of things like Expediter, or, if you're really unlucky, core dumps, which can be your only way to debug.

      I've worked with COBOL since the mid 90s, so I'm still considered a noob in the field, but I've seen some horrors written by people with twice the experience I have and I've rarely seen *good* code written by people with anything less than a year of it on their CV.

      Bear in mind also that most COBOL is mainframe still, so chances are that as well as the language itself, you're going to have to learn DB2, JCL, CICS and suchlike. Mainframe assembly will also likely crop up in your radar and in certain financial institutions, PL/1 - all linked into one big horrible mess. You might think you'll learn COBOL in a week, but almost no company using it for mission-critical stuff will let you within a mile of their production systems until you've a couple of years under your belt.

      --
      -Never argue with an idiot. They drag you down to their level, then beat you with experience-
    2. Re:I don't think there will be a shortage. by Silfax · · Score: 1

      Sorry, but I'm going to have to disagree with you. You can learn basic cobol in a week, sure.

      snipperoo...

      Bear in mind also that most COBOL is mainframe still, so chances are that as well as the language itself, you're going to have to learn DB2, JCL, CICS and suchlike

      You could just as easily slug in "Java" for "COBOL" and "generic SQL, shell scripts, Spring, and assorted other frameworks...." for "DB2, JCL, CICS" and the statement will be just as true (except for the fact that most Java is not mainframe), but the idea is still the same.

      It is not the programming language, but all of the other 'stuff' that goes with it that makes it useful. It is the other 'stuff' that takes time to learn and become proficient with.

    3. Re:I don't think there will be a shortage. by JK_the_Slacker · · Score: 1

      It's been my experience that generated code is fully 70% of what's wrong with most of the COBOL code I encounter. Hand-crafted COBOL is beautiful in a way. Generated COBOL is a nightmare.

      --
      I'm waiting for a "-1 somepeoplejustshouldn'tgetmodprivileges" meta-moderation.
  20. Training? *hollow laugh* by Rande · · Score: 1

    For those teams that actually get a training budget, it'll be 2 days for one member of the 10 strong team per year. I last got training that I didn't pay for myself in 2000.

  21. COBOL is a glue language on the mainframe by Anonymous Coward · · Score: 0

    Not just COBOL! What people don't understand is COBOL is the glue language of the mainframe. COBOL is the easiest and most productive way to write CICS, IMS, DB2, MQ, etc applications. Sure, you can use other languages, but IBM has invested decades in making their technologies easy to access from COBOL.

    What is going to hurt is the brain drain when people retire who are experts in IBM's huge, over-engineered technologies like CICS, IMS, and DB2. A reasonably motivated programmer could get a Mike Murach book and learn enough COBOL to be productive in a fairly short time. What is going to be difficult to replace are people who know CICS, which is an operating system within an operating system and inhumanly complex.

    And, since you can't run CICS on Linux, how would you learn it? About the only way to learn it is to get a job working with mainframes, but of course employers only want experts with 5+ years experience. Eventually, maybe they'll get desperate enough to train someone. There's the rub: The short-sighted technology industry has let two or three GENERATIONS come along and learn Linux and Java. Everyone has been chasing the existing CICS experts, not making more. Now, generations have never used an IBM mainframe. If a company started today training in-house programmers, it could take years to develop a new generation of CICS experts. That's what you get for being short-sighted and focusing only on the next quarter.

    I hope the impending brain drain hurts companies so bad, and causes them to lose so much money, that they start investing in training once more.

    1. Re:COBOL is a glue language on the mainframe by RabidReindeer · · Score: 1

      I won't argue that business has spent far too long only recruiting people who can "hit the ground running" and sawing the bottom rungs off the career ladder. However, there's a reason that lack of CICS expertise isn't killing us all.

      The mainframe isn't dead, but it's no longer essential. Much of the real work these days gets done using servers, and HTTP servers actually have many functional similarities to CICS, Both are designed to provide terminal presentation and input. Both are geared towards fast request/response turnaround. Both have the ability to hook into back-end services such as databases.

      While IBM is certainly supportive of CICS, they're also quite happy to sell you WebSphere to do many of the same things, and typically talking to the same backend systems. MQ very definitely hooks into JMS, and I've worked with several J2EE apps whose database services came from DB2.

      CICS is complex, but then again, so are modern-day industrial-strength non-mainframe platforms. The bigger problem is that business has spent too much time shopping for talent at Wal-Mart.

    2. Re:COBOL is a glue language on the mainframe by jythie · · Score: 1

      Maybe someone needs to write a mainframe emulator for linux? I know I have seen projects out there for things like ITS and Multics.

    3. Re: COBOL is a glue language on the mainframe by Anonymous Coward · · Score: 0

      I got a job right out of college to be trained for literally months of paid classes for the problems you state. The workforce is aging and we are expected to end up replacing them. There is so much to learn. Some were literally rocket scientists.

    4. Re:COBOL is a glue language on the mainframe by hideouspenguinboy · · Score: 1

      Those web servers can efficiently be hosted on thousands of linux servers hosted on a single mainframe, which is simultaneously running that CICS infrastructure. That's exactly the setup where I work.

      It's not 'essential', but it's very, very good at what it does, and depending on scale it does it very cost efficiently.

    5. Re:COBOL is a glue language on the mainframe by Anonymous Coward · · Score: 0

      I hope the impending brain drain hurts companies so bad, and causes them to lose so much money, that they start investing in training once more.

      I see we'll be needing to issue more visas.

    6. Re:COBOL is a glue language on the mainframe by Anonymous Coward · · Score: 0

      My friend. There is already very well known and good IBM and free mainframe emulator for Linux/UNIX/Windows:
      http://www.hercules-390.org/

      It can run OS/360 and OS/370 on it (its free) - including COBOL, ASM, PL/I compilers.
      Also: it can emulate and run modern Z/OS without any problems :) [if you can obtain it]

    7. Re:COBOL is a glue language on the mainframe by jythie · · Score: 1

      This not only does not surprise me, it pleases me ^_^. Not because I have any use for a OS/360 emulator, but because it is the type of thing that should exist.

    8. Re:COBOL is a glue language on the mainframe by Anonymous Coward · · Score: 0

      It's been done http://www.hercules-390.org/

  22. Speaking of COBOL outliving us all... by fuzzyfuzzyfungus · · Score: 4, Interesting

    Does anybody know what language(s) are used for the "Dead Hand" second-strike control system that the Russians were working on during the Cold War? Personally, I'd nominate them as the programming languages that will outlive us all...

  23. Hire veteran COBOLers, retirements won't matter. by emes · · Score: 5, Insightful

    It is a bromide perpetrated by ITAA and business groups that we can't find enough programmers to replace the ones who are retiring.

    The simple truth is that no one wants to PAY what people are worth, and there is rampant age discrimination:

    http://www.itbusinessedge.com/cm/blogs/tennant/yes-age-discrimination-is-worse-in-it-than-in-other-fields/?cs=38549

    Be willing to hire, retrain, or do whatever it takes to employ people over 35 and this so-called problem will be
    shown to be the chimera that it really is.

  24. COBOL Will Outlive Us All by FatLittleMonkey · · Score: 1

    Aye, but you call that living?

    --
    Science is all about firing a drunk pig out of a cannon just to see what happens.
  25. As will Java by Pope+Raymond+Lama · · Score: 3, Funny

    as will Java, the new Cobol. So what?

    --
    -><- no .sig is good sig.
  26. Here's an old computer science joke by RabidReindeer · · Score: 2

    "Here's an old computer science joke: What's the difference between hardware and software? If you use hardware long enough, it breaks. If you use software long enough, it works.

    Actually, that's not true. COBOL programs are more durable because the COBOL architecture is very simple. Almost all of the work other than raw I/O was done in the COBOL code itself. Modern-day systems are heavily dependent on many external components, almost all of which are constantly evolving. So the "if it ain't broke, don't fix it" approach is actually more of a "how long can you afford to delay upgrading before the whole thing collapses beyond repair?"

    Even legacy programs didn't actually get better with time. Once you reach a certain point, it's more like you move the bugs around. The old "pressing on a ballon" analogy goes way back.

    1. Re:Here's an old computer science joke by JaredOfEuropa · · Score: 1

      That's an important observation. It also explains that other CS joke: "If we built houses like we build software, the first woodpecker that comes along would destroy civilisation". There's some truth to that, but it is not just about how we built software, it is also about what we are building with. Imagine building a house on a foundation that changes significantly over time, using bricks with varying and hidden qualities (and flaws), materials that may fail in surprising ways when used in certain combinations, and a resulting structure that may collapse if you hang the front door crooked. That is what working in a modern software environment sometimes feels like.

      --
      If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
  27. "... great entry-point into IT." Seriously? by Anonymous Coward · · Score: 0

    It's not about COBOL. It's about knowing something about mainframe programming that would get you the job.

    http://stackoverflow.com/questions/4433165/learning-cobol-without-access-to-mainframe

  28. Job Postings by jythie · · Score: 3, Funny

    Heh. In my job search I have actually been, well, surprised might not be the right word, but amused, at all the COBOL, FORTRAN, and mainframe postings. One thing I think they are getting themselves into trouble with though is all the postings I have seen require decades of experience in the technology, so they seem to be trying to replace retiring boomers with similarly skilled people, but not creating entry level or training paths.

    1. Re:Job Postings by JaredOfEuropa · · Score: 1

      Actually, I see this in many other IT jobs as well: many companies struggle to fill certain key senior IT positions, because there no longer is a career path that leads to those jobs due to outsourcing. Some companies actually come to realise that they can't outsource everything, then take a long hard look at their current IT career paths, and conclude that they need to start doing some stuff in-house again.

      --
      If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
    2. Re:Job Postings by Anonymous Coward · · Score: 0

      what is a mainframe? is it like a pc that is a server in a datacenter? i'm not trying to be rude. i never heard of cobol or fortran. i've heard of java, javascript, c++ c# and python. guess i haven't been around when new languages tried to replace cobol in the 1980s and 1990s. maybe i'm just showing my age. lol thanks to slashdot for posting this article. i learned something new. oh, plus i never heard of the phrase baby boomer before.

  29. Re:Hire veteran COBOLers, retirements won't matter by jythie · · Score: 2

    That would help yes, but another part of the problem is, with these older technologies, many companies are only interested in drop-in replacements. There are few (if any) companies out there taking on entry or mid level developers for mainframe stuff, so once the current crop of experienced people run out they are going to be in trouble.

  30. There are only 3 COBOL programs... by DrogMan · · Score: 3, Interesting
    The "Input and Validate"
    The "Update"
    and the "Print"

    At least that's what a lecturer told me many years ago when I did COBOL at uny. I didn't get on with it initially, then I got bored and opened the book... Then I learned that what the lecturer was telling me was his idea of what COBOL ought to look like and not generic. It got a little more interesting after that (along with the student competition to see how many errors we could make the compiler generate with the minimal amount of syntax errors - one mis-placed full-stop managed to get it to the limit of 999 once)

    I've not written a COBOL program for over 30 years now. I don't miss it.

    -G

    1. Re:There are only 3 COBOL programs... by Anonymous Coward · · Score: 0

      one mis-placed full-stop managed to get it to the limit of 999 once

      so *that's* where C++ comes from...

  31. "Good" issubjective. Perl is worse by Anonymous Coward · · Score: 1

    It violates nearly every single principle of good language design...

    Whose principles are those? (That was rhetorical)

    they didn't HAVE all those rules of good language design...

    Again whose rules? (That was rhetorical, too)

    There are no physical laws and mathematical rules that state what good design is. None. There are some folks who promoted themselves as being the "ones who know what's correct" but there are no "rules".

    If the code:

    1. Works as designed.
    2. Easy to ubderstand.
    3. Easy to maintain.

    then the code and language is a wonderful design. Everything else is arbitrary.

    Because using the standards expressed in the parent, Perl is the biggest piece of shit EVAR!

    I witnessed an argument in a CS class years ago between the professor (he started it by being a condescending prick) and a student who had a MSEE and being forced to take the class (C++) because his years of embedded design and coding in C++ didn't count because he didn't have a class in it. When the engineer pressed the professor about these "rules" and logically analyzed them, the professor being intellectually beat, said in exasperation, "It's the way _I_ want it! OK!?"

    So, whenever I see folks spouting off about these rules, they are parroting something for a professor or from a book by an "expert" or it the way they think it should be.

    1. Re:"Good" issubjective. Perl is worse by Anonymous Coward · · Score: 0

      You know there are rules of English too. And yet it seems you violate them. (Just like I violated your mother last night.)

      What a joke.

  32. COBOL programmers are being Cryogenically Frozen.. by martiniturbide · · Score: 1

    ..to fix the Y10K bug.

  33. Well, of course COBOL is still around by MikeLip · · Score: 3, Funny

    As a guy who worked on some pretty complex financial software, I can tell you this; If you come to a company and say "Hey, look. Your software is outdated, and just not cool anymore. Let us fix it." They will say "OK, how much will it cost, how many times will you screw up (and you WILL) and how much will it cost in lost productivity, development and training time?" In other words, prove to me that the cost and risk outweighs the benefits of leaving my not-cool but working structure in place? Know what? You can't. When you are talking about financials, companies are justifiably VERY risk-averse. And yeah, people laughed at COBOL when I was coding, and even back in the 70s when I was learning. This is an old argument and the fact is COBOL will be around a very long time whether our new compsci grads like it much or not. They aren't paying the bills and looking at cash flow. They just see all that legacy code and say they could do it better. Maybe you can. But you're not gonna.

    1. Re:Well, of course COBOL is still around by terrywin · · Score: 1

      You hit the nail on the head. Another thing that most of the younger folks in IT do not understand is that its very likely their bank and insurance companies are running COBOL on the back end systems producing statements, calculating rate adjustments, etc.
      For these two industries COBOL does all of the heavy lifting and its not likely to be replaced anytime soon...

      Even today I'm still coding in COBOL on a medium sized manufacturing system and to replace it with C or Java would be a fools errand...

  34. COBOL is bad by Anonymous Coward · · Score: 0

    MAINLINE.
              PERFORM WHINE-WHINE-PROCESS UNTIL COMPUTERS-DIE = 'Y'.
              STOP-RUN.

    WHINE-WHINE-PROCESS.
              DISPLAY 'COBOL is ancient.'.
              DISPLAY 'COBOL is something my grandfather wrote.'.
              DISPLAY 'COBOL is wordy.'.
              DISPLAY 'COBOL code is spaghetti code.'.
              DISPLAY 'All COBOL programmers will eventually die or retire.'.
              DISPLAY 'COBOL is only used by banks and insurance companies.'.
              DISPLAY 'COBOL is hard to use when compared with a modern language like java.'.
              DISPLAY 'COBOL is hard to use when compared to C++.'.

             

  35. ALL HAIL FORTRAN 60 by gelfling · · Score: 0

    Still some of that around here.

    1. Re:ALL HAIL FORTRAN 60 by MikeLip · · Score: 1

      Fortran rocks! Anything that can run on a PDP-8i is OK in my book. Now where can I find a new teletype ribbon?

    2. Re:ALL HAIL FORTRAN 60 by ebh · · Score: 1

      Teletype ribbons are pretty easy to replace, because plain typewriter ribbon can be loaded onto its pair of generic spools (no, I'm not showing my age here, nope). Try finding the ribbon *cartridges* for 70's/80's vintage dot-matrix printers. They were as device-specific as toner cartridges are today.

  36. Obligatory tagline by Anonymous Coward · · Score: 1

    SHOOT ME I KNOW COBOL

  37. Re:Training? *hollow laugh* by necro81 · · Score: 1
    That was one of my reactions to the article as well. This line from the end of page 1:

    ...other companies will make the decision to recruit and, if needed, train a new generation of programmers

    We've seen for quite a few years that many companies expect new employees to "hit the ground running", with nothing more than a cursory new employee orientation. Training, especially on-the-job training and formal mentorship/apprenticeship models, have largely fallen by the wayside. In other words, hiring managers want employees who have all the skills to do exactly the job the company needs, in exactly the way they think they need it done. Then they are surprised when they can't find someone who exactly matches that profile.

    [For the record, I am not one of the bitter long-term unemployed who have been stung by this. I was schooled in engineering, got hired as an engineer right out of school, and am happily employed as such today. But I am cognizant of the largely artificial obstacles that many of my peers face]

  38. Not about efficiency or performance by Anonymous Coward · · Score: 0

    It is about documentation. I am an employee of a company that had one of their main systems in COBOL and we converted it to Java. Performance wasn't nearly a concern and we have SLAs with customers. The problem we faced not only in converting COBOL to Java, but also C to Java, is that no one knows everything the application does.

    Programmers make undocumented changes and suddenly if you do a conversion to another language you are missing features that you didn't even know were there. You should never have to look at COBOL code or C code to rewrite an application. There should be a business document that says what the application does at a high level and you design/write code based on that.

    It isn't about, "if it isn't broke, don't fix it", companies are handcuffed because of lack of documentation. When we were able to retire our mainframe, we were able to prop up 4-5 web servers for less money. Mainframe costs these days almost require sacrificing your first born.

    1. Re:Not about efficiency or performance by felix+rayman · · Score: 1

      "There should be a business document that says what the application does at a high level and you design/write code based on that."

      Hahaha.

  39. ERP by crow · · Score: 1

    Yes, companies can spend far more time and effort on customizing an ERP system to meet their needs than the system itself costs. Then, when new releases of the system come out, the customizations need to be done again. The other alternative is to change the company's systems to match the ERP. That's what my employer did when it outgrew the previous system and realized that it was too difficult to keep customizing the system. It meant changing lots of little things throughout the company. For example, every part number had to change to match the rules for the new ERP system. All said, it was probably cheaper to make the changes in the company than in the ERP, and now we can upgrade to new releases without much difficulty.

    1. Re:ERP by Lazere · · Score: 1

      That is, until a new update changes the rules and breaks the workflow again...

    2. Re:ERP by tlhIngan · · Score: 2

      Yes, companies can spend far more time and effort on customizing an ERP system to meet their needs than the system itself costs. Then, when new releases of the system come out, the customizations need to be done again. The other alternative is to change the company's systems to match the ERP. That's what my employer did when it outgrew the previous system and realized that it was too difficult to keep customizing the system. It meant changing lots of little things throughout the company. For example, every part number had to change to match the rules for the new ERP system. All said, it was probably cheaper to make the changes in the company than in the ERP, and now we can upgrade to new releases without much difficulty.

      Great if you can, a nightmare if you can't.

      Like some industries have LOOOOOONNNNGGG support cycles. Take a car, for example - by law all parts must be available for 10 years after production stops. Now you do an ERP system upgrade and all the part numbers change. Now you have a problem because people will be ordering with the old part numbers until you can drop it (up to 10 yeras later). (This is why you find special "automotive" hard drives - nothing's changed ,just that you can get that exact part for 10 yeras. Ditto automotive grade ICs)

      You can come out with big (printed) books of part number equivalancies, but people will still buy on the old part, so someone will have to do a part number translation and hang around answering questions on why they bought part XXX but got part YYY instead. Or even worse, have the same item listed as two different parts on the ordering system, causing even more confusion as people don't know what they should be ordering.

      If your company is small, it's relatively easy to maintain a translation list and if your customer base is equally small, to distribute notices of part number changes. Plus retraining and redoing business practices is much easier (like being able to get rid of certain reports if they're no longer available in the new system - this can be a huge problem if the information is now scattered amongst 10 different reports when previously it was on one nice neat summary report).

      But deepen the supply chain and lengthen the time of support, and things get hairy, fast.

    3. Re:ERP by bws111 · · Score: 2

      Great if you want your tools to drive your business and not the other way around.

  40. Little development? Hardly... by Shivetya · · Score: 3, Insightful

    It isn't just the financial sector, its the medical sector, major distributors, casinos, and more, who use mainframes and similar (I work on an iSeries which at our scale is very much a mainframe - especially in reliability). COBOL and also RPGLE (looks like C/Pascal now) form the back end of many systems because of their ease of programming and especially because they are good at business math. Front end we have web facing apps; javascript/php/etc; RESTful services, and more. New development occurs everyday and is far more modern in its application that your aware. It isn't a land of green screens and such, but those do have their place.

    The technology is anything but outdated, if anything we are as modern if not more. The key difference is dead nuts reliability, both in code and hardware. Downtime usually is when the site fails.

    --
    * Winners compare their achievements to their goals, losers compare theirs to that of others.
  41. Yep by Murdoch5 · · Score: 3, Insightful

    And this is why it's good to arm yourself with solid languages like COBOL, because in 10 years when something finally needs to be replace your the one guy who can.

  42. OpenCOBOL.org by emil · · Score: 4, Informative

    If you have any contact with COBOL in your profession, check out OpenCOBOL.org.

    With a free COBOL compiler, you have an option of moving this ancient code onto a modern platform with fast CPUs. If you find it lacking, start coding!

    I've tested it for Linux and Cygwin, and it works.

    1. Re:OpenCOBOL.org by oh_my_080980980 · · Score: 0

      Again someone who doesn't understand why COBOL is still being used.

    2. Re:OpenCOBOL.org by triso · · Score: 1

      Dead for six years.

  43. Cobol just needs updating, like ruby on rails.... by inkhorn · · Score: 2
  44. Baby boomers? by __aaltlg1547 · · Score: 1
    The "baby boomers retiring" business is nonsense on two levels:
    1. Any competent programmer can learn to read, write and maintain COBOL or translate it to whatever language is preferred, so there's nothing to fear from the people who are familiar with COBOL retiring. The language is plenty well documented.
    2. COBOL was never the province of baby boomers. It was introduced in 1959, when the youngest boomers were still kids and standardized in '68, when most boomers were still kids and had no access to computers.

    The only true part is that the only people still working as programmers who cut their teeth on COBOL are baby boomers and will be retiring sometime in the next two decades.

    So what?

  45. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  46. Tell me about the dinosaurs... by rocket+rancher · · Score: 1

    COBOL was the very first language I learned when I was a fourteen-year-old freshman in high school, way back during the Carter administration. I found out decades later that my great aunt, Grace Hopper (of "There's a bug in the system" fame,) helped develop it and it's successor, SNOBOL. It was used as the pedagogical platform in my school district for teaching data processing principles, which are (sadly) orthogonal to programming principles. I still have my Shelly & Cashman ANSI COBOL -- Introduction to Computer Programming text, which used examples from payroll processing and accounting report generation, the dominant paradigms of the mainframe world, to convey programming concepts like looping and conditionals. Ironically, it's sitting on my reference shelf right next to K&R. The book even came with a plastic flowchart symbol template, conveniently printed with a scale along the edge for measuring the physical width of an output column on your fanfold paper to help you determine your PICTURE clauses, and a list of the ASCII control codes for chain printers. Recursion was impossible in COBOL (the compiler tossed an error if a CALL referenced itself) and the idea of a UI was equally a non-starter, with dynamic input functionality at the INPUT $VAR level of BASIC. In retrospect, it was an amazingly poor way to introduce programming principles, and I'm not surprised that FORTRAN, then BASIC, and ultimately Java, took over from it. Still, I can claim (in my best Gerard Butler THIS-IS-SPARTA! voice) that I-PROGRAMMED-COBOL-ON-PUNCHCARDS! :)

    1. Re:Tell me about the dinosaurs... by frank_adrian314159 · · Score: 1

      Hopper had nothing to do with SNOBOL. SNOBOL was NOT a successor to COBOL. It was a completely different language, developed at Bell Labs aimed initially at symbolic computation, something that is well outside the purview of COBOL. Not that COBOL isn't great, but SNOBOL was much cooler. Tee hee...

      --
      That is all.
  47. Here's a story by slashmydots · · Score: 1

    I went to college and was going to specialize in VB.NET and RPG or COBOL and during the first RPG class, I changed focus to web programming. That emulated IDE with zero assistance was so ancient and backwards and slow and mistake-inducing, it was unuseable. The unfortunate line splitting was unreadable. I chose midrange and mainframe programming because of the money and guaranteed job but I dropped it pretty darn quickly because it wasn't worth any amount of money to put up with that. I also was the best programmer my advanced VB programming teacher had ever seen. I got a 105% on the final project. I started programming because I was good at it, not because of the money or any other reason. So if someone like me isn't willing to deal with COBOL and RPG, good luck finding someone else. Companies just need to dump it.

    I'm now head IT manager at a medium-sized company and we have to dump our current CRM because the company behind it got aqcuired by another so there's no support or updates for server 2012 or IE9 and we bought it in 2009. Anyone using COBOL has at least 10+ years of not quite understanding that exact point.

    1. Re:Here's a story by mapsjanhere · · Score: 1

      Actually, you're making the COBOL people's point. They don't worry about their support being bought out and terminated, they bought IBM for a reason.

      --
      I'm aging rapidly, I bought a new game and had no idea if my machine was good for it.
  48. Oddly... by Greyfox · · Score: 2
    You see a lot of companies make some really, and I mean REALLY, nonsense decisions to upgrade to some shiny cool thing that some manager somewhere read about in PC magazine. Like Citrix. So they add Citrix to their IT infrastructure and it sucks, because Citrix ALWAYS sucks, and everyone hates it, and now all those expensive PCs they put on everyone's desks are nothing more than dumb terminals to slower, less useful environments. Or, for an example closer to home, back in the 90's IBM replaced their mainframe based E-Mail system (Profs) with Lotus Notes, arguably the worst possible system for E-Mail. Just, you know, because... And Profs was so much better than Lotus Notes, it wasn't even funny. I'd have qualified that with "For E-Mail," but really, anything you could shoe-horn into Lotus Notes could probably have been shoe-horned into Profs and been better. But you know, Lotus Notes was shiny.

    Yet you really don't see similar kool-aid drinking driving the replacement of COBOL. You'd think by sheer chance some dimwit PHB would come in and arbitrarily decide "Oh let's replace all that COBOL code with something written in Ruby on Rails by an intern," because he'd just read about Ruby on Rails on PC magazine and was impressed with how quickly you could develop a web-based "Hello World" application.

    Admittedly a probably largish number of PHBs have attempted that and subsequently been fired by incompetence, but you'd think enough of those projects would limp along because they've already spent so much money, effort and time that to admit defeat would mean admitting gross incompetence at every level of management straight up to the CIO. Which, I'm pretty sure, is why Lotus Notes and Citrix are still around.

    Funny story, back in the 90's when IBM was replacing Profs with Lotus Notes, some dim-witted PHB decided "Oh well PCs can do anything that mainframes can do, so let's write a Lotus Notes replacement to RETAIN!" RETAIN being the mainframe-based app they use for trouble ticket tracking and bug fixing across, I'm pretty sure, all their products. Well long story short, that project went on for a couple of years and then quietly disappeared. A decade later, they were still using and actively maintaining RETAIN. I wouldn't be surprised if it were still being used and maintained to this very day, even after IBM's acquisition of Rational.

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

    1. Re:Oddly... by JDG1980 · · Score: 1

      Or, for an example closer to home, back in the 90's IBM replaced their mainframe based E-Mail system (Profs) with Lotus Notes, arguably the worst possible system for E-Mail. Just, you know, because... And Profs was so much better than Lotus Notes, it wasn't even funny. I'd have qualified that with "For E-Mail," but really, anything you could shoe-horn into Lotus Notes could probably have been shoe-horned into Profs and been better. But you know, Lotus Notes was shiny.

      Lotus Notes is probably the worst piece of software that has ever existed. It makes IE6 look like a masterpiece in comparison.

    2. Re:Oddly... by Anonymous Coward · · Score: 0

      IBM'er here, and yes RETAIN is still used.

      On another note, COBOL is well and alive, the compiler team is actively working on performance improvements.

    3. Re:Oddly... by Anonymous Coward · · Score: 0

      I am still using RETAIN

  49. Learn COBOL. by 0xffffffff · · Score: 1

    If you're already proficient in a programming language, you can pick up the basics of COBOL in an afternoon (OpenCOBOL is pretty easy to install). I did just that last week. Totally educational. Modern programmers don't know how good they have it!

    --
    -- This sentence is false.
  50. Really? by Big+Hairy+Ian · · Score: 1

    Dusts off CV! Do I still have to use those damn punch cards? If so I will require a new Braddle!

    --

    Build a Man a Fire, and He'll Be Warm for a Day. Set a Man on Fire, and He'll Be Warm for the Rest of His Life.

  51. Yet to be replicated by Alomex · · Score: 1

    The main reason why it was so successful is that the DBMS is a first class citizen within the language. I have yet to see any other major language that has picked up on this point.

  52. The problem is the TCO of new platforms by quarkalone · · Score: 1

    Do you think the TCO of changing .NET or Java platforms every couple of years is cheap?

    No way José!

    Joel Spolsky addressed the issue some time ago: http://www.joelonsoftware.com/articles/fog0000000339.html

  53. Re:Learn COBOL.- Train your H1B replacement by walterbyrd · · Score: 1

    COBOL developers are not retiring, they are being pushed out in favor of younger, cheaper, visa workers. Or, better yet, offshore the work.

  54. COBOL devs being replaced by offshore workers by walterbyrd · · Score: 1

    COBOL devs are not retiring, they are being replaced by much cheaper offshore workers.

    For an American, learning COBOL is only useful for training your offshore replacement.

  55. It's like a cockroach by TheSkepticalOptimist · · Score: 1

    Everybody hates it, but it will survive nuclear holocaust so you have to give it some respect.

    --
    I haven't thought of anything clever to put here, but then again most of you haven't either.
  56. Cobol is everywhere. by tekrat · · Score: 2

    I work for a large bank. When I mean large, I mean one of the top three. I have to regularly review code changes going into the Mainframe (yes, we have a mainframe). I see programs that not only have comments that go back into 1980, I see ports of programs that appear to come from times even earlier than that.

    Management has spent the last 6 years feverishly attempting to get rid of the entire mainframe and everything that goes with it, and bring everything into "a distributed environment", but so far we are still here. And what's more, I see more new programs going in than I see old programs being retired. That tells me we're here for a few more years, and maybe a few more years after that. COBOL isn't going away, at least not until the last Russian programmer dies.

    --
    If telephones are outlawed, then only outlaws will have telephones.
    1. Re:Cobol is everywhere. by VisceralLogic · · Score: 1

      Similarly with Fortran. In the aerospace industry, I've worked on programs initially written in the 60s, with various parts upgraded at various times.

      --
      Stop! Dremel time!
    2. Re:Cobol is everywhere. by Anonymous Coward · · Score: 0

      Unless you're in China, you're _not_ one of the big three. Banks like ICBC dwarf all the others.

  57. Geesh. by taoboy · · Score: 1

    First off, the acronym is CoBOL, for Common Business Oriented Language. For thoses with snark about JAVA/Java...

    Now, I'm pretty sure that, when most enterprises big or small set out to write new things these days, they're not including CoBOL in the implementation trade space. Yes, you can do a lot of things with the language that the originators didn't contemplate (I wrote a linked list program in my undergrad endeavor), but why hurt yourself in the process? The Indiana Jones knife-vs-gun scene comes to mind.

    What's going on now is that, in the world, a bit of critical business logic is captured and exercised in the name of CoBOL, and folks saddled with it are afraid of messin' with what works for two reasons:

    1. Afraid of not translating it completely in the new implementation, and not discovering that until the customer sees the result.
    2. Afraid of differences in processing in the underlying tools that won't be identified until after the customer sees the result.

    Notice the 'customer' in each of these fears. Some endeavors don't cotton to customer beta testing...

    So, until 1) compelling business cases can be made for conversion, and 2) the risk of migration to something newer/better/sexier can be effectively communicated and managed, usually by folk who don't understand software, stuff like CoBOL will persist.

  58. Cobol can make you rich by Anonymous Coward · · Score: 0

    If you want to earn boatloads of money, train yourself and become proficient in COBOL, zOS, DB2 and how it all connects together. Some people I know (in their 30s) have these skills, charge $2000 per DAY, and have companies lining up to hire them. As the article says, they will never be out of a job.

  59. It does violate rules... by sirwired · · Score: 1

    If the code:

            Works as designed.
            Easy to ubderstand.
            Easy to maintain.

    You can't say there aren't rules, and then turn around and cite some. If you, modern programmer with experience with modern languages, were forced to use COBOL for a new IT code project, you'd run away screaming in short order. You'd wonder what demons had possessed your management to commit such an act of lunacy. That's not exactly the hallmark of a language considered "good" by any stretch of the imagination.

    If that's your starting point, (and indeed, they are the starting point for guidelines for programming language design), then COBOL is indeed a failure (in comparison to modern languages; at the time it was state-of-the-art.) COBOL must be twisted and turned to perform much basic work... the only reason it works at all is through thousands of man-years of programming effort producing work at a pace that would make the most green IT code jockey look like a super-productive-genius. A superficial "COBOL 101" tutorial is easy to understand, but production COBOL code generally is not. And it's certainly NOT easy to maintain; the modularity we take for granted today simply isn't present.

    Perl was, and remains, staggeringly useful for the tasks for which it was originally designed: as a sysadmin's "swiss army knife." By modern standards COBOL doesn't even work well for what it was designed for, but there weren't any alternatives at the time.

    Again, as I stated in my original post, in comparison to the other languages of the time (besides assembler, there were all of two of them: LISP and FORTRAN, both of them in their infancy, and neither targeting towards the same problem set) COBOL was a revelation/revolution. But if it was a quality language by modern standards, it'd still be in use for new projects, yet it's virtually never used for new work.

  60. No Love by Sabathius · · Score: 0

    I say this with no due respect--Fuck that language. 800 lines of Job Control Language to write "Hello World". Yeah, no.

  61. I was hoping to hear the same about Classic ASP by ClassicASP · · Score: 1

    As much as everyone hates Classic ASP, its what I'm good at, so it'd be nice to be able to continue to make a paycheck coding with it. But to my dismay, Microsoft keeps stating that it will eventually discontinue support for it on its server product line. And then there's perfectly good "abandonware" alternatives to IIS such as Halcyon iASP and Chili!Soft who's creators and owners simply shelved their product and don't seem to be interested in making a profit conducting business with it, and yet, they won't release the source code to make it free and open source either (sure would be nice and gracious since they don't seem to care about it anymore). I just don't get why the masses are giving Classic ASP the "cold shoulder". There's tons of websites out there still using it, and business owners don't want to spend the money rewriting their website all over again from scratch. Fortunately PHP is a lot like Classic ASP, so I've been doing PHP work on the side just as a safety net when it does die off like so many others have. At least I'll be useful when they finally make the move to convert.

  62. Re:Learn COBOL.- Train your H1B replacement by Anonymous Coward · · Score: 0

    Or better yet, translate their COBOL to Java and show the company how you can replace their mainframe with a cheaper solution.

  63. Companies ARE moving away by Anonymous Coward · · Score: 0

    I work for a fortune 1000 company. I spent a year in 2009 rewriting COBOL batch system to Java.

    Old system - $1 million a year mainframe did nightly work in X hours
    New system - 4 off the shelf x86 systems in Java do the nightly work in X/2 hours, for much much less money.

    Took a few people a year to do. Will pay for itself pretty fast. Really no reason for most things not to move...

  64. My thoughts by Frontier+Owner · · Score: 2

    I have programed in a couple languages. Nothing serious, just the exposure. I don't think it really matters what language software is written in, it can be done badly. The problem I see with a lot of software is that the modules aren't re-examined when updates or additions are made. After a while, you get bloated modules that are eventually orphaned in favor of another module as another programmer comes along. or worse, another sub contractor comes along and the tie to the original programmer is completely lost along with the notes from the project.

  65. It just works by Anonymous Coward · · Score: 0

    Why are those COBOL applications still around, because they just work.

    The business isn't worried about the latest version of the OS, or a library, or a VM (.net, jvm, etc...) breaking their mission critical applications, because they're backward compatible.

  66. There is a reason for this: IT WORKED by Opportunist · · Score: 2

    And why did it work? Noooo, not because Cobol is so great, or because programmers back then were so much better. The difference is simply that they had time to test it, and test it, and test it again, before it was finally deemed ready for shipping.

    Today you get bananaware. Yes, bananaware. Matures at the customer.

    Today, the deadline determines shipping date. Not "when it's done", but when the manager set some arbitrary point in time. Whatever we have at that point, we'll ship.

    Now add that they hire the cheapest temps they can find instead of programmers with experience, and whoever has more than 2 years of XP tries to get the hell out and into some management position because the pay, let's face it, stinks, and you know why no program will EVER replace those dinosaurs.

    They were programmed in a time when companies accepted that good software costs money.

    --
    We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    1. Re:There is a reason for this: IT WORKED by Animats · · Score: 0

      Right. What's the alternative? Java? A language so insecure that the Department of Homeland Security told people to disable it. Where you have a huge pile of badly debugged libraries which keep changing.

      What are the other alternatives? Over the years, Visual Basic, and Borland Delphi were tried. They're now half-dead languages. Stored procedures in databases and various XML-based hacks were used in some firms. Almost all these solutions are single vendor, which means you get overcharged or abandoned. Sometimes both.

    2. Re:There is a reason for this: IT WORKED by bws111 · · Score: 1

      Java the language in not insecure, and nobody (that knows what they are talking about) recommended disabling it (how do you even go about disabling a language?) The problem you linked to was not a problem with Java the language, or even Java virtual machine. It was a problem in a particular implementation of a JVM (namely, Oracles implementation). And even there the only problem was that code did not get sandboxed as well as it should. And even then a problem only occurs if you are running untrusted code. Which is why what DHS suggested was actually 'do not run untrusted code', in other words, disable the browser plugin.

      So, if you in am enterprise/mainframe type situation (like this story is about) you don't have a problem. First and foremost, you won't be browsing the web. If you did somehow manage to browse the web, there is no way that untrusted code would ever get into your production environment. And lastly, you are probably running IBMs JRE, not Oracles.

      As for ever changing libraries, etc, that is why you deal with a vendor you trust, who understands concepts like not breaking existing code, ever. There is a reason why all those ancient CoBOL programs are still running.

  67. Let it die by Anonymous Coward · · Score: 0

    Hire the retirees to train new developers in new languages to rewrite the software before it's too late.

    I haven't seen a VCR in anyone's living room in a long time.

  68. Backwards compatibility is a huge IBM point by caveat · · Score: 1

    Yes, the latest and greatest zEnterprise mainframe will likely run your 1969 payroll software unmodified, or at worst with just a bit of (well-documented) work. I'm sure there are loads of features that have been added since the 360 days, but deep down inside those 5.5GHz processors beats an old, transistorized heart.

    --

    Facts do not cease to exist because they are ignored. - Aldous Huxley
  69. Interactive COBOL by Anonymous Coward · · Score: 0

    I am a rare animal, starting off in the Pick environment, I worked with Wang VS COBOL for a handful of years and it did interactive green screen stuff, pretty damned well. In fact, before GUI was common, the way in which interactive programming was implemented in the Wang VS environment made it kinda, well, sort of standardized your interface for you a bit. Just saying. Never did big iron IBM CICS stuff, which the CICS guys always made it sound difficult, like you had to be ordained or knighted to do it. But the Wango-Tango did just fine. In fact the Wang VS system was decent in it's way, another casuality of "Open Systems". Anyhow back to my U2 programming, which everyone told me would be gone 20 years ago.

    1. Re:Interactive COBOL by Silfax · · Score: 1

      Another rare critter here also - I started using Westi for interactive processing back in the early 80's then switched to CICS with IMS/DB & DB2 or IMS DB & DC with Oracle where I am right now.

      Somewhere along the way I ended up working on a Wang VS system for a few years. Wang VS was way better for the interactive stuff than anything else that was available at the time. Unfortunately it is long gone, I have wondered a few times what it would have evolved into if it ever got onto the web

  70. living on forever by whitroth · · Score: 1

    Someone wants to convert COBOL programs to RPG? What, and the CICS COBOL to RPG? I've seen that - a "language" that was intended to allow monkeys (management speak for secretaries) to produce reports, hundreds of lines long, running online stuff?

    *gah!*

    You can write bad code in anything.

    And forever? Well, there's the story about the COBOL programmer who, in 1999, couldn't stand any more Y2K crap, and had himself put into cold sleep until after the year 2000. Unfortunately, his records got misplaced, and he slept on..and on, and on. Finally, they wake him up, and tell him it's the year 9998. He's shocked, and thinks of everyone he knows is long gone, but he's in the far future. Then he asks why they woke him up, and they tell him that it's about to roll over the year 10,000, and there are these COBOL programs....

                    mark, who long ago left a number of programs at a number of companies with "PERFORM 1000-DUMMY-PARAGRAPH THROUGH 1000-DUMMY-PARAGRAPH-EXIT WHILE (blah, blah, blah....)

  71. Re:Hire veteran COBOLers, retirements won't matter by Anonymous Coward · · Score: 0

    Nah just need to up H1b to 300k from 115k. That will fix it.

  72. Don't worry about it, learn it by Anonymous Coward · · Score: 0

    Learn COBOL. Write some code to get familiar with it. Especially learn about VSAM and also the sometimes-critical sequential file matching algorithm. Learn some of the mainframe utilities, especially SORT.

    Then go out and earn some money with it. The law of supply and demand dictates that as the older programmers retire or die, someone will be paid to do the work, and the money will go up as the supply of programmers shrinks.

  73. mainframe variety: linux, anyone? by Fubari · · Score: 1

    Here is a link to IBM's mainframe linux: Linux on System z - Why

    About the "system z" thing; IBM calls mainframes "z series", their aix machines "p series" and the intel servers "x series".
    I don't know where the "z" came from for mainframe; I'm guessing "p" is for Power chips in the aix boxes, and "x" would be "x86".

    Be aware that "mainframe" doesn't always mean IBM.
    The most surprising mainframe I encountered last year was a Burroughs mainframe that is still in production for a large social services department (thankfully I just had to read data extracted from it, but the character conversions were sometimes surprising (no, it used Field Data, not EBCDIC nor Ascii in case you were wondering)).

    Almost as surprising was a corporation that has a UNISYS mainframe at the center of their IT universe.

    Yeah, mainframes are hanging in there.

    1. Re:mainframe variety: linux, anyone? by bws111 · · Score: 1

      The 'z' for mainframe means 'zero downtime'.

  74. If you got less than 100 cics regions. by Anonymous Coward · · Score: 0

    Your doing it wrong.

  75. Profs, Notes and Citrix by Zontar_Thing_From_Ve · · Score: 1

    Oddly, I have had experience in previous jobs with Profs, Notes and Citrix. My first job after college was working as a civilian employee of the US Department of Defense at a US military base as a computer programmer. We had Profs there, but its use was restricted to upper level military (maybe Lt. Col. and above) and high grade civilian employees. Yes, I'm sure it worked great - on the mainframe - but it was rather infamous for not being able to talk well at all to non-IBM mainframes. We kept it around because the general who ran our base loved it and refused to use any other mail program, so we kept it around merely to placate him. I kid you not - as soon as he retired, our Profs system was shut down permanently as his successor had no interest in using it. The upper military and civilian employees had to maintain two email accounts while that general who loved Profs was there - one just for Profs in case he sent them email or they needed to email him and one email account on our Unix mail server where everybody who wasn't the general preferred to send email.

    My previous employer used Notes. Almost everybody in IT hated it when we switched to it. I will simply say what I said at the time - we picked Notes because non-technical managers could use it, not because it was any good.

    The same previous employer also tangled with Citrix. I'll skip a long story that made us look bad with regard to Citrix and simply say that yes, it sucks. I've always felt that it was bought and used mostly by PHB types who don't know any other way to do things except the Windows way.

  76. Question? by multimediavt · · Score: 1

    When you say mainframe without protected memory are you talking about hardware made last week or mid- to late-last century? I ask because if the hardware is THAT old it could probably be replaced by a mini-ATX system or Raspberry Pi and all the C in the world would run on it. It makes no sense to me that corporations would actually buy something new (made last week) that would HAVE to run COBOL because they didn't want to pay programmers the extra to convert that legacy code to run on more modern, protected memory systems. Now, I know it is probably happening, but WHY GOD WHY?!?!?! If it's the bottom line they are worried about they are doing more harm than good by perpetuating legacy code on legacy hardware. [shakes head in disbelief]

    1. Re:Question? by bws111 · · Score: 1

      The AC is just completely wrong in everything he said. Of course mainframes have protected memory - they have had it since 1964.

      As an aside, IBM announced their 2012 earnings last month. In it, they stated that mainframe revenue grew 56% over last year, and they shipped more mainframe capacity last year than ever before in their history. Now, the interesting thing about that is that over HALF of that capacity was in the form of 'new workload' engines, which means Linux and Java. The oft-repeated slashdot meme that mainframes are legacy hardware running only legacy programs is a myth.

  77. Can the undead "outlive"? by Anonymous Coward · · Score: 0

    NT.

  78. Re:Batch - Simple Language, but Complex Code by Anonymous Coward · · Score: 0

    I can remember from my COBOL career over 30 years ago, that the problem then, and sure to be far worse now, is that a long-lived program became more complex with each update, and most programmers would do it quick and dirty to meet deadlines. The language has a certain elegance, but how it has been used can be anything but.

  79. Latin by Tablizer · · Score: 1

    COBOL is the Latin of programming languages. Latin is used precisely because it is a "dead" language, and thus stable.

  80. Three simple points by Anonymous Coward · · Score: 0

    1, Most of the Replace Cobol failures were business failures, where the current, usually young Managers didn't understand the business knowledge distilled into the Cobol code. I was there for two of the Cobol ones and three PL/1 replacements in the Swiss Banking System, all BTW failures.

    2. Cobol has NO PROBLEM going forward, PL/1, being much more complex is harder, but in any case the cost of writing an up to date compiler, or more realistically a front end to GCC or LLVM is nothing ( 10$ M), required only for a post 86_64 architecture, and the hardest part, the corner test cases is DONE.

    3. For say $ 250'000 you would find lots of good programmers willing to learn either language.

    There also exist compilers for both to both C and C++, but they don't help since the real wierdness,or brilliance is in the code, not its written expression which gets obscured in the translation.

    MFG, omb

  81. Are Slashdotters small minded? by SluttyButt · · Score: 1

    From the comments here, it seems to be. Most of you have no idea on what you are talking about.

  82. A Fantasy by carys689 · · Score: 1

    If what the article says is true, then why can't legions of 50-something, 60-something EXPERIENCED COBOL programmers find jobs? Oh, wait! I almost forgot: many of these jobs have been sent to India! If experienced U.S.-native COBOL programmers are either retired or soon-to-retire, it's because they're being forced to and the corporate heads and powers-that-be in D.C. give every appearance of not giving a damn.

  83. I went to a Job Fair by Stubbyfingers · · Score: 1

    I ran into a DOZEN or so COBOLers. All but me were AARP members--I still got a year before AARP sends me my enrollment kit.

  84. COBOL will never die by MoonDJ · · Score: 2

    So a COBOL programmer is given a 5-year prognosis. He arranges with a hospital to be cryogenically preserved until a cure is found. On the appointed day, they prepare him, and he starts to feel a chill.

    Next thing he knows, the chill is fading. The nurse uniforms look all futuristic. Injection devices are like on Star Trek, not piercing the skin. The hospital room decor is like in the 2001 movie.

    He grabs a passing doctor and asks "So, did they cure my disease?" "No. The year is now 2999." "Huh? Why on earth did you thaw me out?" "Because you're the only COBOL programmer they could find, and Y3K is about to hit."/P

  85. They can't type by Anonymous Coward · · Score: 0

    The people that bash Cobol are the ones that never learned how to type. They never learn to appreciate that it's easier to read the code and maintain it. It's just too much work for them to type.

  86. COBOL LIVES by Anonymous Coward · · Score: 0

    funny all you have to do to know COBOL ia attend a university that cant afford an all PhD computer sci faculty -they call it Computer Information Systems then and guess what they teach COBOL.

  87. Unfortunately by gzuckier · · Score: 1

    Business has responded to the tons of obsolete COBOL code out there, by filling in the gap with zillions of fresh BAs and MBAs implementing corporate policies juggling millions of dollars, in Microsoft Access.

    --
    Star Trek transporters are just 3d printers.
  88. Mainframe slow? by Anonymous Coward · · Score: 0

    So you can shift thru a 10GB of data file and process it out to 15 separate files with help of a few temporay DB2 table for some heavy lifting cross-referencing within 10s on your modern CPU? That was the runtime of my statistics extraction job running in a production environment on a mainframe?

    I guess most x86 plattforms whould take longer time to load the data into memory.

  89. and in conclusion by hicksw · · Score: 1

    ELSE NEXT SENTENCE. ... for all of us that remember punch cards and line printers.
    --
    Attempting to communicate is the beginning of misunderstanding.