Programming avant-garde

  2024-10-31

Programmers know the giants who laid our technological foundations, such as Donald Knuth, John McCarthy, Niklaus Wirth, Edsger Dijkstra, Ken Iverson, Leslie Lamport, Guido van Rossum, Fabrice Bellard, and Linus Torvalds. Their work stood the test of time and became mainstream.

On the shoulders of these giants stands the next generation of explorers who are finding new ways of thinking about programming. This article mentions four less-known programmers and thinkers whose work interests me and who I consider programming avant-garde.

Edward Kmett

Edward Kmett is a household name in the Haskell community. He authored over a hundred Haskell packages and is best known for his work on the lens package. Lenses transformed the Haskell ecosystem, giving Haskellers a new, powerful language for expressing data manipulation based on a coherent mathematical structure John Wiegley’s Putting Lenses to Work talk is an excellent introduction to the topic. .

Edward is one of the rare people interested in applying decades-old mathematical insight to everyday programming. He is a board member of the Topos Institute—a non-profit organization that bridges advanced mathematics and science.

Edward is a regular guest at ZuriHac, the biggest Haskell hackathon in the world. He hosts an unofficial conference track, scribbling diagrams on a whiteboard for hours and enthusiastically explaining something to half a dozen nodding disciples.

If you want to learn more about Edward and his work:

Casey Muratori

Casey Muratori is a software engineer who knows how to build software that doesn’t suck. He credits many of his insights to his apprenticeship at RAD Game Tools company and interaction with Jeff Roberts and John Miles.

In 2014, Casey started the Handmade Hero project to live-stream the development of a game engine in C from scratch for education and later reflection. The audience response was overwhelming: hundreds of people attribute their career starts to Casey’s streams. The project spawned the Handmade Movement, a community of programmers who enjoy building great software from scratch The suckless tools project has a similar philosophy but is grounded in the UNIX ecosystem.. Currently, Casey distills the treasure trove of knowledge buried in hundreds of Handmade Hero episodes into a course on performance-aware programming.

Casey also recorded many insightful talks:

If you want to learn more about Casey’s journey, listen to episode 27 of the Game Engineering podcast and episode 62 of the Corecursive podcast.

Aaron Hsu

Aaron Hsu is a computer scientist who researches approaches to writing, teaching, and thinking about software engineering. He started his path as a Scheme enthusiast, but his views changed significantly when he discovered the apl programming language and fell in love with the array programming paradigm.

Aaron’s most inspiring work is Co-dfns, a self-hosted apl compiler that runs on gpu. This project excites me for several reasons:

The following resources cover more of Aaron’s work and views:

Bret Victor

Bret Victor is an interface designer with a unique perspective on computing. He started his career as an electrical engineer and worked on musical equipment. After a few years in the industry, he found his true calling—designing machine-human interfaces.

Bret doesn’t consider himself a software engineer, but he wrote a lot of fine software for his design experiments. These experiments resulted in talks that became folklore; these talks move you deeply and make you yearn for better tools.

Currently, Bret focuses on building Dynamicland, an interactive physical environment for idea exploration powered by the Realtalk operating system. He talks about his path in episode 109 of the Catalyst podcast. His website, worrydream.com, links to his other projects and essays A Brief Rant on The Future of Interaction Design is one of my favorites; I find the interface of modern phones deeply unsatisfying. Magic Ink is also a classic. .

Many more programmers deserve to be on that list, including Mike Acton, who popularized and democratized data-oriented design; Leonardo de Moura, the author of z3 smt solver and the Lean theorem prover; and Andrew Kelley, the designer of the Zig programming language. I didn’t cover their work in detail to keep the article short.

These people inspire me to find my path in computing. They remind me to seek a deeper meaning in my daily work and focus on things that make a difference instead of treading water. And they show how diverse, deep, and interesting our profession can be.