Software
About six decades ago, some schmuck figured out how to talk to rocks1 and now we all have to deal with the consequences.
I appreciate simplicity, but I’m not a “minimalist”. I believe in keeping code simple and small while actually solving problems for the end user in a meaningful way.
The greatest enemies to good technology are egocentrism, elitism, and rampant complexity.
“An idiot admires complexity, a genius admires simplicity. A physicist tries to make it simple. Anyway, an idiot; anything the more complicated it is, the more he will admire it. If you make something so clusterfucked he can’t understand it, he’s gonna think you’re a god ‘cause you made it so complicated nobody can understand it. That’s how they write journals… in academic journals. They try to make it so complicated people think you’re a genius.”
“Noise comes with sophistication.”
References
- Invention of the integrated circuit, Wikipedia
- Terry Davis' TempleOS Brutal Take Down (sic) of Linus Torvalds, Terry Davis Old Archive on YouTube
- Google Executive frustrated by Java, C++ Complexity, New York Times
“considered harmful”
Some people pride themselves in their disagreeability. I’m not into that kind of thing, but I have no problem getting preachy.
I have personal objections to a lot of common software applications (as in programs but also online services and whole languages). I would like to promote (subjectively) better alternatives to such applications. These are my personal recommendations, and they may not be the best alternatives for your use case. YMMV
| instead of | consider |
|---|---|
| arch linux | alpine, gentoo, void linux, dérive |
| fedora silverblue, ubuntu, pop!_os | fedora workstation, linux mint, devuan |
| omarchy | just buy a mac |
| hyprland | mangowc, wayfire, niri |
| fish | mksh |
| bluesky, threads, twitter | the fediverse, rss/atom, going outside |
| Brave, Opera GX | Zen Browser, Floorp, or just plain old Firefox |
| bootstrap, PureCSS, WordPress, Jekyll | min, crew, housecat, werc |
| LaTeX | groff, Plan 9's troff, Neatroff, or typst |
| discord, root, stoat | fluxer, or a normal messenger like Signal or Telegram |
| Searx/SearXNG | 4get, omnisearch |
| cursor, visual studio code, neovim | vim, emacs, micro, zed |
| cmake, meson, ninja | mate.h, muon, samurai, wait... why not just a Makefile? |
| python | sh/sed/awk, or Go |
| coc.nvim | ale |
| snap | flatpak |
| AppImages | AppBundles, static binaries, or just plain old tarballs |
| substack, medium | going outside |
| yaml, ini, XML | json, toml |
some technologies I find so unpleasant that I’m not sure they even have a meaningful niche:
- Anything AI-centric or “Agentic”, including but not limited to:
- AI Web browsers
- Copilot, Claude Code or anything similar
- Proof-of-Stake cryptocurrencies
- Spacemacs and DOOM Emacs
- UML
- WASM, WebGL
if this sounds incredibly presumptuous of me, please message me and help me out, because I’m lost.
goto
I am fond of goto in the C programming language. I think most developers fear it irrationally
“I think goto’s are fine” - Linus Torvalds
See also: The case for goto by Srcerer on YouTube
suckless
“this suckless approach of obsessing over "bloat” and ESPECIALLY trying to quantify it is just turbonerdery" - message found in a dump of logs from #cat-v
“minimalism is a scam by big small to sell you more less” - Gunshy
suckless badly imitates pikestyle and other styling advice, so much of their code is much harder to read than it should be.
suckless is right about systemd.
some several years ago they were involved in some weird right-wing crap. one of them incoherently ranted about “cultural marxism” when questioned about it.
rust

Credit: analognowhere
Like any project worth its salt, Rust’s community is full of egocentric people. To the Archetypical Rust Programmer, other languages are only obstacles to overcome. This fictional insane programmer also conveniently ignores that Rust entirely depends on a backend written in C++.
neovim
Stop calling it vim! They are NOT the same thing!
X11, Wayland
Rob Pike was right.

X.org is elderly and morbidly obese. The solution? Wayland, I guess.
The Good
- actually has more than a single implementation so you’re not stuck with one slop display server
- the window manager is the display server. Yes, this has always been the better way to do it (see: rio)
- a wayland display server is much smaller than the Xorg server
The Bad
- inconsiderate, Linux-first design (though compatibility has improved on BSD systems)
The Ugly
- half of the entire protocol, as well as extensions, are specified in XML and generated from that XML with a Python script (what the actual fuck?)
see: wayland.xml, How does wayland work?
Wayland could be better than X11 in every way, but this is the real world. Stability is on Wayland is a mixed bag, and the bugs I experience with it remind me of when I used Linux as a teenager. Much of the ecosystem in Wayland is simply better than X11’s (all X terminal emulators are terrible), but a lot of it is still beta-quality crap. “Legacy” programs, i.e. the programs everyone still runs daily, are especially not consistent.
I would love to see a Wayland compositor that uses a 9p filesystem like wmii does.
X11 sucks!
X was never a good protocol: The UNIX world bet everything on how desktop graphics would work in the future, and they lost it. We still suffer the consequences many decades later. It’s time to stop.
Recommended Reading
- wayland.fyi minimalist wayland special interest group [sic]
sudo
sudo is awful big for what most people use it for. apparently it has some advanced features that some administrators are real thankful for, but the typical user will never know.
did you know that the sudo project’s mascot is a sandwich?

/etc/sudoers is way harder to read than anything should ever be, especially given its importance to big vital infrastructure. this is such a problem that they scream at you not to edit sudo’s configuration directly, but instead through visudo so nothing will save if there are errors.
most people would do just fine without sudo and with something simpler and easier to use like doas from OpenBSD.
a sudoers file can be hundreds of lines long on a fresh install of Ubuntu. this, however, is my entire OpenDoas /etc/doas.conf file:
permit nopass :wheel
…not only is this easier to read than
%wheel ALL=(ALL) NOPASSWD: ALL
…but the entirety of the OpenDoas config is one line on my machine, whereas this would be one among tens or hundreds of lines in sudo.