Programming Languages Worth Learning
12 December 2024
A programming language that doesn't change the way you think is not worth learning.
- Alan Perlis, "Epigrams in Programming"
What are programming languages worth learning, then? I've been thinking a little bit about this, lately, and I think I have found a list (from lower level to higher level, and then somewhat circling back):
- Assembly: Shows you the lowest level of communication with a computer
- C: Shows you how to think in terms of loops and if conditions
- Python: Shows you how to use a higher-level, scripting, dynamic language
- Java: Shows you object orientation, garbage collection, and a VM runtime
- Go: Shows you concurrency using goroutines
- Erlang: Shows you resiliency on distributed systems
- Scheme: Shows you about Lisp, which shows you first-class functions, code-as-data, recursion, etc, etc, etc...
- Haskell: Shows you pure functional programming
- Rust: Shows you ownership, lifetimes, and somehow circles back to C
Some obvious languages are left out. You don't need to learn C++ if you already learned C, Java, and Rust; you don't need C# if you have Java; you don't need Perl or Ruby if you have Python; you don't need Ada or D if you have Rust.
Other languages (Prolog and Forth come to mind) I don't know enough about to include them in the list. Will do.
Please note that I'm also leaving out languages that I like: Clojure and Racket because of Scheme, Scala and Kotlin because of Java, Elixir because of Erlang.
Thoughts?
Made in Mexico with Free Software. Licensed under CC BY-SA.