- Revisiting "Let's Build a Compiler" (9 December 2025)
- How One Uncaught Rust Exception Took Out Cloudflare (20 November 2025)
- The smallest embeddable scripting language, part 1 (29 July 2025)
- Designing your own node-based visual programming language (14 June 2025)
Java at 30: The Genius Behind the Code That Changed Tech (15 May 2025) From trash-diving teen to tech pioneer, James Gosling's pragmatic genius shaped three decades of Java and modern computing.
A Blast From The Past (14 April 2025) The UCSD p-System, Apple Pascal, and a dream of cross-platform compatibility never quite realized
- What to expect from CHICKEN 6 (18 November 2024)
- Pike Programming Language (2 October 2024)
- The White House Memory Safety Appeal Is A Security Red Herring (29 February 2024)
- Rust Won’t Save Us: An Analysis of 2023’s Known Exploited Vulnerabilities (6 February 2024)
- How bad is LLVM really? (18 January 2024)
- Discussing Forth, C, CGI, Python, Go, and AWK on Stray Pointers (January 2024)
- An Internet of PHP (4 September 2023)
- Transpiler, a meaningless word (15 August 2023)
- A love letter to make (19 April 2023)
Learn a language by writing too many Forths (5 July 2022) What I've been doing with Ripen.
- The Myths of Fortran (21 March 2022)
A love of languages (9 March 2022) I disagree with the specifics, but the spirit of this post very much describes me.
In defense of complicated programming languages (23 January 2022) I don't agree with all of it; there's fundamental complexity and accidental complexity, and it's all too easy to add the latter while thinking it's the former. Also, if you spend all your energy wrangling your tools, you won't have any left for solving the actual problem. But the main point stands.
- Why PHP Is Getting a Foundation and Why That Matters (26 November 2021)
- A Lasting Legacy: Thoughts on COBOL (Autumn 2021)
- Enumerating and analyzing 40+ non-V8 JavaScript implementations (21 September 2021)
- Monkey: the satirical Go package used unwittingly by Arduino and SalesForce (30 August 2021)
Parser generators vs. handwritten parsers: surveying major language implementations in 2021 (21 August 2021) Short version: a surprising number of compilers and interpreters use hand-written parsers, even some I didn't expect to. And it tends to speed things up as a general rule.
- Against SQL (9 July 2021)
- An Apology to COBOL: Maybe Old Technology Isn’t the Real Problem (March 2021)
Julia: A Post-mortem (7 March 2021) In the end, code doesn’t make software – people and communities do.
(emphasis mine)
- Unix Shell: Philosophy, Design, and FAQs (26 January 2021)
- Java 1.0 Turns 25 (23 January 2021)
- Lua, a misunderstood language (15 January 2021)
- Giving Ada a Chance (13 January 2021)
- TIME for a WTF MySQL moment (4 October 2020)
- Line Numbers in Fortran, Cobol, Joss, and Basic (19 September 2020)
Built to Last (31 August 2020): When overwhelmed unemployment insurance systems malfunctioned during the pandemic, governments blamed the sixty-year-old programming language COBOL. But what really failed?
- PHP Marks 25 Years (9 June 2020)
- Unemployment checks are being held up by a coding language almost nobody knows (14 April 2020)
- 10 Most(ly Dead) Influential Programming Languages (25 March 2020)
Rust, A Game Review (7 June 2019) Disclaimer: As a mod of /r/rust, I see a lot posts and comments confusing the game with the programming language. So I decided to write this humorous take.
A Look at the Design of Lua (1 November 2018) Simplicity, small size, portability, and embeddability set Lua apart from other scripting languages.
- Garbage collection and the underappreciated power of good enough (15 October 2018)
- The design side of programming language design (12 September 2017)
- What do people mean when they say “transpiler”? (30 July 2017)
- Exponentiation Associativity and Standard Math Notation (23 August 2016)
Have you considered Rewriting It In Rust? (22 March 2016): this is satire, by the way.
- Contempt Culture (16 December 2015)
- This Is Not Your Father’s FORTRAN (26 October 2015)
- Why Python, Ruby, and Javascript are Slow (28 February 2013)
And some really old links:
- PHP is much better than you think (4 July 2012)
- PHP: a fractal of bad design (9 April 2012)
- Why did Prolog lose steam? (31 August 2010)
Its declarative lunch was partly eaten
- GitHub Stats on Programming Languages (9 August 2010)
- Where Tcl and Tk Went Wrong (30 March 2010)
- What is Hecl, and why I'm writing it (15 March 2006)
Python
- CLI tools hidden in the Python standard library (28 June 2023)
- What's the deal with CPython, Pypy, MicroPython, Jython...? (27 June 2023)
- Cython is 20! (4 April 2022)
- Python finally offloads some batteries (16 March 2022)
- Python: Please stop screwing over Linux distros (16 November 2021)
- Where does all the effort go? Looking at Python core developer activity (18 October 2021)
Python in 2021: The Good, The Bad, and the Ugly (2 September 2021) Then again, that's why I refuse to use pip and stick to the operating system's package manager, or at most setup.py. Of course installing libraries from different sources, most of which are unaware of the specifics of your system, will mess things up. Be reasonable. Oh, and learn to keep your addiction to dependencies under control already.
- Running Python in the Browser (22 May 2019)
- New Zine "Playing With Python: Two of My Favorite Lenses" (15 October 2016)
- Python Software Foundation News: Python trademark at risk in Europe: We need your help! (February 2013)
Perl, Awk, sed
- Eskild Hustvedt’s joy rediscovering Perl (16 November 2025)
- We were wizards — a foreword to Learning Perl (15 March 2024)
- Fascination with AWK (March 2023)
- The reports of Perl’s death have been greatly exaggerated (19 October 2021)
- Awk: The Power and Promise of a 40-Year-Old Language (19 May 2021)
- On the Decline of Perl [external factors] (27 March 2021)
- The state of the AWK (19 May 2020)
- Using AWK and R to parse 25tb (4 June 2019)
- A Brief History of sed (4 January 2018)
- Awk in 20 Minutes (15 August 2015)
C and C++
- Writing C for curl (7 April 2025)
The two factions of C++ (24 November 2024) The dream of a single dialect-free C++ has probably been dead for many years, anyway.
- Having fun with modern C++ (2 November 2024)
- Why Not Just Do Simple C++ RAII in C? (21 May 2024)
Vala: the smoothest C off-ramp (13 April 2024) Using Vala to rewrite old C code
- C++ safety, in context (11 March 2024)
- C23: a slightly better C (21 January 2024)
- Compiling History: A brief tour of C compilers (4 January 2024)
Bjarne Stroustrup’s Plan for Bringing Safety to C++ (29 October 2023) At the CppCon C++ conference, the C++ creator identified the specific kinds of safety measures sorely needed in the programming language.
- Why I still like C and strongly dislike C++ (26 May 2021)
Rust, Zig, and the Futility of "Replacing" C (27 February 2021) They let ideology come before pragmatic engineering.
- C++ Creator Bjarne Stroustrup Weighs in on Distributed Systems, Type Safety and Rust (2 August 2020)
- C Portability Lessons from Weird Machines (15 November 2018)
- “Modern C++” != “New(est) Standard” (22 August 2018)
- Should C Programmers learn C++, Go or Rust? (30 July 2018)
- Curl is C (27 March 2017)
And a really old one: C as an intermediate language (30 September 2012)
Go
- Go is not an easy language (22 February 2021)
- Learn Go in ~5mins (January 2021)
Errors vs. exceptions in Go and C++ in 2020 (December 2020) Why and how exceptions are still better for performance, even in Go