←back to thread

127 points Anon84 | 6 comments | | HN request time: 0.901s | source | bottom
Show context
tw04 ◴[] No.38508735[source]
Plenty of folks know COBOL - the problem is you need to entice someone YOUNG to learn it, which basically means overpaying them. If I'm an 18-year-old why would I focus on learning a programming language that puts me in a job with 0 chance of advancement? Sure I'm irreplaceable to the company, but I've also only got a handful of other places I could go if they treat me poorly or sunset their mainframe.
replies(3): >>38508805 #>>38509372 #>>38510305 #
tobyjsullivan ◴[] No.38508805[source]
I’d be curious to know how we’re defining “overpaying” here. These companies have effectively accrued 50+ years of technical debt (they could have migrated off COBOL decades ago). Meanwhile, based on my limited experience with these industries, I’d be surprised if they even offer market rates to new hires.
replies(3): >>38508933 #>>38509381 #>>38510716 #
1. nobodyandproud ◴[] No.38508933[source]
Let me up the ante. Why do we believe COBOL is yech-debt?
replies(2): >>38509208 #>>38510346 #
2. pixl97 ◴[] No.38509208[source]
Hell, after seeing both kind of applications (java vs cobol) by these bank/financial companies I am of the opposite mind.

Those COBOL applications will keep working until the sun burns up or inflation makes the numbers so long they no longer fit in bounds.

The java applications they write should fill you with terror.

replies(1): >>38510578 #
3. tobyjsullivan ◴[] No.38510346[source]
If there’s a shortage of developers who understand the language, then the team cannot properly understand the application (as per TFA).

If nobody can understand the application, it cannot be modified.

If an application cannot be modified, its value will continuously decrease with time.

That decrease in value, as well as the projected cost of building a replacement, is tantamount to accruing interest on a debt.

They could have reduced that debt by moving to functionally equivalent but more commonly taught languages back when their team could still understand the system.

It wasn’t necessarily wrong for them to accrue this debt - after all, banks and these monolithic institutions are masters at effectively utilizing debt. However, the practice may have become habitual and it looks like they might be in pretty deep at this point.

replies(1): >>38510722 #
4. trealira ◴[] No.38510578[source]
Why do you say the Java applications at banks and financial institutions so bad? I'm not trying to contradict you or say you're wrong; I just want to know why.

Not having ever seen this kind of software, I would assume that the existing COBOL applications are good simply because all the bad COBOL code was probably scrapped decades ago, an example of survivorship bias.

replies(1): >>38511089 #
5. nobodyandproud ◴[] No.38510722[source]
Many systems are obscure or niche, but that isn’t tech debt.

What you’re describing is a management and leadership failure.

In US tech we have an overabundance of Type A people in it for the money, but there are plenty of smart Type Bs who just want stability and a life, for a fraction of the going SV engineering pay.

You have to wonder why the latter is impossible for American companies to achieve.

6. pixl97 ◴[] No.38511089{3}[source]
Survivorship bias is bad if you're making a statement like "All old houses were good because we still see some old houses around".

But if you already have an old house that's working it's worth considering survivorship bias if you're building a new house to replace it. That new house is much less likely to survive that bias filter. Getting the new house as good as the old house will likely take you far more time and money than you expected.

And the same is with software. For example including outside libraries in your application makes the code much easier to write. You don't have to reproduce functionality. But libraries typically work like kitchen sinks. You may not have wanted a garbage disposal, but your library came with it and for the next X years your application is around you have to make sure that disposal doesn't catch fire. From the security side you have to make sure there is no code interaction with disposal or any of the other 'household' functions its including that you're not testing for.

At least in what I do for a living which is in the field to code security reviews (I don't do these reviews myself, but I work with the teams that do), the amount of security issues that get caught in these new applications in a multi round process, at least to me is staggering. It has to be a multi round process as we see the issues being reintroduced we'd call out in previous sessions. Quite often in these larger organizations the programming teams are so unstable that between our first calls and last calls the entire team working on it will have rotated out.