Assembly being obsolete has to be the funniest joke in here. It fundamentally never will be even if its use is niche
post
How are you defining "Obsolete" vs "Nu"?
e.g. Brainfuck from 1993 is all the way to Nu, while D (2001) and Rust (2012) are less "Nu"?
AKA: How to annoy a bunch of computer nerds very quickly....
Make one for Linux distros next!!!
By being wildly wrong you mean?
You say "wildly wrong", they say "incentivizing engagement".
So rage bait?
Precisely. Getting people upset is the foremost technique to farm engagement on social media. Sites such as Facebook even deliberately altered their algorithms to show content that will anger readers because it works so well to keep them invested.
Engagement bait is omnipresent and really obvious once you learn to spot it - even something as innocuous as one or two "accidental" typos in a meme to get people into the comments section.
You could rent yourself to translate corporate-speak in email and meetings
Yeah, the axes on this are weird, why would the opposite of a systems language be a toy language? And why is Lua, a very popular and commonly used language in tons of stuff, a "toy"? And Lua is a nu Lang? It's older than Java, maybe it just feels newer because each release isn't necessarily backwards compatible?
Also Python as a toy lang and somehow more "nu" than Java despite Java being younger?
I think the order of Java and Python makes perfect sense. The OOP C++ -> Java pipeline was massive in the early 2000s when python wasn't really on the radar. The world has been slowly moving away from that, and Python is one of the most popular languages right now.
If everything written in those "obsolete" languages suddenly disappeared, the whole world would go dark.
SQL isn't a toy language, it's a domain specific language.
How is C or assembly obsolete when they are literally everywhere is beyond me
C is more obsolete than Rust. Coding directly in assembly is rare. Beyond that it's more subjective.
The C which is an integral part of every linux kernel on every computer and server running linux as the OS and all the embedded systems everywhere and almost all the performance critical parts of python libraries?
I won't have much to say about assembly since don't use it but far as I know low level parts of OS such as bootloader likely still uses assembly not to also mention embedded systems.
As long as both of these exist in embedded systems, it is just statistically weird to call it obsolete even in regards to other languages.
For instance data scientists majorly use python, but python critically depends on C and devices they use critically depend on C and assembly. Can you then really say what they do does not depend on C and assembly and python is more widely used?
Many games are still hand optimised in assembly, at least the inner loops.
Compilers are pretty damn good at doing that by now.
I can believe there's some direct assembly usage down in the depths of Unity and Unreal engines, but the average game dev is probably not going to touch it.
I’d agree that the average game dev is on Unity or unreal and won’t be hand optimizing any inner loops.
But there are a surprising amount of studios still on their own tech and there the low-level engineers definitely do (I’ve worked in the industry and have seen it first hand - and done it myself).
It also tends to be at the start of a console’s life span before the compiler and linker is mature up against the hardware.
So, the Linux kernel is already partially moved over to Rust. It's probably in the Python ecosystem too, although I can't actually say.
More obsolete was a deliberate word choice. Hell, even COBOL is still used.
yea but Rust is not above %80 of the languages in the chart. It is not just a matter of C being more obsolete than Rust it is more like C being one of the most obsolete in the chart. Can't call it that until it is replaced %80 by something else in systems that exists world-wide and everywhere.
I'd actually use some kind of projected future to define obsoleteness. Like, fossil fuels are obsolete relative to renewables, because there's going to be more going forwards even though there's more fossil fuels right now.
Athough, I have no idea if Mojo or Nim are going anywhere, and Brainfuck isn't. Maybe there's a dimension of novelty that's also flattened into that axis.
And I bet this is based in opinion and not any sort of scientific understanding because you put assembly as an obsolete language…
I read that as "directly, without a compiler", in which case it's close to fair, although I would have still put it ahead of COBOL because sometimes it's necessary.
Should it not say "machine code" then? It would still be bizarre to call it obsolete, given that it's literally the foundation of all the other languages in the chart. It's like saying letters are obsolete because we have words now.
Why? An assembler isn't the same thing as a compiler. (Although, I'm not personally sure where the dividing line is. Where would literally just an assembler with loops instead of goto classify?)
The practice of directly using assembly is relatively obsolete. To bootstrap you might have to a bit, but writing Rollercoaster Tycoon in it was already an anachronism. I'm not really sure how to fit that into your analogy, because there's no word-compilers in wide use. If voice-to-text had became that dominant, typing would be obsolete, I guess.
"Obsolete Lang" is more of a looks category, and back then most programming languages were not much dissimilar from it. Basically Assembly had to stay unstructured due to how CPUs work, while the industry moved on.
Curious how you decided what goes where, I'd hardly consider SQL a "Toy Lang" as opposed to a "System Lang"
That it's an interpreted language rather than a compiled one. Bytecode and interpreted langs get the Toy Lang treatment. At least SQL has floating points.
So, it's an almost useless dimension with misleading names? Yeah, it's a good "political compass".
That's... a really dumb definition. And why is C# right in the middle but Java's towards obsolete and toy lang? They both compile to byte code and are overall extremely similar.
Javascript is compiled, just in time.
Nearly my entire company's infrastructure is written in Python and Go so I take offense (even if I would prefer to write anything else other than Python, mostly because I like proper typing )
Did you just note Typescript, a superset of JavaScript that needs to be compiled into it, as closer to the system?
Also does it technically constitute a language? That feels like a stretch too.
Yes, TypeScript is a language by any definition.
"System" as in a distributed system I guess...?
And the chart even puts C more towards "obsolete"!
LOL, obviously this chart was made for fun!
Did the same with D's superset, betterC.
The only way Assembly will be obsolete is if there were no new chips processor models being created.
Every time a new architecture or a new instruction group is announced, it has to be bootstrapped into the C compiler.
COBOL is about as far from a "toy" as I can imagine. Almost everything corpo runs on it at some level.
Where's Latin and Summerian? 🤔
Are those programming languages?
I'm not sure "computer" was even a profession back at that time.
Just imagine any of these programming languages with keywords in Latin. One morning you're debugging a double ended queue and the next thing you know, a bit flip is being caused by a 300 year old spirit.
How is Lua further down along the Nu Lang axis than Go, Rust and Nim?
i like how you've managed to include just a single non-procedural language, and it's the most interesting one by far, and you're calling it obsolete. says a lot.
I don’t get what toy lang means?
The opposite of system language, especially as many scripting languages have "beginner" features, like a single number type instead of integers and floats, dynamic types.
I would call that a high level language. Like, the further you abstract from the hardware, the higher level the language.
Calling it a “toy” language implies that it isn’t useful. You have languages in there that are incredibly useful, like SQL, that basically run the entire internet.
Where Perl?
As a Ruby fan I’m just happy to be included for a change
a lot of suspicuously missing lisps
Was it a deliberate choice to leave JavaScript off entirely?
ECMAScript is included, which is the official JavaScript standard
I actually did miss that one. TIL.
Interesting that it's just as nu as TypeScript, despite TypeScript definitely coming after.
I roughly based the nu-obsolete scale on language features not age (or use), TypeScript is just ECMAScript with an optional type safety feature.
That's... not the whole story. TypeScript is very powerful without users noticing. The most widely used feature is probably implicit this binding in fat arrow functions, but also targeted compilation to lower ES standards. It's not just type annotations à la Python.
It's right above PHP.
That's just Java
On the off chance that you don't already know, that's a totally different thing named after the same drink.
Typescript, a language. Hah.
In what way is typescript not a language?
This is a very bad chart:
- I don't understand what Toy Lang, Nu Lang or even System Lang mean
- How are C and Assembly obsolete?
- How is C++ more obsolete than D or Go?
- PHP still powers a large portion of the internet, certainly not a "Toy Lang"
- Why is ECMAScript here and not JavaScript?
Downvoting.
This chart is easier to understand if you make the following substitutions:
- Toy Lang --> high level language (except brainfuck really is a low level toy language)
- System Lang --> low level language
- Obsolete Lang --> old programming language, regardless of obsolescence status
- Nu Lang --> newer programming language
After understanding this construction, I fail to find any humor in this.
Why is ECMAScript here and not JavaScript?
Among other things, "JavaScript" is a trademark of Oracle.

top 99 comments