100 Languages Speedrun: Bonus Episode 101: Programming Languages Tier List
Tags: ruby, python
Published: 2022-02-22 17:53:13

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.

* Python
* Ruby

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.

* Crystal
* JQ
* Kotlin
* Rake
* SQLite

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.

* ANTLR
* Clojure
* CSVQ
* Elixir
* Groovy
* Julia
* PowerShell
* Racket
* Ruby Z3
* SageMath
* SLY
* Verilog

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.

* D
* Gherkin
* Octave
* Perl
* R
* Raku
* Scala
* XQuery
* YueScript

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.

* Elvish
* Raku Grammars
* Wren
* Xonsh

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.

* Brat
* Coconut
* Factor
* Forth
* Haskell
* Io
* Ioke
* Logo
* Prolog
* Smalltalk

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.

* Asciidots
* Assembly
* Befunge
* ChucK
* CSS
* Emojicode
* Lingua Romana Perligata
* POV-Ray
* Thue
* WebGL
* Whenever

These aren't meant for any kind of real programming, but they're fun!

### K Tier. Kids who don't speak English.

* Ezhil
* 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.

* Awk
* BC
* Emacs Lisp
* Erlang
* Fortran
* Java
* Lua
* MoonScript
* OCaml
* Pascal
* PLY
* Rexx
* Sed
* TeX
* Tcl/Tk
* 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
* Postscript

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.

* Ada
* AppleScript
* Arc
* Arturo
* COBOL
* Go
* Janet
* M4
* newLISP
* PHP
* Pyret
* QBasic
* Quackery
* Sidef
* Tcsh
* XSLT

Total trash. They were always trash. No redeemigng qualities whatsoever.