5 ms·
As a 25-year professional z/os programmer working primarily in COBOL and CICS, I think the dearth of new COBOL programmers is not the big problem it is made out
by masterponomo 16y ago
As a 25-year professional z/os programmer working primarily in COBOL and CICS, I think the dearth of new COBOL programmers is not the big problem it is made out to be. Having learned C, Java, SQL, Common Lisp, and Scheme on my own, I have no doubt that programmers will jump to COBOL when the marketplace starts offering rewards (higher salaries) for doing so. The outsourcing trend is holding this back as companies continue to pursue the holy grail of cheap programmers, but all such efforts eventually run afoul of the need for local talent with a deep understanding of the application. A good programmer can get up to speed on COBOL very quickly. Getting up to speed on a large application? That'll take a few years.
The problem with legacy apps on any platform is not the language (unless you're talking about some very obscure unsupported language). The problem in my experience is the tangled mess of new code piled on top of poorly designed old code. In such systems, a small change can have unintended side effects. The solution is exhaustive testing (expensive and time-consuming) or a Hail Mary installation (leading to "testing" in production and yet another reactive fix). COBOL didn't create this problem and changing to another language won't fix it. In my shop, we practice test-driven development and deliver high quality releases. Success on the receiving end of these releases varies along with the established coding/testing/integration practices at each customer site.
- thaumaturgy 16y agoTrue, except that a lot of programmers want to follow the "sexy" technology, and COBOL just ain't that.
- pavel_lishin 16y agoIt's amazing how sexy technology can get when someone's offering you a six or seven figure salary to figure it out.
- thaumaturgy 16y agoReally? Because I keep seeing articles on HN about how employees can't be motivated by pay increases, they have to be motivated by things like appreciating their work, sense of accomplishment, etc. etc. Both of these things can't be true!
- pavel_lishin 16y agoWell, it's an obvious fact that we IT professionals... err, programmers... err, software engineers... err, code monkeys... anyway, we're all the same and are all motivated by the same thing.
- ajdecon 16y agoThe thing is, both things can be true. They're just true for different people. Those high salaries won't generally motivate an "in it for the tech", startup-friendly developer of the type that commonly frequents HN... but a bank with a legacy mainframe system probably doesn't want to hire that person, and they don't need to. The technology isn't the core of their business. On the other hand, there are many highly competent developers out there who view their job as a means to an end, a way to support their family/life/hobbies/etc. To these people, learning a highly specialized legacy skill and making lots of money is exactly the right motivator. As an example, I present my father. He has been writing data management software for hospitals for decades, and does all his work on midrange IBM AS/400 ("System i") systems. He writes all his code in IBM RPG--"report program generator" code. In recent years he's learned Java, C and Unix systems to keep himself fresh, but he's never found the need to actually use any of those skills, or a job using these that would treat him as well as his legacy work.
- stuff4ben 16y agoCould not have said it any better myself. Every time someone mentions that money isn't a motivating factor to get more productivity, I want to scream! For YOU maybe not, but for ME? Yes please with a bonus on top! I wonder how long it will take before Java becomes the next COBOL (unless it already has...)
- ajdecon 16y agoI think it's better to say Java is another COBOL: a default choice for business, stable, and likely to hang on through several generations of programmers. I won't call Java the "next" COBOL until COBOL goes away. Which I predict will happen sometime between 2050 and the death of the sun...
- jacquesm 16y agoIt's nothing to do with COBOL not being sexy, it has everything to do with the applications. Bookkeeping in any form isn't sexy, but it is where the big money is when you're 'just' an application programmer.
- ams6110 16y agoWhat is sexy today is tomorrow's "ancient" legacy technology. And once you've been in the business for a decade or so, you start seeing the old ideas coming around again, cloaked in some new names, with a lot of newbie fans excited about how sexy it is.
- masterponomo 16y agoWorking on big iron, I get to work with assembler, CICS, MQ Series, and DB2 in addition to COBOL. No, it's not flashy like web apps, but there's a certain appeal to bit-diddlers like myself. Perhaps it's the same as the difference between driving a PT boat and working in the engine room of an aircraft carrier. I would choose the carrier. Also, Greenspun's Tenth Rule is in effect in the COBOL world as much as in any other language. http://en.wikipedia.org/wiki/Greenspuns_Tenth_Rule http://en.wikipedia.org/wiki/Greenspuns_Tenth_Rule The difference in the COBOL world is that you are more likely to work with people who would not know what you are talking about if you mentioned Lisp or Greenspun's Rule, or even the word "predicate" just to pick an unrelated example. So if you are into programming more than you are into business, you can function in the mainframe world as a sort of playground for exercising your programming muscle in ways that suit you, even if your colleagues aren't aware that something different is going on. For instance, I generate a lot of code using a Common Lisp system I wrote for my own use. No one knows or cares--all they know is they seem to get reliable code from me very quickly. If I suggested that more people use the Lisp code generator, it would not fly because it would require training and might cost maintenance dollars. So it remains a personal tool. More: My job involves a weekly task to analyze a release while it is under development. My predecessor did this manually and took all week. I wrote a Java/MySQL system to do it, and it takes me all of 10 minutes a week. Another win for the intrepid programmer. More out in the open, I recently led development of a rules-based system. The team did not speak rules, evaluation, predicates, or the general use of collections. The challenge for me was to design the system using these concepts, then present it to developers who will never want to learn the general concepts. Done in record time, by some mysterious process (I broke the design into small pieces w/o reference to the comp sci terms, gave each developer a focused task, and tied it all together myself). Definitely more Sears foundation garment than Frederick's of Hollywood, but I like it.
- avar 16y agoYou wrote a compiler in Common Lisp that auto-generates COBOL and your co-workers haven't noticed this?
- masterponomo 16y ago
- squidsoup 16y agoGiven that you guys are into TDD, I'm assuming you're running Cobol on Cogs? http://www.coboloncogs.org/INDEX.HTM http://www.coboloncogs.org/INDEX.HTM (sorry, couldn't help myself)