Best of 2021

The blog posts Hacker News loved most in 2021. 1,020 posts.

Software Engineering
1001

Documents ≠ Programs

I've recently become active again on twtxt.net , the platform that puts the "social" in "anti-social social media". There is a lot of intelligent discussion to be had there, and for the past couple days a discussion has been going on about technology buzzwords and, later, unnecessary complexity on websites. I was…

1004

Introduction to WebAssembly Components

WebAssembly and WASI show great promise for the future of computing outside the browser, and the WebAssembly component model aims to improve the portability, cross-language, and composition story for Wasm. This article explains the goals of the component model, and showcases how to use tooling from the Bytecode…

1008

; Echo “Shell Injection”

This is an introductory article about shell injection, a security vulnerability allowing an attacker to execute arbitrary code on the user's machine. This is a well-studied problem, and there are simple and efficient solutions to it. It's relatively easy to design library API in such a way as to shield the application…

1009

When can glibc be built with Clang?

Updated in 2026: glibc 2.43 added experimental support for building with Clang. In September 2021, I wrote "So, dear glibc, will you be happy with my sending Clang patches?" in Build glibc with LLD 13. We have come to a turning point. In Linux Plumbers Conference 2021, at the glibc Birds of a Feather session, I asked…

1011

Big Ball of Mud (1999)

While much attention has been focused on high-level software architectural patterns, what is, in effect, the de-facto standard software architecture is seldom discussed. This paper examines the most frequently deployed architecture: the BIG BALL OF MUD

1012

Worse Is Better (2001)

The concept known as "worse is better" holds that in software making (and perhaps in other arenas as well) it is better to start with a minimal creation and grow it as needed. Christopher Alexander might call this "piecemeal growth." This is the story of the evolution of that concept.

1020

What science can tell us about C and C++'s security

There are not a lot of very strong empirical results in the field of programming languages . This is probably because there’s a huge amount of variables to control for, and most of the subjects available to researchers are CS undergraduates. However, I have recently found a result replicated across numerous codebases…