No review would be complete without an accompanying Tier List. Every Tier List uses specific criteria, and for this one the tiers are based on how much I'd recommend a language for a new project.
This absolutely is not the same as "how good is the language". For example Python 2 is one of the best languages ever made, and it goes straight into the O obsolete tier, as there's no reason to recommend it anymore.
It also does not mean that you couldn't make decent software in a bad language. For some crazy reason a lot of software we rely on was written in stupid languages like PHP, even though even the creator of PHP agrees that it's trash.
Order within each tier is not meaningful. This is programming Tier List, so languages like CSS are ranked by how well suited they are for programming, not for styling.
Tier Lists are by design opinionated and controversial. For detailed reasoning, check each article.
S Tier. Great first choice across many domains.
You're doing yourself a great disservice if you don't know one of them, and preferably both.
A Tier. Very solid choice for its domain.
There are more narrow, but they're so far ahead of competition in their domain, you should use them if applicable.
B Tier. Solid second choice languages, or first choice for a small niche.
- Ruby Z3
These are very good at what they're doing, but it's a somewhat narrow thing. Or you can use them if for some reason a higher tier language wouldn't quite work for you.
C Tier. I wouldn't really recommend, but it's not crazy.
I can definitely see why you'd use them, and it's not completely wrong, but I'd generally recommend checking some higher-tier language, they might be a better fit for what you're doing.
D Tier. Don't use in production yet. Experimental languages showing serious promise.
- Raku Grammars
These are not production ready. But they're promising, and they could be really great in a few years. Or if you're willing to suffer all early adopter problems.
E Tier. Enjoy a weekend with them, then move on.
These are very interesting languages, which I definitely wouldn't recommend for any real programming, but I'd absolutely recommend for giving them a try, to expand your horizons.
F Tier. Fun esoteric language, but definitely don't use for anything real.
- Lingua Romana Perligata
These aren't meant for any kind of real programming, but they're fun!
K Tier. Kids who don't speak English.
- Langage Linotte
- Linguagem Potigol
If you need to teach some kids programming, and those kids just so happen to only speak a specific non-English language, and if you also believe that them not knowing English is the main barrier to learning programming, then these are a valid option. I don't really believe that, but hey, maybe you do. Of these Linguagem Potigol was by far the best. I checked a lot of other non-English programming languages, but none were really doing anything new.
O Tier. Maybe it was fine once, but it's completely obsoleted by other languages.
- Emacs Lisp
- Windows Batch Files
Once upon a time, these languages were fine. Maybe even good. Using them in 2022 is a really poor idea, with much better alternatives available.
R Tier. Languages for Robots. Never meant for humans in the first place.
- JVM Assembly
- LLVM IR
These were never meant for humans, and to be honest they're not even that great for expanding your horizons.
T Tier. Trash, and It was always trash.
Total trash. They were always trash. No redeemigng qualities whatsoever.
Top comments (14)
Congrats on finishing the series! I started writing a series, I wrote 6 blog posts and I'm already tired, so doing 101+ posts is a great achievement!
Like others, I'm curious why you think Go is trash. For what Go was trying to achieve (simplicity, fast compilation, not trying to have too many features, implicit interfaces) they did it really well. I think the fact that it's so popular is because those things are attractive for many. The fact that they don't have generics is being currently solved.
That said, I never wrote more than 5 lines of Go. I only played with it to see how things work in general.
And let's hope you never have to write more than 5 lines of Go.
Great series. I must take a look at some of them in more detail. Some controversial and surprising picks in all of the tiers! If this got more eyes, surely there'd be folks with verbal pitchforks taunting you! Kudos
The endurance, to finish such a long series, is to be commended! Thanks to you, I got some new pet projects to play with, some new views and several insights.
I have to admit, back when the series was in its "30's", I started hoping for your take on Nim (and - to a lesser degree - Zig), but alas, no luck! Maybe another time... Thanks for this marathon.
I did some languages suggested by commenters like Wren, MoonScript, and YueScript. I excluded the "C++-likes" (except D I guess) as they'd need completely different criteria to judge (bonus episode 102 has all the explanations).
I definitely recommend others to give this kind of series a try. 100 is probably too much, but a series about 20 languages would be great, and definitely doable.
I’ve enjoyed the series! I’ve made use of several languages I hadn’t heard of before, including Crystal and Z3.
I sensed from the shade thrown at “corporate languages” that you weren’t a fan of Go and I hoped to read your takedown of it. I think it’s good for some things, like channels, but when I made myself use it for a few Advent of Code problems I got frustrated with its lack of expressiveness and returned to Ruby, which really is the best language for that kind of thing.
I'm very surprised to see Python in S, since you said it's 4/5, not particularly good for anything, and Ruby is far more superior than any other language in the world. Rank "S" is too high for Python and too low for Ruby.
That was ridiculous, annoying, and sometimes fun! Your style makes me and probably other readers, if they exist, hate you, but I like it, so unusual. Go is trash - you think so and you just telling it with zero tolerance. Even though Go wasn't in this series. Cool!
Python is a consistent 4/5 for more things than any other language out there. Arguably it get a whole extra tier for all the data science / NumPy / Pandas / Jupyter stuff it does, where it completely blows out the competition (R, Matlab etc.).
There's a lot of things Ruby is somewhat better than Python (like web servers, Unix scripting, DSLs etc.), but there are also some things where Ruby is basically a no-show, and Python completely dominates its whole competition. They're in S tier for different reasons, and I don't think any of the other reviewed languages belongs there.
I plan to do one more bonus episode with series retrospective where I'll explain why I chose the languages I did.
Hey Tomasz, loved the series and the passion you put into it. I could have never pulled it together!
Thanks and keep up the good work!
You can read in episode 102 why certain languages weren't included.
Btw, what's the next speedrun going to be?
I have a few ideas. Stay subscribed to find out.
@taw : how could this possibly be a serious list when Rust isn't being listed at all ?
The selection of languages is explained in the final episode.