Most of these languages are neither dead nor dying. They are just niche.
I just started learning APL this year. It is still actively developed and no you don't need a special keyboard. Plus we have unicode now which makes the special symbols a non-issue these days.
Same with most of the other languages. There is Pharo and Squeak for Smalltalk, the pascal community has free pascal. Sure those communities might not be huge but they are not in acute danger of vanishing any time soon.
And COBOL is still carrying the economy.
Now some languages like ALGOL might actually be dying, sure.
Natural languages are considered dead when they lose their last native speaker. Similarly when the last person being able to use a programming languages dies, we can consider that language dead.
Which means that we have lots of languages that died at childbirth but once a programing language has managed to go over a certain popularity threshold, it is very hard to kill.
Languages don't need to win any popularity contests to be alive. Language maximalism in the sense that you need to be one of the most popular languages or you are considered a failure and dead is just silly.
> Natural languages are considered dead when they lose their last native speaker. Similarly when the last person being able to use a programming languages dies, we can consider that language dead.
I don't think this is the right comparison. A native speaker would be more like someone who learned the language as their first or maybe second language, rather than someone who can use it at all. And by that metric, these languages are pretty much dead/dying, since they mostly have no new learners who aren't into PL history.
> since they mostly have no new learners who aren't into PL history.
They do have have new learners, that was my whole point. Whether they learn out of historical interest, to become better programmer in general, for a job, for research, or because they need it for a specific project does not matter. (And yes all those reasons apply.)
Or look how many people use it to solve Advent of Code.
As for learning them as a first language, if we applied that criteria then most programming languages would be born absolutely dead and stay there. I don't think anyone ever learned Elm or Purescript as their first language, are they dead?
I really don't get why people make such weird claims, declaring healthy and obviously alive communities to be dead. Again, things don't need to popular to be alive.
I mean, I'm pretty sure most of those companies would view APL as a liability, just like companies that still use COBOL. The question really is about whether new, significant projects are being started in these language.
People choose weird, novel, old, and esoteric languages for Advent of Code because it's fun and a way to stand out from the pack, or practice languages that might not ever get used otherwise. It's not evidence of a healthy community.
And yeah, I mean Elm and Purescript might not be "dead", but the fact that they are niche, largely non-general-purpose languages doesn't really mean that they are "healthy" either. I'd be willing to take a bet that both of these languages are effectively dead in 10 years.
There's a difference between learning a language as part of history, and actually being proficient at it. I know ALGOL 60 well enough (having tried to implement it), but I wouldn't consider myself a "native speaker" of it.
your first programming language isn't really analogous to your native language. there isn't actually a fair comparison between programming languages and natural languages. active users of a programming languages seems a fair enough measure of liveness.
Sure, but I think the question is what we mean by "active." I think "has anyone written code in this language recently" isn't a great metric, because by that measure pretty much any language that ever has had adoption is "alive" by virtue of being used in Advent of Code, as the OP points out. This just seems contrary to my intuition about what it means for a PL to be alive and have a healthy community. What I meant by "first language" was more about community growth, and there being people willing to mentor newbies, new projects being started for new users to hack on, etc.
Lazarus ( Free Pascal ) seems to be thriving actually. APL is probably as big as it ever was. COBOL will shrink over time but it may still outlast me. I have no insight into SmallTalk but my University curriculum included it and it would not surprise me at all to see it used academically today. I was also taught Scheme and Fortran and those are still going strong. If I wanted to use any of these, I know I can find both free and commercial dev environments easily that run on platforms I still use.
Is ALGOL still in use anywhere though? Is there a compiler available that runs on anything modern? I genuinely curious.
My exposure to SmallTalk has basically been from professors who always referenced it as great and a pillar of OOP back in the day at university. Of course I was a crontrarian student who was drinking the functional cool aid at the time so my response was usually "lol OOP" or something similarly clever. I investigated it a bit and my main takeaway was "ellegant but slow". Being the mature student I was I then proceeded to read up on OOP in detail for the following semester and changed from "lol OOP" to "yeah, yeah but it's so much better in Eiffel". I'm very thankful that I've since turned from a flamewar-triggerhappy person into a very pragmatic person that uses whatever language gets the job done while trying to find the value and neatness in each of them :)
Looks like an Algol special character was added to Unicode in 2009 so... maybe?
Seems like Fortran and COBOL pop here as dead languages still in use but I haven't seen anyone mention Algol (or B, BCPL or anything similar either).
Also, as was obscured by the title mangler, the "dead" in the title is just a side remark; the title without the parenthesis is "10 most influential programming languages", and "(ly dead)" after "most" is just a parenthesis.
Maybe we'll just revert to the linkbaity title in this case. I had it briefly as "Mostly-dead, influential programming languages (2020)" but that probably did more harm than good.
Just curious: How do you determine whether the title change worked? Do you try it out and then check back later to see whether commenters are still getting hung up on the topic?
Well, it's not a claim that these are the ten most influential programming languages. Lisp was clearly more influential than most of these, but it didn't make the list because it's still alive.
I think the title was mostly just a pun/riff on the title of the other post linked in the first paragraph, which did claim to be a list of the most influential languages, and doesn't really make sense if read as a specific concrete claim.
> Natural languages are considered dead when they lose their last native speaker. Similarly when the last person being able to use a programming languages dies, we can consider that language dead.
Someone "able to use a programming language" more directly parallels someone able to speak a language at all, by which measure Latin would not yet be dead. If you're going to draw the line there, that would be what linguists term an "extinct language".
It's hard to draw parallels to natural language because there are no native speakers of programming languages. The closest parallel I can think of is that a language can be considered dead when no new projects are started in it. Once you've reached that point, the remaining work in the language is maintenance, which is comparable to people studying and translating old Sanskrit texts.
Alternatively, a language can be considered dead when it has stopped changing and frozen in its final form.
By either of these measures a lot of these still aren't dead, but my bet would be that COBOL counts.
Not by choice but rather out of desperation and necessity to continue to run the mission critical code, mostly in banking, finance, and it is also occasionally encountered in government services albeit its presence has greatly diminished in the last decade or so. Young developers have no interest in learning COBOL, and the old developers have alredy died several times, have been dug out of their graves several times and brought back to the frontlines, and there are no more of those to be had. So the mission critical code continues to run on the constantly upgraded mainframe hardware, sometimes having not been changed in a few decades.
Oddly enough, despite a few large scale attempts to come up with automated COBOL -> whatever language migration / translation tools, they seem to have been largely fruitless. I think it was IBM that hired a bunch of hardcore academics in mid-2000's (?) to design and implement a COBOL to Java translator in Standard ML, and they even managed to produce something working. Unfortunately, then history becomes murky and trails off, and the eventual fate of that creation is an enigma of sorts. And, then, earlier versions of Java (before Java 8 anyway) were a horror to behold and would probably require a Java < 8 into Java >= 8 translator, so…
I'd actually love to work with COBOL professionally, my problem is that COBOL jobs still pay a substantially low amount of money compared to jobs using modern stacks.
For something so "critical" you'd think the base salaries would start at $250k/year; but I guess we aren't at that level of desperation yet.
Out of curiosity what about COBOL appeals to you? My first job out of college was working with RPG on an AS/400 (so I'd consider it at least a cousin) and the experience was awful.
Basically wanting to work with a true legacy system, colloquially I feel like
legacy" typically means "abandoned php/java8/c#" project. COBOL projects are older than me!
I think it would really help me grow as an engineer to understand how these systems are maintained, how they are tested, and how they are updated; what better way than something several decades old?
I feel like this is hard to find in the modern era, especially post 2010 onward.
Ah, interesting. I will admit I learned a great deal in the 2 years, though not all of that was the things you said. For me it was we had a lot of different codebases because each client had their own needs (beyond everyone who used our payroll system including printing checks, but that system rarely needed maintenance) so I had to learn to quickly read and understand a codebase to be able to make changes w/o spending days/weeks getting up to speed.
Interesting reading your comment as well! I honestly don't know what I would expect to learn just writing would I think would happen. :D
Thinking about it more, I don't think I've met single person that ever touched a COBOL code base throughout my career (talking from ICs up to VPs here). It seems the "oldest" was always some early Java project from early 2000s.
Because at $250k/yr they'd have no trouble attracting engineers willing to learn COBOL. There isn't a current "emergency" a la Y2K to spike the demand of experienced COBOL programmers; they have time to hire anyone with a CS background and let them learn the language on-the-job so they can do low-priority legacy maintenance.
> […] and let them learn the language on-the-job so they can do low-priority legacy maintenance.
And that is a problem frequently faced with fresh graduates and young developers (no disrespect to them) whose common reaction to legacy programming languages and platforms is best characterised as «ew, this is gross». Even a heftier salary package does not do the job – they just don't want to learn legacy technologies.
As a personal anecdote, it is the situation I encountered with a few young devs (3-4 years of the industry experience) in my team whom the management had entrusted to learn and support a 4GL platform that they borderline flatly refused to learn and left their employer shortly afterwards to code in React and other NodeJs frameworks. Which is regretful as the 4GL language in question was a pretty modern and good design and could have been learned to get a glimpse into good design and coding practices, the intricacies of the complex transaction processing etc. All of which could have been reused pretty much anywhere outside 4GL. In my view, it was a sorely missed opportunity.
The '08 recession forced me into a job maintaining an old Ada system when I was a young developer. Toward the end of that experience I was put on a project that involved modernizing and updating said system by porting it from SPARC/Solaris to x86/RedHat. I also had to learn to read MATLAB because most of the new modules involved translating the work of scientists into Ada code.
A good learning experience, at least. I've long since moved on to more "modern" technologies.
What were your use cases for APL ? I love it to bits on principles but never used it seriously, despite all the efforts of dyalog and Aaron Hsu.
niche languages have a flavour that mainstream spoils with feverish fads.. I always like to read perl or TCL forums and am surprised by the ideas and productions.
That's why he said MOSTLY dead. Mostly dead is slightly alive. With all dead, there's only one thing you can do: go through their pockets and look for loose change.
I just started learning APL this year. It is still actively developed and no you don't need a special keyboard. Plus we have unicode now which makes the special symbols a non-issue these days.
Same with most of the other languages. There is Pharo and Squeak for Smalltalk, the pascal community has free pascal. Sure those communities might not be huge but they are not in acute danger of vanishing any time soon.
And COBOL is still carrying the economy.
Now some languages like ALGOL might actually be dying, sure.
Natural languages are considered dead when they lose their last native speaker. Similarly when the last person being able to use a programming languages dies, we can consider that language dead.
Which means that we have lots of languages that died at childbirth but once a programing language has managed to go over a certain popularity threshold, it is very hard to kill.
Languages don't need to win any popularity contests to be alive. Language maximalism in the sense that you need to be one of the most popular languages or you are considered a failure and dead is just silly.