Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

By far the most useful and helpful is job ads: it literally defines the demand side of the programming language market.

Yes, that does not show us how much code is running out there, and some companies might have huge armies with very low churn and so the COBOL stacks in banks don’t show up, but I can’t think of a more useful and directly measurable way of understanding a languages real utility.



> the most useful and helpful is job ads

That would certainly be the case, if it were not for the fact that [fake job postings][1] are a thing.

[1]: https://globalnews.ca/news/10636759/fake-job-postings-warnin...


Is there a reason to believe this would skew results?

i.e. Are you assuming (insinuating) jobs for some programming languages are more likely to be fake


I would assume so. I expect there to be a lot of job postings looking for more "sexy" technologies to create the visage that those companies are growing and planning towards the future. And conversely I wouldn't expect any job postings of old "streets behind" technologies like COBOL to be fake, as they wouldn't help with such signalling.


Yes to your point, COBOL which ranks very low here is still fundamental to the infrastructure of several major industries, with some sources [1] reporting that it is used in:

43% of all banking systems.

95% of all US ATM transactions.

80% of all in-person credit card transactions.

96% of travel bookings.

This may very well dramatically change in the next few years with such an emphasis on enterprise AI tools to rewrite large COBOL repositories. [2]

[1] https://www.pcmag.com/articles/ibms-plan-to-update-cobol-wit...

[2] e.g. Blitzy https://paper.blitzy.com/blitzy_system_2_ai_platform_topping...


I can only speak to the two bigger German banks (i.e., Sparkasse and VR banks), but if you look at their outsourced development providers (Atruvia and Sparkasse Informatik), they're still offering incentives for their apprentices to learn COBOL, especially in the german dual apprenticeship programs which they can steer more easily than university courses. My wife has been doing COBOL for one of them since 2012, and the demand has never diminished. If anything, it's increased because experienced developers are retiring. They even pull some of these retired developers back for particularly challenging projects.


Sparkasse and VR aren't the two largest German banks. DB is at least double the size of Commerzbank which is again 100mn in assets ahead of DZ. I don't find it all that surprising that these small banks are still trying to keep their legacy systems alive, but it's not the case for the bigger boys. (Source: work for several of them)


You are right if we only talk about assets. Should've clarified I meant more in regards of retail customers and branches.


Oh, right, consumer banks. Yes I can imagine they're all extremely legacy bound. They're a very small percentage of banking, though.


Cobol is used in pretty much all enterprise legacy systems.

But "used in" doesn't mean that it's actively being developed by more then a tiny team for maintaining it.

As this graph we're commenting on is mostly talking about popularity/most used it's never going to rate higher, because for every one Cobol dev there are more then 100 Java devs employed by the same company


That's a pretty wild claim. What's legacy for you? I'd consider legacy e.g J2EE crap running on web[sphere|logic] as holding most of the points in that league table vs COBOL.


A legacy software to me is whatever the company that employs me says is said legacy software.

Pretty much every business I've worked at to date has had such legacy software, which was inevitably still used in some contexts.

It's not always obvious, because - following with the previous example numbers - only 1-2 Java devs will have to interact with the legacy software again, hence from the perspective of the remaining 98, Cobol doesn't exist anymore.


If they're talking about Cobol, it's usually systems originating before the early 90s that haven't been completely rewritten.

J2EE would be late 90s and 2000s.


In retail banking I'm sure that this could be true. Working in investment banking, I never saw a single COBOL application, or had to have my C++/Java/$MODERNLANGUAGE code interact with one.


Corp bank here, everyone has rumours about COBOL systems but no one I've ever spoke to has seen, interacted or has any other evidence these really exist anymore either.


Me neither.

But I asked for a bank statement from my old savings account a few years old and it took two weeks to print out, printed in monospace dot matrix.

Or the betting company that I was a customer that suspends betting everyday 6:30am for an hour for daily maintainance. Ironically, they would accept bets for football matches played at the time, but the system was shut down.

I suspect both are run on COBOL.


You haven’t seen or heard them because they are abstracted away by APIs, circuit breakers and proxies. Almost ALL banks, credit card companies, travel systems and other high throughput transaction systems run on mainframe that is written in COBOL.


I think the issue here is that people working in fintech don't seem to come across these systems much, if at all - if you know one specifically, please tell us.


It's still there at the accounting/backend level. Automated Financial Systems Level 3 and it's replacement Vision are commercial loan systems.

LVL3 is pure cobol. It has been recently deprecated but there are many banks who own the code and are still self hosting it, along with it's IBM green screen support.

Vision is a java front end in front of an updated cobol backend. When your reputation is based on your reliability and long term code stability, at what point do you risk making the conversion, versus training new developers to work on your system.

https://www.linkedin.com/jobs/view/business-analyst-afs-visi...


No, we are not afraid of our own systems. The idea that there is some fabled computer system which everyone is too scared to touch doesn’t exist (I work in payment processing). There are levels of controls way outside these systems which provide these safety nets (e.g settlement / reconciliation controls).

If the cobol is still there, it’s not due to risk. If anything, the cobol is a much higher operational risk than replacing it.


Analogously, GDSes like SABRE still ran on mainframes until very recently (c. 2023) [0]. SABRE was written in some combination of assembly and some kind of in-house dialect of PL/I, if I recall.

[0] https://www.theregister.com/2022/04/11/gds_gets_over_histori...


I worked briefly at a company that wrote applications that interacted with bank mainframes. Think end point bank teller systems and in branch customer/account management. They definitely do exist - every major bank has a mainframe written in (usually) cobol.

But it's very abstracted, part of our main product offering WAS abstracting it. On top of our ready to use applications, we offered APIs for higher-level data retrieval and manipulation. Under the hood, that orchestrates mainframe calls.

But even then that there could be more level of abstractions. Not every bank used screen-level mainframe access. Some used off the shelf mainframe abstractors like JxChange (yes, there's a market for this).

Fintech would be even more abstracted, I imagine. At that point you can only interact with the mainframe a few levels up, but it's still there. Out of sight.


Yeah when I worked in investment banking it was VBA and Java everywhere, never saw or heard of COBOL.


    > Working in investment banking, I never saw a single COBOL application
What was the back office settlement or wire transfer system written in? There is a good chance that some part of them was written in COBOL. And while Bloomberg terminals are a vendor product, for a bloody long time, many of their screens had some COBOL.

Also, lots of quantitative software at i-banks use LINPACK or BLAS, which use FORTRAN.


Well, I had a very badly specified project to write a library for our back office systems to do Swift payments from our C++ applications, via COM. There was no obvious COBOL involved, on either side, but it has to be said that the whole use case for the library was very murky. And it never worked, due to the lack of spec, not the languages.


First hand knowledge: ERGO and MunichRE both have a lot of cobol still doing the core business. You will most likely never run into the system because they just run batch jobs - sometimes configured via a “nice” web UI… you configure your job, submit and the next morning you have your report… that’s why you never actually see COBOL.


1. Not all roles are advertised. I've actually only been interviewed for two of the jobs I've ever had, both at the same place - my current employer because it's a public institution and so it always advertises and interviews for jobs even if it has an internal candidate who is likely to be a good fit. In fact the first of those jobs was basically my shape on purpose, another candidate was an equally good fit and they hired both of us.

Everywhere else people hired me because they knew who I was and what I could do and so in place of an "interview" maybe I grab lunch with some people I know and they explain what they want and I say yeah that sounds like a job I'd take and maybe suggest tweaks or focus changes. No shortlist of candidates, no tech interview, no tailoring a CV to match an advert. Nothing -> Lunch or Drinks -> Job offer.

So that can cause some distortion, especially for the niche languages where there are like six experts and you know them - an advert is futile there.


> measurable way of understanding a languages real utility

It feels like that metric misses "utility" and instead comes from a very American (or capitalistic maybe is better) mindset.

What about Max/MSP/Jitter? Huge impact in the music scene, probably has very small amount jobs available, so it'd rank fairly low while it's probably the top media/music language out there today. There are tons of languages that provide "the most utility for their domain" yet barely have any public job ads about them at all.

I think such metric would be useful to see the "employability of someone who knows that language" if anything, but probably more pain than gain to link "# of job ads" with "utility".


Thinking about how to measure this properly, why not just the moving average of daily downloads over 30 days from each repository?

… yes CI would be a lot of these downloads, but it’s at least a useful proxy


Yeah except job adverts have enormous lag behind what's actually popular. For example we used Rust quite a lot at my previous company but we didn't advertise for Rust developers at all.

Also then you're looking at which languages were popular in the past whereas the interesting stat is which languages are being used to start new projects.


Interesting might not be the same as useful.

If I'm trying to figure out which language to learn next, knowing what I can get paid for might be more useful, even if it's not that "interesting".

If lots of projects are starting up in Rust, but I can't get interviews because nobody is advertising, how useful is learning Rust?


Well, we have to define what a language's popularity mean. Because Rust is surely more 'hyped', than Java, but Java has at least an order of more developers/software written, etc.

So in which meaning do you use 'popular'?


Ideally we'd like to know both, as they tell us different things.


    > we used Rust quite a lot at my previous company but we didn't advertise for Rust developers at all.
How did you find Rust developers when you needed to hire?


Find developers. Tell them they get to use Rust. You now have Rust developers.


Find a CS program that teaches Rust and hire their graduates.


Existing C++ developers learned Rust.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: