back to article COBOL: Five little letters that if put on a CV would ensure stable income for many a greybeard coder

COBOL is celebrating 60 years since its specifications were signed off. Darling of Y2K consultants, the language is rapidly approaching pensionable age, but many a greybeard owes their career to it. It arose from a desire to create a language that could straddle the computers of the era. Each manufacturer had its own way of …

  1. PeterO

    60 years of Algol 60 coming up next year :-)

    1. Anonymous Coward
      Anonymous Coward

      Been there, learned that too.

    2. Stevie

      60 years of Algol 60

      Bah!

      Real (time) programmers write everything in Coral-66

      1. swm

        Re: 60 years of Algol 60

        Real programmers program from the switches.

        1. bazza Silver badge

          Re: 60 years of Algol 60

          Ah, that'd be a program entry technician, not the developer.

        2. Stuart Castle Silver badge

          Re: 60 years of Algol 60

          Nearest I got to entering code with switches is that on my degree, we had a module where we used 68000 based development boards that required all interactions with that CPU to be using switches, LEDs and a two digit numerical LED. It had the advantage that you learned how the CPU communicates, and as the lecturer liked to point out, it taught the user to code efficiently, because it could take hours to write even the simplest code.

          Happy days, and the sense of achievement I got when writing even the simplest code was amazing.

        3. TomPhan

          Re: 60 years of Algol 60

          30+ years ago I'd get phone calls from customers whose mainframes had crashed, and have to tell them which switches to flip to enter each line of the bootstrap (the bootstrap loader to be honest, just enough code to get it to read the disk and load the real bootstrap).

    3. spold Silver badge

      Yup did that (ICL 1902 Mainframe);

      comment (I will raise you an Algol 68 And a Pascal (Apple 2 !)) derivative :-);

      began

      Sadly the end

      comment frickin' semi-colons;

      Dear old Fujitsu produced Visual Cobol not too long back... Visual Algol anyone?;

      ;;;;;;

    4. Anonymous Coward
      Anonymous Coward

      Compulsory tribute

      "The more I ponder the principles of language design, and the techniques that put them into practice, the more is my amazement at and admiration of ALGOL 60. Here is a language so far ahead of its time that it was not only an improvement on its predecessors but also on nearly all its successors".

      - C.A.R. Hoare, "Hints on Programming Language Design", 1973

  2. Khaptain Silver badge

    First language

    It was the first programming language that I formally learned. Started on a DEC VAX, then over to as AS400.. It's a shame that I did not keep it up , having moved to Pascal(Delphi) and C++...

    The only problem with COBOL is that it is extremely limited, there is not really a lot of fun to be had with it....it's not the kind of language that you come home with and start knocking up code at 2 in the morning, just for giggles.

    1. Chris G

      Re: First language

      If I am going to be involved with giggles at two in the morning, I can guarantee there will be no coding involved, though potentially a little binary application may be warranted.

      1. Anonymous Coward
        Anonymous Coward

        Re: First language

        Maybe no coding involved, but I do find a bit of SQL enjoyable with giggles at two in the morning.

        1. Rameses Niblick the Third Kerplunk Kerplunk Whoops Where's My Thribble?
          Joke

          Re: First language

          Maybe no coding involved, but I do find a bit of SQL enjoyable with giggles at two in the morning.

          What you do with squirrels at any time of the day or night should be kept to yourself.

        2. phuzz Silver badge

          Re: First language

          Let me guess, it's the JOINs, UNION and INSERTs that give you such pleasure?

          1. Anonymous Coward
            Anonymous Coward

            Re: First language

            It's got nothing on 360 Assembler's instruction 69 - Branch and Link.

          2. Clunking Fist

            Re: First language

            And some code injection?

            1. RancidRodent

              Code Injection

              On z15 when you "getstor" (replacement for getmain) you can specify non executable storage (memory), this means even if you're a privileged program, you cannot inject code into you non-exec memory and execute it. Nor can you modify yourself unless you’ve gone out of your way to create a non-re-entrant program – which will stick out like a sore thumb – and will usually be loaded into read only memory areas anyway.

    2. big_D Silver badge

      Re: First language

      Of course you can!

      On the VAX it was very friendly, compared to the strict "standard" syntax, there was a lot of flexibility in layout and you could actually indent code.

      I wrote a lot of libraries and subroutines in COBOL over the years. Prime, VAX, ICL and IBM minis and mainframes.

      It was certainly a damned sight better than RPG/II RPG/III running on IBM System/36 and IBM System/38 minis that I learnt on work experience whilst at college. Now that is a horrible language. IBM looked at Assembler and COBOL and decided to take the worst elements of each, shake them up and see what the dice rolled.

      1. Peter Gathercole Silver badge

        Re: First language @big_D

        I echo your comments on RPG/II.

        I left Uni. in 1981, having been formally taught PL/1, APL and 6502 assembler, and having taught myself C on UNIX editions 6 and 7 on the PDP11/34 that the School of Maths (computing was still considered a mathematics discipline at the time at Durham) operated for fun and research projects.

        I fell in to a job at the Borough Council at my parents home town (allowing me to move back with them), and was put through a crash self learning course for RPG/II on a Sperry Univac 9/30, and initially found the language confusing (the implied loop cycle, something I appreciated later when I started using awk), limiting, and very difficult to code anything complicated other than read-a-record, do some calculations, write a record (either to a disk file, or to the printer).

        A year later, having been told that I did not merit a pay rise, even though I had explored many of the more obscure features, nothing had changed my basic opinion, and I remember calling RPG/II a jumped-up macro assembler (which, in hindsight was actually flattering to it) to the Borough Treasurer when he was trying to claim that it was actually a very high-level language (his claim was that the compiler did all the work so the programmer did not have to). I pointed out that the compiler had very little work to do, as the limited set of operators were not that different from the machine instructions, and the condition codes mapped into the processor condition registers almost exactly. All it needed to do was keep track of variable names and any exception processing.

        I was so angry that I actually said something along the lines of the fact that he wouldn't recognize a real high-level language if he saw it, but he at least did not fire me straight away, but let me find a new job and work out my notice.

        1. A.P. Veening Silver badge

          Re: First language @big_D

          Luckily, the most modern version of RPG, Full Free RPGLE, doesn't resemble those initial versions anymore. However, it is remarkedly starting to resemble COBOL.

          And yes, I started out as a COBOL programmer as well (after BASIC and Pascal in high school), shifting to RPG and later RPGLE as that is where the jobs were.

        2. swm

          Re: First language @big_D

          The original FORTRAN pretty much mimicked the IBM 701/704 architecture. Especially the DO loops.

      2. Brett Weaver

        Re: First language

        I guess your mileage may vary but RPG2 was an efficient language for the system /3, 32, 34 and /36. On the system/3 (1976) I had 12kb of memory, but could still write most business applications. There was a manual which told you how many cycles each instruction took so you could optimize your code. Obviously it had its day but, like cobol, it delivered a lot of business functionality. It seemed to have more popularity in the antipodes than Europe or the USA

    3. Anonymous Coward
      Anonymous Coward

      Almost First language

      I started my professional programming with VAX VMS COBOL as well. I found it very versatile - and ended up writing a whole load of system procedures in COBOL because DEC were that good at integrating all their languages on VMS.

      Horribly verbose to be sure, but it did exactly what it was designed to.

      1. Stuart Castle Silver badge

        Re: Almost First language

        Horribly verbose, but well designed COBOL is (in my very limited experience) easy to follow if you need to go back to a bit of code years later. Admittedly, last time I looked at COBOL, it was an exercise from when I went to college, so the code wasn't exactly complicated.

        C++ (which is a language I generally like) on the other hand can be a nightmare to go back to, even if the source is well documented (which it often isn't).

      2. Anonymous Coward
        Anonymous Coward

        Re: Almost First language

        It's often complained that Cobol is "horribly verbose" - but if you are primarily interested in constructing software that is reliable, maintainable and extensible, you have to admit that the code will be read at least ten times as often as it is written. Maybe 100 times. Therefore making it perfectly clear to other programmers (including yourself in a year's time) is far more important than programming a little faster at the expense of obscurity.

        As the Roman orator Quintilian put it, "One should aim not at being possible to understand, but impossible to misunderstand".

        "Let us change our traditional attitude to the construction of programs. Instead of imagining that our main task is to instruct a computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do".

        - Donald Knuth

      3. TheSkunkyMonk

        Re: Almost First language

        Was my first language and gave me a great framework for understanding other languages later on, Stand by all schools should start there programming courses with this language as it teaches so many good practices and is very simple to understand for learners.

    4. Anonymous Coward
      Anonymous Coward

      Re: First language

      Well, it IS a Business Oriented Language, sooo...

    5. chronicdashedgehog

      Re: First language

      I used RM-COBOL on UNIX in the late 90s. I used to have 'fun' emulating basic GUI features using screen overlays. I even created basic windows and drop down menus once. Tbh, it was quite satisfying at the time.

      I have a major soft spot for COBOL and to this day I'm not scared of too much typing ;-)

      1. Roland6 Silver badge

        Re: First language

        > I'm not scared of too much typing ;-)

        I suspect the one's who complain about how verbose a language is are the one's who don't even both with comments etc. and then complain about maintaining code written in "write only" languages.

    6. anothercynic Silver badge

      Re: First language

      Like you, COBOL was my language. Pascal and BASIC were alien. But yeah... COBOL was fun while it lasted until I discovered the gloriousness that was ObjectPascal in Delphi 1.0. Happy days!

    7. Baroda

      Re: First language

      'just for giggles'

      Early in my career I was given a COBOL program to change.

      The previous coder must have been very bored: Try understanding a program with PERFORM PING THROUGH PUNG varying PANG by PENG etc etc. All the program's variables were similar gibberish so I had to do an awful lot of work to even get to the start line.

      For other greybeards ... it was running on an ICL 1900A. just before the upgrade from GEORGE 2 to 3. All coding was on A4 landscape 80 column paper, sent for punching and being returned on reels of paper tape.

      Job submission was in two steps.

      First create the GEORGE code to submit and run the program on an electronic paper-tape punching machine. There was an electronic keyboard at which you typed and out came the punched tape like a ticker-tape.

      Supplemental step 1(a) was then (all too often in my case) hand-editing spliced portions of the tape to correct mis-types. This was done by laying the tape with the blank spliced-in portion on a channel (very similar I suspect to hand-editing film). Then you folded down a short piece of perspex (plexiglass) with an array of holes over the tape. If my dubious memory serves me correctly, the holes were 8 across the tape - 7 for the character and one parity hole, even or odd - I forget which. You checked the chart on the wall above the machine and using a small rod in a handle called a 'dibber' you poked it through the perspex row by row making the characters one by one. Negating a character simply involved making a row across the tape of all holes.

      Finally the finished tape was wound around a cardboard ring, fixed with a rubber band and then attached to a 'run sheet' for ops to load the correct tapes and program and run the program.

      Some time later we used a teletype to submit our own jobs and even make alterations in place to memory before after loading a program but before running them (e.g. initialising an unitiailised variable).

      Oh joy, oh bliss!!

      1. Anonymous Coward
        Anonymous Coward

        Re: First language

        "Try understanding a program with PERFORM PING THROUGH PUNG varying PANG by PENG etc etc. All the program's variables were similar gibberish..."

        To a certain type of mind, the challenge of a language intended to make programs easy to understand must have been irresistible.

      2. //DLBL SYSRES

        Re: First language

        Parity errors. It was a long time back but parity errors popped back in to my aged head. They where a PIA.

    8. Anonymous Coward
      Anonymous Coward

      Re: First language

      Exactly so. Just as one does not design bridges, airliners or sewage systems for fun.

      There is entertainment, and there is useful, necessary work.

      1. Michael Wojcik Silver badge

        Re: First language

        Just as one does not design bridges, airliners or sewage systems for fun.

        One may not, but there are several who do. Or as Rowell put it:

        "It's an engineering fraternity," Wren said.

        "So they, like, get drunk and build bridges?"

        "They get drunk and design bridges."

  3. Anonymous Coward
    Anonymous Coward

    About 10 years ago...

    .... I was a dev working in a C++ team in a large corporation. There was some old COBOL code running on a VM on a linux server and it had stopped working with new data. Unfortunately all the companies COBOL coders had long since retired and they tried to rope in one of us to fix it. Most of the team ran for the hills but I got lumped with it. In the end it wasn't too bad - its verbosity makes it pretty clear though getting record structures right is a black art. I still wouldn't do it out of choice however. The interesting thing is that with all the kool kids now working on python or some other scripting language I imagine the cycle will be repeated one day except replace COBOL with C++ and some poor python dev trying to get to grips with the intricacies of the C++ STL or template system :) They have my sympathy.

    1. anothercynic Silver badge

      Re: About 10 years ago...

      Column-specificity is a bitch. ;-)

      "What do you mean I can't go beyond column 72? And why do my definitions have to start in column 12? It's STUPID!"

      1. big_D Silver badge

        Re: About 10 years ago...

        Yep. That was what I loved about VAX COBOL, you could just ignore such stupidity and program it like any other normal language.

      2. Merrill

        Re: About 10 years ago...

        But of course columns 73-80 contain a sequence number so you can resort your card deck after you drop it.

        1. A.P. Veening Silver badge

          Re: About 10 years ago...

          But of course columns 73-80 contain a sequence number so you can resort your card deck after you drop it.

          Much easier to use columns 1-6 for that, machine sorters don't care and people look for line numbers at the front. Besides that, if you need more than six digits for the line number/sorting sequence, your source is way too large anyway.

      3. Anonymous Coward
        Facepalm

        Re: About 10 years ago...

        You can't go beyond column 72 because your punched cards use that for sequential numbering in case you drop your deck. Duh!

        1. BCOOL

          Re: About 10 years ago...

          Yes, but if you're using the autonumber option on TSO, the numbering is in cols 1-6. Not many people use punched cards anymore.

        2. anothercynic Silver badge

          Re: About 10 years ago...

          Well, _I_ know what everything after column 72 was for... ;-)

          The students didn't... and couldn't understand why things wouldn't compile. And all it would take would be one character too many... or an errant space at the end.

        3. Flywheel

          Re: About 10 years ago...

          "in case" = "for when"

          My big mistake is that we had a "social club" attached to the main building which was much enjoyed by evening shift computer Ops. One particular night I'd had a little too much enjoyment and managed to drop not 1 but 4 trays of punch cards onto the floor where they ended up in a heap.No matter, I scooped them up and fed them all into the card reader. The mainframe coughed, and cancelled the job as soon as it saw the out-of-sequence JCL and data cards. I was hauled off by the shift manager to learn the joys of card sorting and was sentenced to clean all the tape drives as a punishment.

          1. //DLBL SYSRES

            Re: About 10 years ago...

            Was that at JCCC in Southend? The Ekco social club ...

      4. This is my handle
        Thumb Up

        Re: About 10 years ago...

        Completely agree! Whitespace should be left for the benefit of the reader! I wish someone would tell that to Guildo Van Rossum. Again.

      5. swm

        Re: About 10 years ago...

        The IBM 704 couldn't read beyond column 72 - actually it could read any set of 72 columns but the plugboard was generally wired to read the first 72 columns.

      6. Michael Wojcik Silver badge

        Re: About 10 years ago...

        That's why the COBOL standard allows implementations to support longer lines (in Micro Focus COBOL, that's "variable format"), and defines the alternative "free-form" reference format. Those are in the COBOL-2002 standard; I don't remember if they were standardized in COBOL-85, but MF COBOL at least has supported free-form for decades.

        Unfortunately mixing fixed-form, variable-form, and free-form source is problematic - for the compiler when copybooks are involved, and for developers in general - and given the huge corpus of still-used older source, fixed-form is still dominant. The same is true of the COBOL-85 scope terminators (end-if, etc), which are a boon but sadly neglected by many COBOL developers.

    2. bazza Silver badge

      Re: About 10 years ago...

      The interesting thing is that with all the kool kids now working on python or some other scripting language I imagine the cycle will be repeated one day except replace COBOL with C++ and some poor python dev trying to get to grips with the intricacies of the C++ STL or template system :) They have my sympathy....

      ...but you'll have their paycheck!

  4. _LC_
    FAIL

    A stable income – yes, but ...

    Would you enjoy working there? Might you even hate it after a while?

    As for me, I can safely assume the second.

    1. JohnFen

      Re: A stable income – yes, but ...

      You and I are clearly of differing temperaments. What language I'm using has nothing whatsoever to do with whether or not I enjoy working at a place.

      1. _LC_

        Re: A stable income – yes, but ...

        There's somebody putting the bridle on the horse from behind. ;-)

        I don't want to work in a company where the earth is a disc and the biggest dinosaurs are washed up.

        1. JohnFen

          Re: A stable income – yes, but ...

          What? I genuinely don't understand what you're saying here.

          1. _LC_

            Re: A stable income – yes, but ...

            You usually find COBOL in companies with strong hierarchies and the habit of washing up the most incompetent ass-kissers (banks and such).

            1. JohnFen

              Re: A stable income – yes, but ...

              That's a different issue, though. I was saying that whether or not I enjoy working at a place is not related to the language(s) I'm using there. Whether or not the place is full of corporate nonsense absolutely is, though.

              Not all places that use COBOL are of the sort that you cite. The place I work now requires some COBOL development (new, not maintenance) and is the exact opposite of that. The last place I worked that involved COBOL wasn't of that sort either.

            2. Anonymous Coward
              Anonymous Coward

              Re: A stable income – yes, but ...

              Actually ITYF most arse kissers are in their 20s or 30s climbing the greasy pole and that happens anywhere, even start-ups. Most COBOL programmers are well past that age, self employed and have got to the dont-give-a-stuff-semi-retired-already stage in their lives.

              1. _LC_

                Re: A stable income – yes, but ...

                I didn't imply that the programmers where being "washed upwards" in those companies. Of course, they are not. People who can barely bind their shoes usually are.

  5. big_D Silver badge

    IF Year > 50

    We went the whole hog and updated the databases and all code to use 4 digit years... We might have a problem in a few millennia, but that should be somebody else's problem by then!

    I learnt COBOL in my summer holidays 1986, between 1st year Comp-Sci degree and the second year - first year was BASIC. By the start of the semester, I was already up to speed; more than could be said of our PRIME mini. I'd type in the code, hit compile, lock the terminal and toddle off to the refectory and grab a coffee and sandwich and chat with friends. An hour later, I'd wander back and see if the code had finished compiling, go through the error list, edit, rinse and repeat.

    I then moved on to DEC VAX COBOL in 1988 at my first job. A much more comfortable environment, that allowed you to be lax about column widths and indenting code. Those were a wonderful few years. I loved the verbose code, it really made you feel like you had achieved something!

    And now it has turned full circle, my current employer has a COBOL based ERP system, written for UNIX and running on POSIX on a Windows Server, although it should be replaced by a new, native Windows version soon.

    1. Saruman the White Silver badge

      Re: IF Year > 50

      I learnt COBOL during a summer job at the end of my first year at university, then actually had to do a COBOL module in my second year (which I found easy since the COBOL dialect we used was only slightly different to one I had previously learnt - as I recall only the I/O declarations were different). Sadly I went on to become a research student, and ended up giving COBOL tutorials since I was the only other person in the department (apart from the lecturer who ran the course) who admitted to knowing the language.

      I loved to start with a simple "Hello World" program, firstly in C (just a few lines) then in COBOL (about 2 pages, including the I/O declarations). The look of terror this induced was priceless!

      1. big_D Silver badge

        Re: IF Year > 50

        Yes, but the secret is the templates. You only write the identification division, environment division once, save your ream of code and use it as the basis for all future programs, just replacing the dummy code.

        Then you only have to worry about the DATA DIVISION and the PROCEDURE DIVISION.

        1. anothercynic Silver badge

          Re: IF Year > 50

          Don't TELL PEOPLE THIS! Damnit! Now you're giving away half of the black magic that is COBOL!

        2. Anonymous Coward
          Anonymous Coward

          Data Division

          Even the Data Division can be re-used extensively across a suite of programs.

          I was lucky (?) enough to work with ICL's Data Dictionary System which could be used to form a central data catalogue (this was in the late 70's).

          There was a certain amount of reuse which was stymied by the departmental requirement to use record prefixes for fields so there were hundreds of definitions of thinks like DATE.

          I soon moved away from programming and into tech support then consultancy. My COBOL Knowledge have dug me out of a few holes over the years including diagnosing that the parallel runs for a Payroll migration were different because transactions were only being sorted on the first 8 characters of a 10 character payroll reference. Because the internal sort order of the two mainframes were different this meant transactions were applied in a different order. This made tiny differences to individual payments but ended up with a huge discrepancy spread across 50,000 salary payments.

          1. big_D Silver badge

            Re: Data Division

            Yes, we had a personnel system, the data record layouts were all stored centrally and with macros, you could pull them into the data division of your code. I loved EDT and TPU.

        3. Martin Gregorie

          Re: IF Year > 50

          A lot of us kept a a COBOL skeleton program in our briefcases back in the day. This was a pack of 20-30 cards containing all the essential declarations. With that and a 12-key card punch you could whip up a quick fix program surprisingly quickly.

          In case you're wondering I've written COBOL on ICL 1900, 2903, 2900, VAXen, Tandem NonStop, NCR UNIX (MicroFocus COBOL) and a 6809 microcomputer running FLEX-09.

      2. kiwimuso

        Re: IF Year > 50

        Ha! First language I learnt (1966) was RPG, a bloody awful language which I detested as I found it completely illogical. Then on to BAL (IBM assembler) with which I have written most of my code at various places. My first shop was a savings bank which ran an online banking system on an IBM 360/30 which had a grand total of 32Kb (yes, "K" of "core" storage memory. Oh, and 2311 disk drives which from memory had around 7 or 8 Mb. ( 7.25 Mb according to this https://en.wikipedia.org/wiki/History_of_IBM_magnetic_disk_drives#IBM_2311 )

        I went to the UK at the end of the 60's and worked for a company making small model cars. (No, not Austin or Morris!) I was employed as a BAL "expert" but was sent on a COBOL course as I was supposed to write Assembler subroutines which could be called form COBOL programs to handle unit record functions. E.g. card reader, printer etc as the built in COBOL functions were apparently not up to par. Other than the course, I never wrote another COBOL program until many years later (1980's I think) back in Kiwiland I was doing a contract which involved taking Assembler programs written for an !CL something or other. I had to read through, understand what the program was trying to achieve then write specs so a COBOL programmer could re-write the programs, this time for an ICL 1900 series machine, which incidentally was a lovely machine to work on.

        At the end of several weeks trying to sort through myriad spaghetti code, the high-ups decided that they couldn't spare anyone to do it, especially as they were all effectively junior programmers, so asked whether I could re-write them.

        I said I would give it a go, and wrote the programs with my rather, by then, limited memory for COBOL by simply typing in the way I thought that the language should be, then ran it through the compiler. I seem to remember that it only took me a couple of compiles to get the syntax right (all the error codes were available online) and I think it took maybe a week of testing with corrections to actually replicate the assembler programs.

        I thoroughly enjoyed the experience as it was a nice challenge and it amused me that the so-called high level language programmers were astounded that a mere assembler programmer could actually write structured code. I told them it matters not what language you used, structured code is still structured code. Most of the spaghetti code, i.e. unstructured code, usually came about because of management's insistence that any mods should be done as quickly as possible, rather than properly.

        Bane of my life that was. I got to the stage, that when asked for a job estimate for how long a job would take, I never, ever gave them the quick, and nasty estimate. It usually didn't take much longer to do properly so that's what I quoted for. It was always accepted, as they didn't have much option.

        Thank [deity] I've finished with all that corporate bullshit.

    2. Charlie Clark Silver badge

      Re: IF Year > 50

      And now it has turned full circle, my current employer has a COBOL based ERP system, written for UNIX and running on POSIX on a Windows Server, although it should be replaced by a new, native Windows version soon.

      You have my sympathies! How many of these migration projects ever happen on time or deliver anything remotely like the full functional specification? But it will at least probably be pretty!

      1. big_D Silver badge

        Re: IF Year > 50

        And it will use Windows standard key presses.

        No more pressing the End key to save and the Home key to abandon a dataset!

    3. Chris Miller

      Re: IF Year > 50

      In the 90s I was working for a life assurance company, so most systems could handle dates of birth in the 19th century and policies had had maturity dates in the 21st century for decades. But as database administrator, I enforced dates with a century code (0=18xx, 1=19xx, 2=20xx) because saving a single byte meant an reduction in total data size of hundreds of megabytes, which was worth having given the cost of mainframe storage.

      1. PM from Hell

        Re: IF Year > 50

        Having managed a mainframe team in the 90's I would seriously dispute the savings, DASD was cheap CPU & Memory was expensive, anything I could do to increase throughput without having to upgrade was cost effective.

        If you were using a century number there must have been a few cpu cycles used every time a data was processed so when we started tackling Y2K we went for 4 character years.

        One of the system's I managed was an IBM Mainframe and the next CPU upgrade meant a change in OS licensing costs which would have resulted in a huge increase for me. Buying second user 3390 discs was very, very cheap and produced perfectly acceptable throughput. This delayed upgrading the DASD subsystems until I invested in an EMC array, and put of a CPU upgrade from a 4381 for several years until the ES9000 appeared which was the same OS. It also avoided the huge expense of moving from an air-cooled processor to water cooled.

      2. rnturn

        Re: IF Year > 50

        Uh, oh. That's going to cause a Y10K problem. :D

    4. Doctor Syntax Silver badge

      Re: IF Year > 50

      "I'd type in the code, hit compile, lock the terminal and toddle off to the refectory and grab a coffee and sandwich and chat with friends"

      Kids today! Never realise what it was like handing in a stack of cards to be run through when the operator got round to it.

      1. Saruman the White Silver badge

        Re: IF Year > 50

        Kids today! Never realise what it was like handing in a stack of cards to be run through when the operator got round to it.

        Or even better, watching someone literally cry when they dropped their (substantial) stack of cards for an application that needs to be compiled, debugged and ready to go ASAP (with condiderable pressure being placed by the PHBs).

        I do remember the expression of someone when they tried (on an IBM 370 running CICS) to get a print-out of their application, missed the printer and managed to hit the punched card writer instead. Their desk nearly tipped over from the weight of the card stack!

        1. TomPhan

          Re: IF Year > 50

          The days when software security meant getting a strong enough elastic band.

          1. Anonymous Coward
            Anonymous Coward

            Re: IF Year > 50

            "The days when software security meant getting a strong enough elastic band."

            Or a cardboard box, if you were really pushing the boat out.

            I remember during the first week after I started my PhD I was going through some of the assorted gubbins in the lab which included, amongst other things, a hole punch and a virgin roll of matching paper tape (as an aside, the punch was a thing of beauty - built like a tank, so I suspect that it might have been something put together by the guys in the mechanical workshop).

            There was also a shoebox containing a bunch of punched cards, each _very_ clearly numbered. Knowing that I was a computer wonk by the standards of pretty much everyone else in the physics department, my supervisor pointed out that it was 'how we did things in the dark ages' - the content of the cards? The code that went with _his_ PhD thesis, ca. 1975. Written in FORTRAN, rather than COBOL though.

            And who knows, in 60 years time people will be saying the same thing about the CD that contained the code and whatnot for my thesis (the less said about the code the better - FORTRAN as written by someone who's first language at the time was C)

      2. JohnFen

        Re: IF Year > 50

        Ah, those were the days! (/sarc)

        I've never forgotten the old days of turning in a card deck or paper tape, then waiting a day or two for the printout from my run to be returned to me. More precisely, I've never forgotten when the shift was made to being able to compile and run stuff interactively! No longer did I need to spend days desk-checking my code to ensure that my run wouldn't terminate early because of something as stupid as a syntax error (which would come along with a scolding for "wasting the computer time").

      3. swm

        Re: IF Year > 50

        or punching a keypunch control card.

      4. BCOOL

        Re: IF Year > 50

        I remember my college days when we submitted the deck to the operator behind the wall, we were allowed to submit a deck only once a day. That's how you learn to get it right the first time. That's also where we learned to read a dump.

        1. A.P. Veening Silver badge

          Re: IF Year > 50

          One deck ... with multiple programs. Some operators did not appreciate that.

  6. muddysteve

    My first programs were in COBOL

    Written out on datasheets.

    Given to the Data Prep department to be turned into punched cards.

    Submitted to the operators for an overnight compile.

    Next day, check errors, correct and resubmit for another compile the next night.

    Once it compiled successfully, start to debug, one run a day.

    Once, when the Data Prep department was busy, I produced a program on punched cards using a hand punch.

    Mind you, from the article - "2 million coders producing 1.5 million lines of code a day". Must be still using the same process.

    1. Tom 7

      Re: My first programs were in COBOL

      No mention of the elastic band card shuffling process when the deck got past a certain size and any attempt to put the band round it resulted in the stack flinging itself into dark corners of the room, with at least one irretrievably down the back of a radiator or mysteriously getting into the card thin gap between two filing cabinets?

      1. Sean o' bhaile na gleann

        Re: My first programs were in COBOL

        ooohhh, yes, I SO remember the one-day turnaround thing. And I'm not so sure it was all bad either - at least you tried your damndest to get it right first time (which never happened, of course).

        As for a card deck catapulting itself across the room - we used to refer to that as a 'floor sort'.

        COBOL - the language for people whose lips move when they're reading

        1. muddysteve

          Re: My first programs were in COBOL

          Nothing quite like the howl of despair from a programmer who dropped his/her deck of cards.

          1. Doctor Syntax Silver badge

            Re: My first programs were in COBOL

            That's what sequence numbers and the card sorter are were for.

        2. Peter Gathercole Silver badge

          Re: My first programs were in COBOL

          Long turnaround of card decks is why I used to check the RC of the compile in the JCL. I would speculatively put a test run in the same deck as the compile, so that if it compiled successfully, I would get at least one cycle's worth of debugging.

          And if it didn't compile, the test was never run, preventing me wasting any machine time. The only thing that was wasted is the minuscule amount of energy moving a slightly larger card deck around.

          I'm sure the managers didn't understand conditional execution in a JCL stack, because they kept checking that I wasn't wasting system time.

      2. Jove Bronze badge

        Re: My first programs were in COBOL

        ... or Punch Card Machine Operators practising their card shuffling skills just for the sake of it.

    2. DavCrav

      Re: My first programs were in COBOL

      This is like how I read about how mathematicians in the late 19th and early 20th centuries communicated, versus now. Now if I don't understand something in a paper someone has published I can send them an e-mail, we discuss it, might even collaborate.

      In 1900, it was I'll write him (it will be a him then) a letter. Six weeks later I might get a reply, which asks a question of its own. By then I would be doing something else and have forgotten all about it.

      I cannot imagine working under such circumstances, but then they could not imagine working under mine.

      1. big_D Silver badge
        Coat

        Re: My first programs were in COBOL

        To be honest, I find the old way more civilized and less stressful.

        Mine's the one with the stamps in the pocket.

        1. Anonymous Coward
          Anonymous Coward

          Re: My first programs were in COBOL

          > Mine's the one with the stamps in the pocket.

          And a fountain pen, of course.

        2. Diogenes

          Re: My first programs were in COBOL

          To be honest, I find the old way more civilized and less stressful.

          We usually had 3 or 4 programs on the go at once, to fill in the time waiting for punching, compiles, structured walkthroughs, runs , reruns etc.

      2. MJB7
        Holmes

        Re: My first programs were in COBOL

        I think you seriously underestimate the postal service in 1900.

        In 1889 there were up to *twelve* deliveries per day in London. You could easily compose your letter over breakfast and read your correspondent's reply at your mid-morning break.

        If you were not both in London, you might have to wait until later in the afternoon - but probably not the next day.

        Icon: Sherlock Holmes often sent messages and expected replies within the day

        1. ibmalone

          Re: My first programs were in COBOL

          And second delivery only ended this century: http://news.bbc.co.uk/1/hi/business/1841961.stm.

        2. Jove Bronze badge

          Re: My first programs were in COBOL

          Except in the field of science the correspondence could well be on an international basis reliant on packet steamers at best, until the telegraph became more prevalent.

      3. Jove Bronze badge

        Re: My first programs were in COBOL

        ... that is why they kept multiple copies of all correspondence.

    3. bazza Silver badge

      Re: My first programs were in COBOL

      Mind you, from the article - "2 million coders producing 1.5 million lines of code a day". Must be still using the same process.

      Who knows. I read some time ago that for a proper, formally developed application (you know, requirements, formal specification, writing, testing, verification, proper high integrity stuff) the industry average is still about 1 line per developer per day. Ok, when such a project actually gets rounds to coding its a lot quicker than that, but so much time gets spent on the other stuff that it averages out at about that rate.

      1. Michael Wojcik Silver badge

        Re: My first programs were in COBOL

        For that matter, I've had very productive days that resulted in negative total SLOC, as I refactored horrible copypasta into common routines, removed dead code, etc. I once shrank a very large C source file down by 60% in a single day, and considerably improved error detection and handling in the process. (And that's including additional explanatory comments and meaningful identifiers.)

        There are days when a good developer doesn't touch the code; and there are days when that developer mostly deletes code. Metrics like SLOC/day are pretty much useless.

  7. I Am Spartacus

    I remember

    COBOL

    30 lines of functional code,

    20 pages of error statements, declarations, files, .....

    1. Sean o' bhaile na gleann

      Re: I remember

      At one site, we ran opened a book regarding the maximum number of error messages caused by the least number of deliberate errors.

      A hyphen in the middle of ENVIRONMENT-DIVISION caused every subsequent statement to rejected with at least 5 messages.

      1. swm

        Re: I remember

        I once submitted an assembly job with some recursive macros but got the character set wrong. Two to three errors per line on the expanded macro code.

    2. Brian Miller

      Re: I remember

      My first COBOL program had four pages of code, and eight pages of errors.

  8. Anonymous Coward
    Anonymous Coward

    Too old for COBOL

    COBOL was taught to the following year's intake in my alma mater's compsci degree so I missed out on it (thankfully). Still, having then got a job as an IBM 370 assembler programmer, I did end up spending a fair amount of my time helping the COBOL programmers from the accounts department debug their code.

    1. Anonymous Coward
      Thumb Up

      Re: Too old for COBOL

      Ah, the joys of a foot thick fan fold printout, an IBM forms ruler, a green (360) or beige (370) card, and mass quantities of coffee.

  9. Ol'Peculier

    I was taught COBOL at my local Technical College as part of my computer studies course. I've yet to write a single line.

    On the other hand, I tried to persuade my Dad, who had spent his life mainly writing COBOL applications for am RAF base in the UK to come out of retirement for Y2K. Reckon he could have made a small fortune if he had...

  10. batfink

    Performance slow?

    Meh. Put in some in-line Assembler for the speed-critical bits.

    Kids today etc etc.

    1. muddysteve

      Re: Performance slow?

      You could speed things up quite a lot by choosing your data types correctly. Once, in a quiet period I spent a lot of time working out what data type to use to optimise both storage and performance.

      1. Warm Braw

        Re: Performance slow?

        Pretty much the whole point of COBOL was to do decimal arithmetic. Numbers coming directly from punched cards were usually just strings of numeric characters in the native character set ("zoned" decimal); internal storage was often "packed" decimal (BCD) or in COBOL speak "USAGE IS COMPUTATIONAL-3".

        What data types performed best (or, indeed, were even available) depended very much on the hardware. Decimal instructions were often an optional extra - high performance decimal instructions almost always were.

  11. irrelevant

    Books

    1989, I landed a job as a COBOL programmer on the strength of a quick skim through a library book! I'd never touched it before, having mostly coded in 6502, Z80 and BASIC! The book wasn't even relevant as it turned out they used BOS/COBOL, an obscure varient that thankfully was much easier to get up and running on. I spent many years coding in that, and did write a few games!

    It's apparently still supported, and used.. So if anyone needs me.. ;)

    1. BebopWeBop

      Re: Books

      I learnt COBOL as a sympathy gesture to an (ex) girlfriend who was doing an accounting degree (late 70s - enlightened in many ways). One of my friends did the same thing. Catching up with him recently I gather he is still earning a tidy shekel consulting on that and other even more obscure languages and systems (always his passion).

    2. Laura Kerr
      Pint

      Re: Books

      BOS COBOL! There's a blast from the past, all right. My first job as a developer involved using it for data migration.

      I've often thought that if Windows hadn't come along when it did, it might have faced some stiff competition from BOS Software. Being able to use a humble desktop PC as a mini with terminals attached was quite a thing back in the day.

  12. razorfishsl

    Well that's a garbage statement.......

    Have it on my CV and no one wants to know.......

    1. Peter Gathercole Silver badge

      Legacy items on your CV

      I have one line on my CV that mentions that I had learned APL when at University between 1978 and 1981, and I recently (less that six months ago) got a phone call from an agent who was desperate to find someone who even knew what it was for a role in Sweden (I think it was for Saab Defence).

      He said that he would put me forward if I wanted, as the client did not want to train someone from scratch, and that the rate was very good.

      I declined, as I was not looking for a contract abroad and even though I loved working in APL, it was 40 years ago dammit!. But it does show that sometimes keeping legacy things on your CV can throw up opportunities.

      1. Bob Carter

        Re: Legacy items on your CV

        Ahh, APL a write only language. Back in the 80's I once spent 4 hours on a transatlantic phone call (back when it was very expensive) talking to the developer of an APL accounting program trying to debug it - I had the terminal he was in a hotel with no access to a terminal or source. Try reading out APL code over the phone. We eventually got there finding a function where he had reset quad IO changing all the array indices and as a by product changing the number of months in a year....

        1. Peter Gathercole Silver badge

          Re: Legacy items on your CV

          It's not that difficult as long as you know you both know the greek alphabet with the additions like Quad, Floor, Lamp etc. All of the functions have recognizable names.

          I'm sure than anybody listening in would have been mystified, however.

  13. AlgernonFlowers4

    Days of Future Past - Cobol

    In the 1980's, I remember Cobol as the programming language for writing real-time client server applications running on Virtual Machines with IDMSX databases, where validation rules and data definitions were held in Data Dictionaries (define once and reuse) but this was a long, long time ago.

  14. Tony Gathercole ...
    Meh

    Two COBOL Memories

    Back in the day (1970s) and on a Computational Science (!!) degree there was a requirement to take a subsid subject each year, so in my first year I opted for the Data Processing module, which included an introduction to COBOL as a fairly major component. TBH it was much of a doddle as a course and (thanks to a copy of "Teach yourself COBOL" studied during a gap year) I was really quite bored and on occasion was fairly somnolent during the lectures. On being woken from my slumbers by the lecturer and taken aside after the session to be told off, I remember saying how poor the module was - and that I'd get a first without effort. And I did: mind you, the only module over the three years that I did!

    Having graduated I started work at a Timesharing Services Company which had recently been spun off from a major engineering consultancy based in the south London area and which had been acquired by one of the middle sized US computer bureaus and was transitioning from Xerox SIgma systems to DECsystem-10s (which I'd been hired to primarily support). Anyway, they were also looking to broaden their business and landed a contract to implement a booking system for one of the UK Holiday Camp firms. A contractor was hired to write the central portion of the system (interfacing with remote Datapoint terminals in the camps and company offices) in COBOL. Not one to break code into sensible sized modules, he created a massive main COBOL module running into '000s of lines. Took overnight to compile though! Not one to shirk from a challenge I offered to try to get this down. Turns out that the DEC compiler writers had made use of a remarkably inefficient algorithm for sorting the internal symbol table - which for various reasons it seemed to do in each of the several passes it made through the source COBOL. Replacing that sort module with one rather more efficient (bubblesort replaced by shellsort if I remember correctly) cut overall compilation time from several hours to about 20 minutes. Job Done! Very grateful that I'd kept my Knuth and a couple of other similar text books.

    Later working at a midlands Polytechnic I was to come to despise the COBOL class work brought along to the program advisory desk run by the Computing Services team to support teaching across the institution - but that's another set of stories.

    1. ibmalone

      Re: Two COBOL Memories

      Replacing that sort module with one rather more efficient (bubblesort replaced by shellsort if I remember correctly)

      I've always (well, very rarely, but whenever someone mentions it), wondered why bubble sort is so often taught as "my first sort algorithm", sure it's simple, but it's about the slowest sort that's not utterly insane (I mean, you could randomise and check for order if you really wanted to go slow). It's one benefit of most languages having built in sort functions that this sort of thing isn't so frequent any more.

      1. Henry Wertz 1 Gold badge

        Re: Two COBOL Memories

        "I've always (well, very rarely, but whenever someone mentions it), wondered why bubble sort is so often taught as "my first sort algorithm""

        Actually, when I took compsci back in the late 1990s, surprisingly the info both in textbook and by prof amounted to "You may have heard of Bubble Sort. DON'T USE IT", and skipped directly to (if I recall) merge sort.

    2. Martin an gof Silver badge

      Re: Two COBOL Memories

      bubblesort replaced by shellsort if I remember correctly

      Aren't they essentially the same algorithm? I seem to remember being taught them in computer science back in the 1980s as variations on a (very slow) theme.

      M.

  15. Wellyboot Silver badge

    CBM64 - COBOL compiler

    Was I the only person who bought the Cobol compiler for the C64?

    It was diabolical to use, even compared to the ancient data-general system at college.

    Editor - Poor editing ability, I'm sure it turned off basic and inplemented a bare minimum entry system, strict columns were easy compared to trying to insert a line

    Debug - code xx at line yyy

    Compile - Just barfed at the first error (delete compiler output file, reload editor, save, reload compiler, repeat)

    Link - max out the mem during the link process and its toast.

    It really did push the 'plan first - in detail' approach.

    Micro-fucus on a PC at Uni was a breeze after that.

    1. Diogenes

      Re: CBM64 - COBOL compiler

      No. - The only C64 purchase I ever regretted

      For old times sake a few weeks ago I loaded SPF/PC & COBOL onto a computer here at work to show the students how did it in the 'good old days'

    2. Peter Gathercole Silver badge

      Re: CBM64 - COBOL compiler

      I have to ask who actually thought COBOL on a C64 was a good idea!

      I know that there were versions of Pascal for various 8-bit micros, but putting a compiler on a micro that does not really have the ability to do concurrent input and output to a filesystem.

      The best I found on an 8-bit micro that the Acornsoft Pascal that was sideways-ROM based, so you could edit in memory, then compile in memory without either the editor or the compiler occupying any of your (rather precious) memory. It would also allow you to read the source from a file so that you could maximize the size of the program, but doing this from ECONET was terribly slow, as it would read it one character at a time with Acorn NFS (ECONET Level 1 or 2) as shipped with the original Model B with Econet. ANFS worked better, but raised PAGE by several pages.

      I wrote a buffering system that used the RS423 and cassette buffers to read 256 bytes off the net at a time which speeded things up hugely!

      Actually made our lab. of BBC micros a useful teaching tool for Pascal as well as structured BASIC and it's main reason for being, as a Computer Appreciation lab.

    3. Martin an gof Silver badge

      Re: CBM64 - COBOL compiler

      I'm sure it turned off basic

      Wasn't that SOP for anything vaguely large on the C64? BASIC ROM overlayed some of the vaunted 64k RAM so you could never get the full 64k in BASIC. If you needed that much RAM you would have to page out both BASIC and the rudimentary OS.

      You may have guessed - I was never a C64 fan. Classic case of headline figures versus actual usability. Even the Spectrum was better thought-out, but for sheer forward planning, the BBC Micro was hard to beat.

      M.

  16. Anonymous Coward
    Anonymous Coward

    Try VAX assembly and Pascal

    My workplace, alongside all the modern stuff, still uses VAX assembly and it's own version of Pascal.

    1. Warm Braw

      Re: Try VAX assembly and Pascal

      That gives me hope that my knowledge of BLISS might come in useful one day...

  17. Anonymous Coward
    Anonymous Coward

    Try GnuCOBOL - version 3.1 released Sep 2019

    Runs on almost anything resembling a computer and interfaces with almost anything.

    And it's FREE !!

  18. HashtagBoom

    COBOL is not a good career choice

    It is a myth that there are huge numbers of COBOL programmers. For most areas, COBOL applications are being retired faster than old COBOL programmers are croaking/retiring. The applications that will still be around for years to come are mostly on old mainframes. Think IBM and Unisys. Collecting income tax in the USA, running old pension/insurance schemes until they are finished, cheque processing (yes, some people still use cheques), old mortgage systems - these type of applications are not good candidates for rewriting in new languages. The applications are stable and don't change much. They have long been isolated into a back-office environment. The apprenticeship is long. Vacancies for young people or old-timer programmers are very difficult to find.

    1. JohnFen

      Re: COBOL is not a good career choice

      "It is a myth that there are huge numbers of COBOL programmers."

      I've never heard that there are huge numbers of COBOL programmers. My understanding is that their numbers are relatively small, but they make bank.

      1. This post has been deleted by its author

        1. JohnFen

          Re: COBOL is not a good career choice

          "If a COBOL job appeals to you, and you find a vacancy, you are a lucky man and I'd say take it. If you are an old-timer, my suggestion is do a Javascript bootcamp (or something popular that appeals to you). Experience the magic, life after COBOL is good!"

          I'm an old-timer, and I'm competent-or-better in most modern languages, so a JS bootcamp is unnecessary. Just because someone is a graybeard doesn't mean that their skills aren't up to date.

  19. Glicky

    Last Year Offered

    I took COBOL in 1997, the last year offered. I thought I was being clever by doing COBOL and C++. I wound up an analyst using T-SQL.

  20. Gio Ciampa

    "That some today reckon the event was a bit of a damp squib"

    Indeed so... I've lost count of the "Y2K" == "Project Fear" equivalencies I've seen posted lately

    1. Doctor Syntax Silver badge

      Re: "That some today reckon the event was a bit of a damp squib"

      The difference is that one was taken seriously.

      1. Martin an gof Silver badge

        Re: "That some today reckon the event was a bit of a damp squib"

        I've just realised that the new thermostat I'm designing for home with an Arduino at its heart might suffer from 2038 issues - the standard date functions seem to be Unix time_t 32 bit...

        Then again, I may just be paranoid...

        M.

  21. katrinab Silver badge
    Flame

    "That some today reckon the event was a bit of a damp squib, manufactured by highly paid contractors to add a Ferrari or two to the garage, is testament to the monumental efforts by those involved at the time. You're welcome."

    Please could you explain the heroic efforts involved in making electromechanical washing machines y2k compliant. Or microwave ovens, which had a time of day clock, but didn't know or care what the date was.

    "As we emerge from the bunker and see not a world in flames, but merely several websites displaying the date as 19100 and a frantically back-pedalling Ed Yourdon [...]" http://www.ntk.net/2000/01/07/

    By the way, one of those websites was displaying the date as 19117 not so long ago. The owners have since retired and shut the company down.

  22. Blackjack Silver badge

    And with Freedos and Dosbox around...

    COBOL will never die. The problem is, programmers do. What will happen in a few decades when all those old COBOL programmers are dead? And younger people who know COBOL only know one or two versions of it?

    By the way, many libraries and companies still use programs that run on DOS and a lot of them were coded in BASIC...

    Dosbox works on Windows 10, right?

    But of course governments only care about libraries when it comes to cut funding so more than one of them had to redo their whole catalog when their aging computers died. Thankfully Dosbox is a thing, right? And sometimes libraries keep using the old filing paper made cards method despite having computers.

    And Windows 7 can run Windows 95 programs, many companies don't want to get new programs when those made over two decades ago work fine.

    And then people wonders why XP won't just die...

    1. _LC_

      Re: And with Freedos and Dosbox around...

      I wouldn't worry about that too much. Rewriting the code from scratch (in another language, of course) is usually easier than getting into the existing COBOL code ;-)

      1. Doctor Syntax Silver badge

        Re: And with Freedos and Dosbox around...

        Until you discover that the COBOL program is the spec. for the re-write.

      2. A.P. Veening Silver badge

        Re: And with Freedos and Dosbox around...

        That depends very much on the size of the change and whether there is an experienced COBOL programmer available.

  23. Bibbit

    Worth learning today?

    If I wanted to get into programming/IT would this be a useful language to have, say in conjunction with something more modern? It looks quite cool.

    1. JohnFen

      Re: Worth learning today?

      I would recommend becoming proficient in a language that is in greater demand, and learn COBOL (along with a lot of other languages) on the side.

      I think a programmer who only excels in one or two languages is in a weakened position for a number of reasons, not the least of which is that the more languages you become at least passingly familiar with, the better you'll work in the languages you use the most.

    2. Long John Brass
      Terminator

      Re: Worth learning today?

      I'm going to be very unpopular when I say...

      Which programming language you learn is largely irrelevant

      The language is just syntax, Yes some languages make expressing some ideas harder than others; but at the end of the day syntax is just syntax.

      A talented programmer can write (COBOL/Fortran/Assembler) in any language.

      Would I recommend COBOL as a first language? Probably not; For you first go round pick something that is relatively simple and clean and more importantly something where there exist a large set of example code to learn from. Then try assembler to get a good understanding of what a CPU wants to actually do. Z80 or 6502 ASM is easy to learn and there are lots of emulators/debuggers around to help you.

      Then C then COBOL and/or Fortran

      1. Bibbit

        Re: Worth learning today?

        Thanks for the advice!

      2. Anonymous Coward
        Anonymous Coward

        Re: Worth learning today?

        "Which programming language you learn is largely irrelevant

        The language is just syntax, Yes some languages make expressing some ideas harder than others; but at the end of the day syntax is just syntax.

        A talented programmer can write (COBOL/Fortran/Assembler) in any language"

        I would have to agree

      3. JohnFen

        Re: Worth learning today?

        Why would that be unpopular? You're right.

        Although I'd refine it a bit. There are three primary programming methodologies: procedural, object oriented, and massively parallel. Within a given methodology, the language doesn't matter -- as you say, the differences are mostly syntactical -- but there is enough daylight between those three that they pretty much each have to be learned on their own terms.

  24. n__j
    Facepalm

    Untitled photo of Grace Hopper

    Reuters had an article about an agency employing greybeards for COBOL work. This included several photos: the owner, a new Z series, shots of men in short sleeved shirts in computer room etc. The last photo was a US Navy PR photo of a senior officer. I wondered what people reading the article would make of this as it was untitled & there was no reference to it in the article!

    I had attended one of her talks at Thames Poly & had a nanosecond on my desk for a few years.

    1. A.P. Veening Silver badge

      Re: Untitled photo of Grace Hopper

      She is also one of the very few people in any Navy world wide to make flag rank without ever commanding any vessel.

      1. Doctor Syntax Silver badge

        Re: Untitled photo of Grace Hopper

        Or, depending on how you look at it, commanding more vessels than anyone else.

    2. JohnFen

      Re: Untitled photo of Grace Hopper

      Grace Hopper is one of my heroes.

  25. JohnFen

    Highest paid

    The two highest-paid engineers I know (by a longshot) are expert COBOL programmers, working in COBOL.

    I used to be well-versed in COBOL, but haven't touched in 20 years or so. It hasn't escaped my attention that should I feel the need to goose my income for some reason, brushing up on that skill would be a good way to go.

  26. Andy Non Silver badge

    Tempting

    I'm also half tempted to brush up on my COBOL. Unfortunately I've not used it for 30+ years, so I've probably forgotten more than I know now.

    I remember inadvertently causing havoc at my local college as a student. The damn IBM 360 kept crashing when I tried to compile my code. The operators eventually tracked the crashing computer down to me! Apparently there was an obscure bug in the COBOL compiler that couldn't handle a missing full stop in my source code in a very particular circumstance (long forgotten) and it took out the entire mainframe! Oops.

    1. martinusher Silver badge

      Re: Tempting

      Its not a very difficult language to learn. You've just got to remember that it, like other old compilers, had very limited language parsing capabilities, its really designed for computers that were just extensions to the (then ubiquitous at the time) punched card tabulating systems. (......electro-mechanical punched card tabulating systems....)

  27. Stevie

    Bah!

    "END IF" because full stops are *so* difficult to understand.

    8oP

  28. This is my handle
    Linux

    Thanks for the memories, but the writer may have buried the lead a bit....

    .... after high-level languages to run the same 3GL across hardware from multiple vendors, came the rise of the operating systems. Where once the PHB might have asked "But will it run on our Burroughs ( / Honywell / ....)" the question later became, "Do they make a compiler / runtime for ... CP/M .... MS-DOS .. Windows or Unix ... Linux... This article made me think of that though; I forgot who locked in we once were to specific hardware vendors. Now if only I could find a version of the audible.com client that runs on my Dad's old windows phone so I could share this book with him....

  29. Anonymous Coward
    Anonymous Coward

    Click bait!!

    I thought this was an article about a surge in demand for COBOL programmers! I got all excited and had to take my heart medication for what? Because a youngster used the wrong tense on a headline? It "DID" ensure stable income, but it will not anymore. "Would" is one of those trans-temporal verbs that you kids are so fond of these days...

  30. Anonymous Coward
    Anonymous Coward

    You know it was mostly created by guys...just saying

    Just a minor point of information. Only two names are mentioned in the article, both woman, yet my memory was that although there were a few high profile women in the early days COBOL was overwhelming created by men. Just like every other major computer language. On a quick reread of the definitive history of the early days of COBOL, the paper by (Miss) Jean Sammet at the 1979 ACM SIGPLAN HOPLA conference, confirms my impression. Mostly guys. Lets say 95% plus.

    This whole - lets make a huge deal about the very few women involved - was at first amusing but is now getting a bit irritating. Makes the author look like a bit of a bien pensant twit. It remands me of the equivalent when I was growing up - lets make a big deal about the one guy on the team who is working class and not from an affluent middle class background. So an article back then would only name check some juniorish guy named Reg, whose dad worked down the mines and raised whippets, somewhere Up North. Sure Grace was important in the early days but if you made a list of the ten most important people who made the language what it became it would be Grace, and nine guys.

    So enough of this revisionist history. The few woman involved back then got the respect they were due at the time. And fully deserved. The more recent politicization of the subject is invariable raised by people with little technical talent, no discernible skills or competence. Those who cannot advance purely on merit but who need to fall back on the excuses provided by the political fad de jouer.

    Saying all that, COBOL is a brilliant language. Still one of the cleanest and best designed languages fr the last 60 years. COBOL code will still be chugging along doing useful work long after the current batch of fad languages have come and gone.

    1. martinusher Silver badge

      Re: You know it was mostly created by guys...just saying

      A language like COBOL makes sense if you think of it and the computers it ran on as extensions to the tabulating machines that were on common use at the time (and had been in widespread use for the best part of half a century). Back then 'workflow' quite literally meant 'the flow of work', it was a physical process where punched cards representing data items were fed from machine to machine with some simple sort of tabulation operation occurring on each pass. The computer, as a fancy sorter/tabulator, was more flexible since it could not only combine successive operations into a single pass on one machine (which was faster anyway) but it could simplify things but allowing large numbers of punched card records to be stored on magnetic tape. (Incidentally, you'll notice that a lot of comments refer to program decks of cards -- fair enough, we're all programmers so the program's the focus, but the program deck only needed to be read in once. Once the program's in the system then the real action's running it repetitively over thousands of data records. Punched cards....)

      Where women would figure in all this is that organizing and running the data flow, a process that might occupy days out of each week, was office work and like a lot of office work of that era it was done by women. Although a lot of the work would be menial there's still significant need for people to understand the systems and processes so its not inconceivable that women would fill those jobs. I know that when I first started working there were ladies doing programming and annalist tasks; nobody really gave it a thought, its was just work, what people did. Obviously with relatively few systems around there wasn't as much opportunity but that was the same for just about everyone (a degree in mathematics tends to be gender blind and unlike many established lines of work computers were new enough not to be bothered much by stereotypes).

      (....and no, I'm not going to on about the 'good old days'. It was a solution to a problem, one that's historically interesting that might have something to tell us that's useful today but that kind of work sucked -- labour intensive, inefficient and to cap it all a lot of people liked to smoke while they were working.....)

      1. John Styles

        Re: You know it was mostly created by guys...just saying

        RPG was of course designed to resemble the plug boards for tabulators (there was also a language called FARGO that did this even more so) https://en.wikipedia.org/wiki/FARGO_(programming_language)

        Want to know how to wire a plug-board for an IBM407 - look no further

        https://web.archive.org/web/20110219021336/http://www.bitsavers.org/pdf/ibm/punchedCard/Training/A24-1007-1_IBM_Functional_Wiring_Principles_Feb66.pdf

        There is a good photo of a wired up plug-board here

        https://en.wikipedia.org/wiki/Plugboard

    2. Anonymous Coward
      Anonymous Coward

      Re: You know it was mostly created by guys...just saying

      AC, I'm neither upvoting nor downvoting you, 'cause I have a little sympathy for your comment about revisionist history insofar as programming is concerned. Although funnily enough, the only COBOL programmers Iv;e known (three of 'em in the last 30 years) were all women, which seemed a tad odd to me.

      That said, with regard to revisionist history in general, sure, women were often prevented from doing (inset activity here) by society in general, so there actually wasn't as much input from women at times, in a lot of fields, as there might have been. But even allowing for that, the efforts of those women who broke the mould were generally grossly under-reported, their work either ignored or ascribed to a male colleague. That is to say, the original history was annoyingly revisionist in the first place, in that it did its best to wipe women's contributions out of the record.

      Set against that, current efforts to ensure that women are given due credit are laudable, and I applaud them. Which isn;t to say that some folk occasionally go a bit OTT about it, which isn't great, and I deplore that too, but as for women in computing getting the respect due to them - nealry 40 years of personal experience and seeing what happened to the women around me too (some programmers, some mainframe operators or helldeskers like me), I can only say that all were consistently under-valued if not outright patronised, irrespective of ability and quality of work. Maybe we were just unlucky. Maybe.

      1. Peter Gathercole Silver badge

        Re: You know it was mostly created by guys...just saying @Esme

        My first job in 1981 was in the DP department of our local government.

        In the team was a Manager, who was a man, two Data Analysts, both women, four Programmers, one of whom was a woman, and a Data Prep team, who also acted as the operators, all six of whom were women.

        So out of 13 people, the men were a minority 9 to 4. And I think that most of the Data Prep. team were paid more than me and the other junior programmer (a man), so the salaries weren't skewed towards the men either (with the obvious exception of Manager, of whom there would only ever be one).

    3. A.P. Veening Silver badge

      Re: You know it was mostly created by guys...just saying

      And can you give even one name of those nine guys straight from memory without looking it up? The only name I can come up with, next to Admiral Grace Hopper, of anybody with any meaningful relevance to COBOL is Wim Ebbinkhuijsen. And he was taught by Grace Hopper herself during the first COBOL course in Europe.

  31. Anonymous Coward
    Anonymous Coward

    Four letters. Five characters ;)

  32. ocflyfish

    Ah, flashbacks to 1992-1993 where my professor mandated learning Cobol. So much fun that my eye is now twitching.

  33. Roland6 Silver badge

    While many IT managers would dearly like to migrate away to something a little more modern, the process is at once lengthy, risky and costly.

    For the classes of problems COBOL solves, there aren't really any more modern languages than the latest release of COBOL that has been designed to solve those classes of problems.

  34. J.G.Harston Silver badge

    My COBOL assignment was my sole 'U' grade at university. I handed in a single sheet of paper with written on it something along the lines of: I refuse to attempt to program such a trogloditic brain-melting something something dark side something language. I remember "trogloditic".

  35. DWRandolph

    I was systems/assembly programmer on an IBM 360-40 in the late 1970's. We had an expansion box that brought the total RAM to 512KB (yes - Kilo). Similarly limited disk space, but DOS/VSE was running several partitions (print spooler, online terminals, multiple batch). I was so appalled when we brought in COBOL, and one of those daft folk used the literals "YES" and "NO " (note the trailing space) for a flag. I could fit 8 binary tests in a byte, and they were using 24 bits for a single condition!!! Not to mention a TestMask against my bit was sooo much faster then their string compare. And TestMask could check for multiple bits in that byte during the same clock cycle, instead of a page of chained If Then Else string compares (which had to invoke micro-code routines on top of the the "real" CPU instructions). <huff><huff></rant>

  36. Bill Stewart

    LISP in 1960

    LISP came out in 1960, after which neither COBOL nor FORTRAN had good reasons to be kept around, nor most languages developed later.

    (Also, ALGOL-60 came out, which also were better than COBOL and Fortran but not better than everything after.)

    1. A.P. Veening Silver badge

      Re: LISP in 1960

      History seems to show otherwise, LISP is by now no more than a historical foot note.

  37. steviebuk Silver badge

    I remember one summer of the 90s

    Where I was putting together the final year project for college. Despite it being the 90s we had still been taught Cobol, I guess they assumed we'd all be supporting legacy systems.

    Despite it being so called "plain English" I still struggled with it a bit. Fudge the project to get it to work from what I remember. Also slightly annoyed but do now understand where they were coming from, that I only got a Merit for the project. It was because I didn't stick to the design specs. Roughly remember I think we were asked to take in user entered data and save it to TWO different files. I was struggling to get it all to work but ended up doing so but making it all save in ONE file. Got told by our nice programming lecturer Joan Foxley (I wonder where she is now) that it was a good program and efficient code and worked well, but they could only give me a Merit because I'd only saved to ONE file when the spec required it to be saved to TWO files. I was annoyed at the time as thought well if my code is more efficient and better than what they wanted why the mark down, but was simply because I didn't meant the spec the so called "client" requested.

    Pascal was the language I enjoyed learning back then. Never did get that good at programming. Then grew bored of it for years and moved into hardware support. Now interested in it again but just as before, struggle to understand it :)

    1. Long John Brass

      Re: I remember one summer of the 90s

      Hehe; BASIC was my first. Then later PL/1 and Pascal, but it was K&R C that I really fell in love with :)

      Spent a large chunk of time learning COBOL, but never really learned to love it.

  38. John Styles

    In the mid to late 80s we produced a bit of software that did route planning / vehicle scheduling. Obviously these days all sorts of companies like Amazon etc. have this and it's very sophisticated but many years of Moore's Law meant it was for relatively big deliveries rather than routes of hundreds.

    Anyway, we had as part of this something that did route planning (long before Autoroute etc - which slightly later than this anecdote clobbered our market for the stand alone thing, ours did more but then again Autoroute cost 1/300 of the price). A large company wanted a version of the route planner that run on an IBM mini to do strategic planning which we agreed to. However we then discovered that neither they not us had a FORTRAN compiler for said mini. Therefore one of my colleagues spent a few days (including long days at the weekend predictably) having the fun of implementing Dijkstra's Algorithm and the necessary input and output routines in COBOL.

  39. Anonymous IV

    Old COBOL operation-sequence joke

    Dredged from the depths of my memory, so may be incorrect:

    DIVIDE 8 INTO CAKE GIVING SLICES.

    1. A.P. Veening Silver badge

      Re: Old COBOL operation-sequence joke

      It is valid COBOL, but I prefer to use the other way to do it:

      DIVIDE CAKE BY 8 GIVING SLICES ROUNDED REMAINDER FOR_THE_HOG END-DIVIDE

  40. TrumpSlurp the Troll
    Windows

    Computer science?

    Some of the anecdotes above remind me why we didn't hire Computer Science graduates as COOL programmers.

    Too much focus on clever operations to optimise the hardware and not enough focus on the customer requirements and the ability of the next poor sod to understand the code.

    As stated in the article COBOL is/was a plain written language way of describing business operations. Read input record. Add A to B to give C, move to output record and print results.

    Boring as hell though. I only lasted 3 years before moving on to more interesting things.

    1. _LC_

      Re: Computer science?

      "Boring as hell though."

      Yup. :-)

  41. briesmith

    There is one important lesson to be learned from the life-cycle of COBOL and that concerns the predatory behaviour of vested interest or, more generally, manufacturers.

    COBOL's development was strangled by manufacturers and their competing agendas. They "owned" the committee that oversaw the development of COBOL and they pursued what, in their view, was a clever twin strategy.

    They proclaimed that portability and backwards compatibility were essential and they used that argument to prevent anything other than glacial change in the language, for years. At the same time they made sure they wrapped their version of COBOL in all sorts of "enhancements" that destroyed any chance of portability. Job done.

    Lesson to be learned; don't let anybody with a commercial interest anywhere near the management of a language's development. If you do, there won't be any.

  42. Anonymous Coward
    Anonymous Coward

    on COBOL slowness and legacy

    "But goodness, it was slow compared to manufacturer-specific code."

    This was the 60s and compilation techniques were more or less not yet invented. Likely, compilers were very kludgy, therefore, producing very slow codes. There is no inherent reason why COBOL or any other language would be slow, other than inappropriate compilation.

    "The truth is that no one knows exactly how much COBOL is out there, ..."

    This is very true. One reason is many organisation is *very* ashamed to even confess some COBOL programs are still updated/developped.

    One of such organisation I've worked for, still is claiming this is "phased-out" while it definitely is not, is still running production lines, is nowhere to be phased-out, and is still being enhanced with any new acquisition.

    Such is the life of mainframes and their COBOL programs.

  43. This post has been deleted by its author

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon