News for hackers. Stuff that matters.
Re:GnuCOBOL 3.1.1 by hansor on Friday December 11, 2020 @09:24AM (#25386109)
Its awful that most people here are criticizing COBOL, yet they don't even know it, but they just "heard bad things about it".

In my country and in Sweden it is quite easy to get good and stable job in banking/insurance/consulting business with Cobol on Z/OS.

Salary is around 10-30k PER MONTH. Around 3x more then in let's say Java.

Re:GnuCOBOL 3.1.1 by Misteur-Z on Friday December 11, 2020 @10:32AM (#25386829)
Until some COBOL developer publishes his pay slip, I will stick to reality, top IT salaries are at tech giants.

From personal experience: BNP Paribas is one of the biggest bank in the world, top 5 if you exclude Chinese state owned ones, and they pay mainframe related jobs like shit.

Being young, smart and with a whole career ahead, you have no future working has a COBOL developer, no one should spend his life picking up shitty code left by his elders decades ago.

Re:GnuCOBOL 3.1.1 by pbourke on Friday December 11, 2020 @12:51PM (#25388518)
> no one should spend his life picking up shitty code left by his elders decades ago.

Would you say that to a civil engineer who works on infrastructure maintenance?

Computing is critical infrastructure in many areas of government and business. The solution to all problems cannot be “screw it, we’ll just rewrite in Go with a React frontend.” Some things should be rewritten and some should be maintained.

Re:GnuCOBOL 3.1.1 by Misteur-Z on Sunday December 13, 2020 @03:11PM (#25409752)
Have you ever worked on an IT infrastructure where there is no comments in the source code, no documentation, no normalization, no specs? I am not talking about COBOL itself, I am talking about those COBOL jobs, it's only about fixing and/or maintaining. I hope no one is writing new things in COBOL.
Re:GnuCOBOL 3.1.1 by beezle on Friday December 11, 2020 @02:09PM (#25389426)
Back in the day... COBOL programmers were often 'analysts' as well - meeting with the end users and/or management to design and then implement the required system.

Funny to me how so many in this thread rag on COBOL, yet when other languages come up it is always 'well this language is good for abc but I wouldn't really do xyz in that one'. COBOL is extremely good at what it was designed for - data processing, and lots of it.

Re:GnuCOBOL 3.1.1 by dragonwriter on Friday December 11, 2020 @02:13PM (#25389475)
> COBOL is extremely good at what it was designed for - data processing, and lots of it.

Well, the hardware that COBOL usually runs on is good for that, sure. And its usually (now) running legacy systems that no one wants the risk of reimplementing from the ground up. But is the language itself particularly well-suited to the task? I think that’s less clear. Certainly, I’ve never seen a coherent argument about how the language itself is superior to modern alternatives even for large scale data processing; if it was, it would be popular for greenfield projects in that domain, you’d think.

Re:GnuCOBOL 3.1.1 by RcouF1uZ4gsC on Friday December 11, 2020 @03:36PM (#25390632)
One thing I have heard about COBOL is that it has a built in, decimal fixed point type. Very few of the modern languages have an native type like this. Having a decimal fixed point type makes monetary calculations easier to do more reliably.
Re:GnuCOBOL 3.1.1 by dragonwriter on Friday December 11, 2020 @04:13PM (#25391066)
> One thing I have heard about COBOL is that it has a built in, decimal fixed point type. Very few of the modern languages have an native type like this..

What modern language doesn’t have either fixed-point or arbitrary-precision decimals (or both) in either the core language or standard library?

I mean, sure, C doesn’t (and I don’t think C++ does), but those aren’t particularly modern languages.

Re:GnuCOBOL 3.1.1 by RcouF1uZ4gsC on Friday December 11, 2020 @04:26PM (#25391238)
In don’t think that Java fits the bill either in this regard. White it does have BigDecimal in the standard library, it is both slower(because object and supports arbitrary precision) and more cumbersome (no operator overloading ) than a native type.
Re:GnuCOBOL 3.1.1 by zozbot234 on Saturday December 12, 2020 @11:08AM (#25399100)
I can see a case for decimal floating point types, but fixed point adds nothing beyond what can be performed directly via arithmetic on the underlying integers. It's basically a convenience feature.
Re:GnuCOBOL 3.1.1 by int_19h on Sunday December 13, 2020 @02:14AM (#25404907)
Most things in modern programming languages are convenience features; loops are basically if+goto etc.
Re:GnuCOBOL 3.1.1 by lokedhs on Saturday December 12, 2020 @11:13PM (#25404252)
It's suited for a very specific kind of data processing. It's a kind which isn't typically used today.

The language combines presentation and storage in a way I've never seen in any other language. Let's say you have an 8 digit variable. You can then specify that the last two digits is represented by a different variable, and thus the second variable will only work on those last two digits.

This is useful when you have formatted fields, where you have a variable that holds an ISO 8601 date, with other variables representing the year, month and day parts.

In a language like Java, you need to create a class that holds this information, with separate methods to manipulate the individual components and formatting the output.

In COBOL you only need a few lines of declarations to do this.

The drawback is that now presentation is tightly associated with the data storage, meaning that changing presentation format can be a lot of work. This is why COBOL programs were so problematic during Y2K.

Re:GnuCOBOL 3.1.1 by ab_testing on Friday December 11, 2020 @12:34PM (#25388296)
That is true, but you have to understand that not everybody is FAANG material. The top 5-15 tech companies receive hundreds of thousands of resumes every year of which less than 1% are selected. Also not everybody is interested in moving in to the tech hubs. There is still lot of work in legacy code - COBOL, Oracle and other legacy systems.

Even in newer languages like Java, there is lot of work that is mostly application maintenance and adding new features to existing decade old applications. It is not bad work.

Re:GnuCOBOL 3.1.1 by ta988 on Friday December 11, 2020 @03:57PM (#25390886)
And you have to want to work for a FAANG. Not everybody dream of that either.
Re:GnuCOBOL 3.1.1 by 908B64B197 on Friday December 11, 2020 @02:20PM (#25389578)
> BNP Paribas

Despite producing some of the best engineering talent in the world it seems that French engineer are systematically underpaid.

Re:GnuCOBOL 3.1.1 by ta988 on Friday December 11, 2020 @03:59PM (#25390903)
Yes and that's always the discussion when people from US come in to visit to the french part of companies. "Hey we heard that you are paid 5 to 10 times less than us, why do you accept that?"
Re:GnuCOBOL 3.1.1 by 908B64B197 on Friday December 11, 2020 @04:04PM (#25390963)
Why do you?
Re:GnuCOBOL 3.1.1 by benibela on Saturday December 12, 2020 @10:58AM (#25399007)
Europe has lower rent, health care insurance, and more vacations
Re:GnuCOBOL 3.1.1 by 908B64B197 on Sunday December 13, 2020 @02:18PM (#25409238)
Except the vacations, I find it hard to believe.
Re:GnuCOBOL 3.1.1 by ta988 on Friday December 11, 2020 @08:17PM (#25394200)
For me? Because it is hard to pimp myself to please recruiters, relocate, get visas (especially now)...
Re:GnuCOBOL 3.1.1 by 908B64B197 on Sunday December 13, 2020 @02:17PM (#25409232)
Trust me, it's worth it. Really, it's not that much effort and it's worth it to signal to recruiters your real worth. And don't forget not all recruiters are equal.

And the visa issue is way overblown. It's easier than you think for a real engineer with experience.

Re:GnuCOBOL 3.1.1 by the_af on Friday December 11, 2020 @01:45PM (#25389127)
At least for me, I criticize from experience: I worked with COBOL, and think it's an awful, unfun language, commonly used for unfun projects. And COBOL jobs don't pay particularly well where I live, either.

> In my country and in Sweden it is quite easy to get good and stable job in banking/insurance/consulting business

Yes, that much is true: a stable job in banking/insurance. Mostly maintaining clunky legacy systems. If that's what you aspire to, and aren't passionate about software -- which is perfectly fine! -- I guess learning some COBOL is a reasonable career choice.

Re:GnuCOBOL 3.1.1 by arabelladonna on Friday December 11, 2020 @02:48PM (#25390022)
> If that's what you aspire to, and aren't passionate about software -- which is perfectly fine! -- I guess learning some COBOL is a reasonable career choice.

This is a completely unfair assessment. Even if you're passionate about something, job stability and good pay are going to be the primary drivers in decisions about jobs. I doubt that most people choose, say, Java jobs because they're passionate about Java, or even software in general, for example.

From what I gather, most people leave the "passion" part of their work to part-time hobby work, allowing them to do both. If it then translates into money, good, but the few successes that have been put on blast have blinded people to the reality that passion != money.

Re:GnuCOBOL 3.1.1 by the_af on Friday December 11, 2020 @03:19PM (#25390427)
Believe me: writing Java is on average more interesting than COBOL (I've done both, including some terrible Java systems using Enterprise Java Beans -- I still shudder at the thought -- and Java still wins). Then again, Java has been called "the next COBOL", so that's an interesting comparison.

> Even if you're passionate about something, job stability and good pay are going to be the primary drivers in decisions about jobs.

For a lot of people, yes. Not for all. And even then, it's hard to argue that COBOL is cool or interesting. It's just paying the bills, but nothing to get hyped or write gushing articles about. And there are more interesting programming jobs that will also pay the bills, anyway.

Re:GnuCOBOL 3.1.1 by arabelladonna on Friday December 11, 2020 @03:23PM (#25390470)
> And there are more interesting programming jobs that will also pay the bills, anyway.

Unless there aren't.

Either way, you're judging people simply for taking a different path than you, which is completely unfair.

Re:GnuCOBOL 3.1.1 by the_af on Friday December 11, 2020 @03:27PM (#25390522)
If there aren't, there aren't. In that case, there's no choice to be made.

I didn't mean to judge people and in fact tried not to, though perhaps clumsily. I said it's fair to not be passionate about the job. Often I haven't felt passionate about it either, or even particularly motivated. And do note I have worked in COBOL, so I understand the need. I just don't like the language and I don't want to see people selling the idea that it's "interesting" or a particularly sound business decision to learn it -- like those articles that occasionally get posted to HN.

Re:GnuCOBOL 3.1.1 by arabelladonna on Friday December 11, 2020 @03:37PM (#25390639)
> I said it's fair to not be passionate about the job.

That's not what you said, though. This is what you said:

> If that's what you aspire to, and aren't passionate about software

Those are completely different sentiments and your original "aren't passionate about software" statement is the statement I took issue with.

Re:GnuCOBOL 3.1.1 by phendrenad2 on Friday December 11, 2020 @03:03PM (#25390215)
I'd argue maintaining clunky legacy systems requires more passion for software. It's easy enough to run off to a startup and make the same CRUD app that's been made 1000x before, but maintaining something that grew organically over decades, that takes craftsmanship.
Re:GnuCOBOL 3.1.1 by the_af on Friday December 11, 2020 @03:14PM (#25390358)
> I'd argue maintaining clunky legacy systems requires more passion for software.

This is one of those things that is easy to discuss in theory, but in practice it doesn't work that way, at least not in most cases. And in my experience working with COBOL at a bank: no, the employees weren't passionate about it. In fact, the only passionate employee was an old guru who wrote assembly code for the bank's mainframe.

You could take it to an extreme, and argue that working with malfunctioning computers, using only BASICA.COM for DOS, writing accounting software and getting paid mere cents for it, requires more passion -- after all, who would want to work like this if they didn't feel passionate about it -- but of course it isn't.

It's great to work in challenging or atypical projects, maybe with tools that are not the easiest or more ergonomical, but there's a baseline of comfort below which you're probably not passionate, just masochistic.

Re:GnuCOBOL 3.1.1 by tubularhells on Friday December 11, 2020 @03:46PM (#25390763)
The only thing in my job that I'm passionate about is my paycheck.

I leave my passion for when I log off the VPN.

Re:GnuCOBOL 3.1.1 by Fnoord on Friday December 11, 2020 @06:25PM (#25393070)
On the long term, having a job you're able to feel passionate about helps a lot.
Re:GnuCOBOL 3.1.1 by galoisgirl on Saturday December 12, 2020 @06:30AM (#25397608)
"Passionate" is usually BS for "has no boundaries and is willing to work overtime for free".

I love my job, and I leave work at work so it stays that way.

Re:GnuCOBOL 3.1.1 by the_af on Saturday December 12, 2020 @07:37AM (#25397861)
Agreed about the general BS meaning of "passion", but in this case I meant "liking software and building things with it". People maintaining legacy corporate systems written in COBOL -- the most common usage of this language -- don't exactly belong in this category. Which, as I said before, is perfectly fine: not everyone has to like software, maybe a job is just a job and you just need the paycheck. But all those recurrent articles praising COBOL somehow manage to forget this...
Re:GnuCOBOL 3.1.1 by Privacy846 on Friday December 11, 2020 @05:32PM (#25392354)
If most of programming is code maintenance, and you think of that as an anti-passion activity, your “passion for programming”—you didn’t state that explicitly, but let’s be real about the implicit comparison you’re drawing here—may be a mirage.
Re:GnuCOBOL 3.1.1 by the_only_law on Friday December 11, 2020 @09:52AM (#25386416)
I’ve always heard COBOL devs referred to as either highly paid consultants keeping critical applications alive for corporations or wage slaves maintaining a painful app for below average pay.
Re:GnuCOBOL 3.1.1 by Jakobeha on Friday December 11, 2020 @11:19AM (#25387409)
I've heard it's the computer science equivalent of a plumber or janitor. The job doesn't sound particularly fun, but because of this it's high demand and great pay. It's a good job if you accept that work isn't fun, and you don't care about climbing the ladder, you're just looking for a decent, reliable income.
Re:GnuCOBOL 3.1.1 by nescioquid on Friday December 11, 2020 @12:18PM (#25388105)
An alarming amount of software development, especially now, is little more than plugging part A into part B. The major trend of software development has been to increase the degree of similarity between software developers and plumbers.
Re:GnuCOBOL 3.1.1 by cle on Friday December 11, 2020 @12:26PM (#25388209)
That kind of reductionist argument can be made for any kind of software development...we're all just plumbing bits around at the end of the day. If you're a web dev, you're plugging web tech, if you're a backend dev it's network protocols and storage tech, if you're a kernel dev it's instruction sets and memory buffers.

As we build tools to make that plumbing easier for certain use cases, we might move around in the hierarchy to plug different things together, but I don't think anything has fundamentally changed in an alarming way. We're still just moving bits around!

Re:GnuCOBOL 3.1.1 by nescioquid on Friday December 11, 2020 @01:59PM (#25389309)
Of course, you're absolutely right in your reductive view, but it is not what I was trying to suggest.

I remember an explanation that Sussman gave for why MIT retired the SICP course, replacing with it a course in which students program robots with Python.

He said (and I'm badly paraphrasing) that one used to be able to scale up your reasoning about how a piece of software works in a similar way to how you do it when looking at a circuit diagram: you have these little components with discrete behaviors and you can simply combine them and be able to predict the result.

Today, however, as programmers (to a greater extent than before) we create systems by cobbling together large, opaque, libraries whose properties are poorly described and require one to essentially "do science" on those black boxes.

And the trade-off is that we're often better off plugging A into B, and hence there's a lot more of that sort of line work in industry.

edit: I should say that I don't much like that sort of work, but it was unwarranted to say it is 'alarming' that the trend has gone this way.

Re:GnuCOBOL 3.1.1 by skulk on Friday December 11, 2020 @12:34PM (#25388303)
So if you're a plumber and you're looking at two parts that don't connect but need to, you're pretty much SOL; you can't fabricate an adapter on the spot. Now, if you're a software engineer and you find yourself in a similar situation, you're expected to "fabricate the adapter." This is why the plumber analogy is fundamentally flawed.
Re:GnuCOBOL 3.1.1 by swirepe on Friday December 11, 2020 @12:50PM (#25388507)
>So if you're a plumber and you're looking at two parts that don't connect but need to

then you force it together with whatever you have at hand, and wrap it all in a thick layer of duct tape. That's exactly like software engineering.

Re:GnuCOBOL 3.1.1 by mywittyname on Friday December 11, 2020 @02:20PM (#25389585)
It's not a particularly well-paying or common job. I live an area with a large number of insurance companies and banking HQs, so COBOL jobs are a little more common than most of the US. Most job postings are for contractors paying mid-30s to lower 40s per hour, with a handful in the 50s.

That's an okay salary in absolute terms, but it's not a great one for a software engineering position. Even in a fly-over state.

But taking that job is basically career suicide. After 3-5 years of doing that, you'll be completely unemployable outside of insurance unless you spend time on your own learning useful skills. And if you do that, you're probably starting back down in a junior or mid-level role.

Anyone would be much better off getting an AWS cert and learning to write SQL.

Re:GnuCOBOL 3.1.1 by randmeerkat on Friday December 11, 2020 @02:16PM (#25389520)
Do these jobs train you in on COBOL, or do you have to be an expert in it already? If you have to be an expert already how are people learning COBOL / preparing for the interview to get this kind of job?
Re:GnuCOBOL 3.1.1 by phendrenad2 on Friday December 11, 2020 @03:06PM (#25390259)
Having applied to a few COBOL jobs in my youth, and getting no response back, I suspect that the COBOL shortage is like the general "programmer shortage" in that it really means "(senior) programmer shortage (willing to work for below prevailing wage)"
Re:GnuCOBOL 3.1.1 by throwaway201103 on Friday December 11, 2020 @10:36PM (#25395245)
If you're experienced in another language, you can learn COBOL in a week or two. My first job out of school was with a consulting firm that would take new-hire non-programmers and have them on a client site writing COBOL in 3-4 weeks.
Re:GnuCOBOL 3.1.1 by randmeerkat on Saturday December 12, 2020 @06:07PM (#25402666)
That’s fast. Aside from the common complaints people have about legacy code and so on, what was the hardest part of ramping up in COBOL?
Re:GnuCOBOL 3.1.1 by remexre on Friday December 11, 2020 @08:24PM (#25394261)
A list of many of these "bad things" can be found in BabyCobol [1, 2] -- it's a "toy model" of COBOL, specifically because COBOL has a lot of strange features that modern tooling doesn't/can't handle well.

[1]: https://grammarware.net/text/2020/babycobol.pdf [2]: https://slebok.github.io/baby/

Re:GnuCOBOL 3.1.1 by fennecfoxen on Friday December 11, 2020 @03:48PM (#25390781)
I make a bit under $20k per month base (a bit under $30k with equity) for a Silicon Valley firm, doing Python and Java and Go and the like, and I suspect I have a lot more career portability. That said, it's extraordinarily impressive for Europe, even the expensive parts of Sweden!
Re:GnuCOBOL 3.1.1 by TheOtherHobbes on Friday December 11, 2020 @01:44PM (#25389112)
Recently I had a look at some COBOL out of curiosity, and as someone used to modern languages it appeared very verbose and awkward - far less complex conceptually, but the syntax itself is not at all lightweight.

It seemed to be more or less as expected - fairly straightforward and apparently easy to learn, but unattractively bureaucratic.

My understanding is that you don't get paid the top money for knowing the language but for being able to understand and maintain/revise the kinds of systems it operates - which is a whole other level of skill and experience, and not something you can just pick up in a few evenings of side projects.

Re:GnuCOBOL 3.1.1 by mprev on Friday December 11, 2020 @09:51AM (#25386392)
30k in Swedish krone?
Re:GnuCOBOL 3.1.1 by mrweasel on Friday December 11, 2020 @10:04AM (#25386529)
I doubt that very many Swedes in IT works for less than 30.000SEK, so I would assume USD.
Re:GnuCOBOL 3.1.1 by levosmetalo on Friday December 11, 2020 @11:01AM (#25387197)
My guess would be EUR. In most of the Europe people don't mentally convert to USD but to EUR.
Re:GnuCOBOL 3.1.1 by mrweasel on Friday December 11, 2020 @11:17AM (#25387395)
That kinda depends, as a Dane I honestly only ever need to think in EUR when I shop online from Germany. I do however need to convert from DKK to USD and back much more frequently when reading news online.

Technically most of Europe don't need convert to EUR, they already use Euros so they're also more likely to need to convert to USD.

Re:GnuCOBOL 3.1.1 by koolba on Friday December 11, 2020 @09:16PM (#25394678)
> Salary is around 10-30k PER MONTH. Around 3x more then in let's say Java.

What currency? The kroner is with about $.12 so that’s not particularly enticing.

Re:GnuCOBOL 3.1.1 by jussij on Friday December 11, 2020 @10:23PM (#25395140)
Since the OP offers a relative comparison in saying COBOL jobs pay three times more than a Java jobs, the currency or any currency conversion to $USD really doesn't matter.
Re:GnuCOBOL 3.1.1 by einpoklum on Friday December 11, 2020 @07:56PM (#25393980)
The salary you can get working on something is almost entirely independent of whether it's a decent technology or not.
Re:GnuCOBOL 3.1.1 by mike_ivanov on Friday December 11, 2020 @03:22PM (#25390460)
Is that in SEK? 30k SEK is about 3k EUR.
Re:GnuCOBOL 3.1.1 by necheffa on Friday December 11, 2020 @10:13AM (#25386626)
I was forced to take a COBAL & z/OS course during college. And I was pretty good at it. Local bank wanted to make sure it had a steady supply of COBAL programmers.

I hate COBAL a lot, and incidentally for many of the same reasons I hate Java.

Re:GnuCOBOL 3.1.1 by galoisgirl on Friday December 11, 2020 @12:35PM (#25388305)
You were pretty good at COBAL?
Re:GnuCOBOL 3.1.1 by Iwan-Zotow on Friday December 11, 2020 @08:41PM (#25394400)
He was good at CABAL