The Alphabet Of Code
Ahh, the new year. What programming language to learn in 2025? I’m told the world needs COBOL programmers now more than ever. Seriously though, there’s almost too many languages to choose from. Just pick whatever feels good. For inspiration, let’s play a little game of Scattergories, name that language.
A is for Ada
Named after Ada Lovelace (considered the first programmer in history), this language was designed in 1980 explicitly for safety in large software projects.
- Other languages starting with ‘A’: AWK, ActionScript, APL, ALGOL 68, ABC, Agda
B is for BASIC
The best way to learn programming is to start simple. It doesn’t get much simpler than BASIC. In the 1970s and 1980s, it was not uncommon for an 8-bit micro home-computer to boot up into a BASIC interpreter. Many dialects of BASIC exist, and while it is a good language for absolute beginners, more experienced programmers usually regarded it as inferior and slow. Note the past tense, since BASIC has practically disappeared.
- Others: BCPL, Brainfuck, Beef
C is for … C
The C programming language famously powers the UNIX operating system, and it is not an exaggeration to say that C is the most important language in operating systems. While C can leave you feeling like a wizard, it is also notorious for critical security bugs in software.
- Others: C++, C3, C#, COBOL, Clojure, Clipper, Crystal, CommonLISP
D is for Dart
Dart is one of those really interesting technologies that just didn’t seem to take off as much as it should have. Dart is mostly used for Flutter (UI) apps on Android and iOS.
- Others: Delphi, D
E is for Erlang
Erlang is a functional programming language. It is best known for powering distributed, fault-tolerant messaging systems—think telecom switches, RabbitMQ, Whatsapp.
- Others: Elixir, Eiffel, Elm
F is for Fortran
Fortran is from the late 1950s and was historically spelled in all-caps, FORTRAN, because it pre-dates ASCII (there were no lowercase characters in computers!). Even though Modern Fortran is very different from the classical FORTRAN, it remains a much used language to this day in the field of scientific computing, driving simulations for scientific research.
- Others: FORTH, F#
G is for Go
Go was designed as an improved C. The language is quite easy to learn. It incorporates a number of novel ideas that make it stand out from the crowd of other C-like languages. It is a safe, high performance language that is well-suited for systems applications programming. Go sees a lot of uptake in the world of containerized web backend services.
- Others: Groovy, GDscript, Guile, GameMaker Language
H is for Haskell
Haskell is a purely functional programming language. If you know about monads and currying, then Haskell may be for you.
- Others: Haxe, Hack, Hare
I is for Icon
Icon is a language that offers strong string processing capabilities. As such, it is maybe best compared to Perl.
- Others: Idris
J is for JavaScript
For the longest time, JavaScript ranked the #1 most popular programming language in the world. JavaScript runs in a browser, so it’s mainly used for web applications. JavaScript oddly has nothing in common with Java, and one can only guess why it was named this way.
- Others: Java, Julia, Jai
K is for Kotlin
Kotlin is popular for Android apps. It was created as an improvement over Java, and hence builds apps that execute on the JVM. Nowadays the compiler can also build native binaries.
L is for LISP
LISP is an interpreted language that uses S-expressions (a notation (known for) using (many) parens). Original LISP dates back to the 1960s, but a modern variant is, for example, Clojure.
- Others: Lua, Logo, LLVM assembly language, LPC, Lox, Limbo
M is for MATLAB
MATLAB was created by a math professor. It has a focus on computing and numerical simulations.
- Others: Modula-2, Miranda, Mojo, ML, Malbolge
N is for Nim
Nim looks like a scripting language, but actually compiles to binary.
- Others: Newsqueak
O is for OCaml
OCaml is a modern variant of ML (Meta Language). The Rust compiler was written in OCaml, before becoming self-hosting.
- Others: Objective-C, Oberon, Odin
P is for Python
Python is an easy to learn general purpose bytecode interpreted language. Since the early 2000s it consistently ranks as one of the most popular languages. Its most striking feature: no curly braces, indentation matters. Python is a great “glue” language, but it is also popular in the world of scientific computing and AI research.
- Others: Pascal, Perl, PHP, Prolog, PL/1, PostScript, Pike
Q is for QBasic
In the 1990s, Microsoft included QBasic in releases of MS-DOS and Windows. It is a bytecode-interpreted language. QBasic is a descendant of Microsoft’s QuickBASIC (compiler) and GW-BASIC (interpreter). The language basically disappeared when Microsoft dropped support with the release of Windows 2000.
- Others: QuakeC, QASM
R is for Rust
Rust is a systems programming language designed for safety. It has a steep learning curve; even seasoned programmers may have a hard time mastering Rust. Mutability, ownership, and lifetimes are important concepts in the Rust language.
- Others: Ruby, R, Racket, Rebol, REXX
S is for Swift
Swift is Apple’s successor to Objective-C. Although the language itself is cross-platform, it mainly thrives in the Apple ecosystem; iOS, macOS.
- Others: Scala, Scheme, SmallTalk, Scratch, Simula, SNOBOL4, Scopes
T is for TypeScript
TypeScript is JavaScript with type annotations. Type annotations allow for strict type checking.
- Others: Tcl, Terse
U is for Unicon
Unicon is a successor to Icon.
V is for Visual Basic
Visual Basic is a variant of BASIC for Microsoft Windows. It is (or was) notable for its IDE (integrated development environment) where one could visually draw a window with buttons and other UI elements, and double-click to add the code. Visual Basic is discontinued (in favor of C# .NET), but the VB6 runtime is still included in Windows 11 so that existing software may still run.
- Others: Vala, V
W is for WebAssembly
The term “WebAssembly” usually refers to a cross-platform binary format that gets loaded via JavaScript and executes in a browser engine. Lots of languages nowadays may compile to target “wasm”, so you are usually programming WebAssembly in another language. That said, WebAssembly does have a text representation, and you can code in it if you really want to.
- Others: Wolfram Language
X is for x86 assembly language
There aren’t many languages starting with ‘X’, so this is a bit of a cop-out. Assembly language is the human-readable version of CPU instructions at the lowest level. Assembly languages are architecture-specific, and therefore non-portable by their very nature. Studying assembly language teaches you more about how computer codes work, and opens the gateway to reverse engineering and sage level hacking.
Y is for Ypsilon
Ypsilon is not really a language of its own; it is an implementation of Scheme. Scheme is a LISP-like functional programming language.
Z is for Zig
Zig is a (spiritual) successor to C. Like C, it is a systems programming language.