SWESPOT

Programming Languages

The languages you are most likely to be paid to write, what each one is genuinely good at, and the trade-off it made to get there.

27 articles

C#

Listed inC#Programming Languageson

Java's closest peer with a better track record on language design, and .NET as a genuinely good runtime.

Beginner7 minDraft
#enterprise

Fortran

Listed inFortranProgramming Languageson

Alive and well in HPC and scientific computing, where the numerical libraries have a fifty-year head start.

Intermediate5 minDraft
#legacy
#data

PHP

Listed inPHPProgramming Languageson

Runs an enormous share of the web and has modernised far more than its reputation admits.

Beginner7 minDraft
#web

Dart

Listed inDartProgramming Languageson

The language behind Flutter, which is very nearly the whole reason to learn it.

Intermediate6 minDraft
#mobile

Clojure

Listed inClojureProgramming Languageson

A Lisp on the JVM built around immutable data and a small core that has barely needed to change.

Advanced8 minDraft
#functional
#jvm

Java

Listed inJavaProgramming Languageson

Verbose, fast, and entrenched across large enterprises — where the JVM underneath is the real product.

Beginner8 minDraft
#jvm
#enterprise

COBOL

Listed inCOBOLProgramming Languageson

Still processing a large share of the world’s banking and insurance transactions, maintained by a shrinking population.

Intermediate6 minDraft
#legacy

C++

Listed inC++Programming Languageson

Zero-cost abstractions over C, plus four decades of accumulated features no single codebase uses all of.

Advanced10 minDraft
#systems

Scala

Listed inScalaProgramming Languageson

Functional programming on the JVM, expressive enough to build a dialect of your own inside it — for better and worse.

Advanced8 minDraft
#jvm
#functional

Haskell

Listed inHaskellProgramming Languageson

Pure, lazy, and strongly typed — worth learning mostly for what it permanently changes about code you write elsewhere.

Advanced9 minDraft
#functional

TypeScript

Listed inTypeScriptProgramming Languageson

A structural type system over JavaScript, erased at build time — now the default for new web codebases.

Beginner8 minDraft
#web
#types

Perl

Listed inPerlProgramming Languageson

The web's original glue language. You will meet it in scripts nobody has opened since 2009.

Intermediate5 minDraft
#legacy

C

Listed inCProgramming Languageson

The portable assembler the rest of computing is built on, and the reason buffer overflows are a genre.

Intermediate8 minDraft
#systems

Kotlin

Listed inKotlinProgramming Languageson

The default for Android and a pleasant JVM backend language — Java with the ceremony removed.

Intermediate7 minDraft
#mobile
#jvm

Zig

Listed inZigProgramming Languageson

A C replacement with no hidden control flow, no preprocessor, and compile-time execution instead of macros.

Advanced7 minDraft
#systems

Julia

Listed inJuliaProgramming Languageson

Scientific computing at close to C speed with a high-level feel, when the ecosystem covers your problem.

Advanced6 minDraft
#data

Rust

Listed inRustProgramming Languageson

Memory safety without a garbage collector, paid for with a borrow checker that argues with you until the code is right.

Advanced10 minDraft
#systems

Swift

Listed inSwiftProgramming Languageson

Apple's language for iOS and macOS — modern, safe, and effectively mandatory on that platform.

Intermediate8 minDraft
#mobile

Python

Listed inPythonProgramming Languageson

The default for data, scripting, and automation — readable, batteries included, and slow in ways that usually do not matter.

Beginner8 minDraft
#general-purpose
#data

R

Listed inRProgramming Languageson

Built by statisticians for statistics: unbeatable for analysis and modelling, awkward for everything else.

Intermediate6 minDraft
#data

Go

Listed inGoProgramming Languageson

A deliberately small language with fast builds and cheap concurrency, designed so a large team can read anyone else’s code.

Intermediate8 minDraft
#backend
#concurrency

Assembly

Listed inAssemblyProgramming Languageson

Rarely written, occasionally read — when the profiler or the debugger drops you to instructions and you have to follow.

Advanced7 minDraft
#systems

Ruby

Listed inRubyProgramming Languageson

Optimised for programmer happiness, and still the fastest route from idea to a working product via Rails.

Beginner7 minDraft
#web

Elixir

Listed inElixirProgramming Languageson

Ruby-flavoured syntax on the Erlang VM — the shortest path to fault-tolerant, massively concurrent systems.

Advanced8 minDraft
#backend
#concurrency

Lua

Listed inLuaProgramming Languageson

Tiny, fast, and embeddable — the scripting layer inside games, Neovim, Redis, and a lot of network gear.

Intermediate6 minDraft
#embedded