<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Harmful | Kris Yotam</title>
<link rel="stylesheet" href="../../c/site.css">
<meta name="description" content="Software, practices, and technologies I consider harmful.">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<div class="mode-container">
<input type="radio" name="theme" id="theme-auto" checked>
<label for="theme-auto" class="auto" title="Auto theme"></label>
<input type="radio" name="theme" id="theme-light">
<label for="theme-light" class="light" title="Light theme"></label>
<input type="radio" name="theme" id="theme-dark">
<label for="theme-dark" class="dark" title="Dark theme"></label>
</div>
<div class="top-bar" role="navigation">
<a href="../../index.html" title="Main page"><img src="../../c/sigma.svg" alt="Main page"></a>
<a href="../../about.html" title="About"><img src="../../c/news.svg" alt="About"></a>
<a href="#" title="Code"><img src="../../c/code.svg" alt="Code"></a>
<a href="../../pics.html" title="Photography"><img src="../../c/camera.svg" alt="Photography"></a>
<a href="#" title="Pictures"><img src="../../c/picture.svg" alt="Pictures"></a>
<a href="../../vids.html" title="Videos"><img src="../../c/video.svg" alt="Videos"></a>
<a href="#" title="Donations"><img src="../../c/beer.svg" alt="Donations"></a>
<a href="#" title="Social"><img src="../../c/elephant.svg" alt="Social"></a>
</div>
<h1>Harmful</h1>
<div class="keepws">
(<span class="bold">notes</span>
(date 2026-04-23)
(category <a href="../../notes.html">technology</a>)
(status <span class="status-growing">growing</span>)
(confidence likely)
(importance 6)
(tags software opinion))
</div>
<p class="preview">Software, practices, and technologies I consider harmful.</p>
<div class="prose">
<h4>Software</h4>
<blockquote>
"And folks, let's be honest. Sturgeon was an optimist. Way more than 90% of code is crap." — Al Viro<br>
</blockquote>
<blockquote>
"There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies." — C.A.R. Hoare, The 1980 ACM Turing Award Lecture<br>
</blockquote>
<blockquote>
"One of my most productive days was throwing away 1000 lines of code." — Ken Thompson<br>
</blockquote>
<blockquote>
"..At first I hoped that such a technically unsound project would collapse but I soon realized it was doomed to success. Almost anything in software can be implemented, sold, and even used given enough determination. There is nothing a mere scientist can say that will stand against the flood of a hundred million dollars. But there is one quality that cannot be purchased in this way — and that is reliability. The price of reliability is the pursuit of the utmost simplicity. It is a price which the very rich find most hard to pay." — C.A.R. Hoare<br>
</blockquote>
<blockquote>
"It's a curious thing about our industry: not only do we not learn from our mistakes, we also don't learn from our successes." — Keith Braithwaite<br>
</blockquote>
<table>
<tr><td>Harmful</td><td>Less harmful</td></tr>
<tr><td>Ubuntu, Fedora, Mint, Manjaro.</td><td>Gentoo.</td></tr>
<tr><td>systemd.</td><td>OpenRC.</td></tr>
<tr><td>GNU Coreutils.</td><td>sbase, Plan 9 from User Space.</td></tr>
<tr><td>cron, anacron, fcron.</td><td>scron.</td></tr>
<tr><td>Bash, tcsh, zsh.</td><td>rc, fish.</td></tr>
<tr><td>GNU autoconf/automake, CMake, imake, scons, waf.</td><td>mk, or plain old portable makefiles.</td></tr>
<tr><td>PulseAudio, PipeWire.</td><td>OSS4, ALSA (direct).</td></tr>
<tr><td>systemd-resolved, dnsmasq.</td><td>unbound, knot-resolver.</td></tr>
<tr><td>NetworkManager, systemd-networkd.</td><td>ifconfig, ip, dhcpcd.</td></tr>
<tr><td>GRUB.</td><td>syslinux, EFISTUB.</td></tr>
<tr><td>glibc.</td><td>musl, ucLibc, DietLibc.</td></tr>
<tr><td>systemd-journald, syslog-ng.</td><td>socklog, svlogd.</td></tr>
<tr><td>udev, systemd-udevd.</td><td>mdev, eudev.</td></tr>
<tr><td>elogind, systemd-logind.</td><td>seatd.</td></tr>
<tr><td>SGML, XML, YAML.</td><td>JSON, CSV, ndb(6), plain (UTF-8) text.</td></tr>
<tr><td>NFS, SMB, AFS, WebDAV.</td><td>9p.</td></tr>
<tr><td>C++, Java, Vala, D, Python, Ruby.</td><td>C, Go, Limbo.</td></tr>
<tr><td>GCC.</td><td>8c, tcc.</td></tr>
<tr><td>pthreads (POSIX threads).</td><td>CSP-style concurrency: Go, libthread, libtask, Limbo, Erlang, ...</td></tr>
<tr><td>Perl, Ruby.</td><td>rc, awk.</td></tr>
<tr><td>PCRE.</td><td>Structural Regular Expressions or plain classic/extended regexps (as used in awk, sed, grep, etc.).</td></tr>
<tr><td>GNU Screen.</td><td>tmux, dvtm.</td></tr>
<tr><td>GNU info.</td><td>Man pages.</td></tr>
<tr><td>Glib.</td><td>libc (see above), p9p's C libraries.</td></tr>
<tr><td>GTK, Qt, VxWindows.</td><td>Tk, textual interfaces.</td></tr>
<tr><td>GNOME Lock Screen, KDE Lock Screen, i3lock.</td><td>slock.</td></tr>
<tr><td>GNOME, KDE, XFCE, i3, Sway.</td><td>dwm.</td></tr>
<tr><td>Polybar, Waybar, i3bar.</td><td>dwmblocks.</td></tr>
<tr><td>Rofi, Wofi, Albert.</td><td>dmenu.</td></tr>
<tr><td>VS Code, IntelliJ, Eclipse, Sublime Text.</td><td>nvim (base), vis.</td></tr>
<tr><td>Vim, Emacs, nano.</td><td>Acme, Sam, ed.</td></tr>
<tr><td>Org-mode, Notion, Obsidian.</td><td>Emacs (vanilla + elfeed).</td></tr>
<tr><td>Nautilus, Dolphin, Thunar.</td><td>nnn.</td></tr>
<tr><td>Word, Google Docs, LibreOffice Writer.</td><td>vis, ed.</td></tr>
<tr><td>Evince, Okular, Adobe Reader.</td><td>zathura (pdf, djvu, ps, cb plugins).</td></tr>
<tr><td>Eye of GNOME, feh, sxiv.</td><td>nsxiv.</td></tr>
<tr><td>VLC, Celluloid.</td><td>mpv.</td></tr>
<tr><td>Spotify, Apple Music, YouTube Music.</td><td>mpd + ncmpcpp.</td></tr>
<tr><td>htop, glances.</td><td>btop.</td></tr>
<tr><td>Google Calendar, Outlook.</td><td>calcurse.</td></tr>
<tr><td>Newsboat.</td><td>sfeed.</td></tr>
<tr><td>Thunderbird (for Usenet).</td><td>tin.</td></tr>
<tr><td>HexChat, WeeChat, irssi.</td><td>catgirl, sic.</td></tr>
<tr><td>Slack, Discord, Teams.</td><td>IRC (catgirl, sic).</td></tr>
<tr><td>Compiz, Mutter, KWin.</td><td>picom.</td></tr>
<tr><td>notify-osd, Mako.</td><td>dunst.</td></tr>
<tr><td>Google Contacts, GNOME Contacts.</td><td>abook.</td></tr>
<tr><td>neofetch, screenfetch.</td><td>fastfetch.</td></tr>
<tr><td>PowerPoint, Google Slides, Impress.</td><td>sent.</td></tr>
<tr><td>Figma, Sketch, Canva.</td><td>inkscape, gimp.</td></tr>
<tr><td>qBittorrent, Transmission, Deluge.</td><td>rtorrent.</td></tr>
<tr><td>Mullvad app, NordVPN, ExpressVPN.</td><td>Mullvad VPN (CLI), openvpn, proxychains-ng.</td></tr>
<tr><td>1Password, LastPass, Bitwarden.</td><td>pass.</td></tr>
<tr><td>Greenclip, CopyQ, Clipman.</td><td>xclipboard.</td></tr>
<tr><td>Flameshot, Spectacle, Shutter.</td><td>scrot.</td></tr>
<tr><td>uBlock Origin hosts, Pi-hole.</td><td>Custom hosts file.</td></tr>
<tr><td>Raindrop, Pocket, browser bookmarks.</td><td>buku.</td></tr>
<tr><td>Docker Desktop, Portainer.</td><td>lazydocker.</td></tr>
<tr><td>UTF-16, UTF-32, Latin-1, other encodings.</td><td>UTF-8.</td></tr>
<tr><td>iSCSI, FCoE.</td><td>AoE (ATA over Ethernet).</td></tr>
<tr><td>PAM (Pluggable Authentication Modules).</td><td>Factotum.</td></tr>
<tr><td>Jabber and XMPP.</td><td>IRC (for IM), STOMP (for general distributed messaging).</td></tr>
<tr><td>IMAP.</td><td>SMAP (Simple Mail Access Protocol).</td></tr>
<tr><td>SQL databases.</td><td>Tutorial D, pq, BigTable, plain old hierarchical filesystems.</td></tr>
<tr><td>Subversion, aka svn.</td><td>Git, Mercurial (aka hg); hell, even CVS or plain old tarballs would be better than svn.</td></tr>
<tr><td>FreeBSD, NetBSD, Solaris.</td><td>OpenBSD.</td></tr>
<tr><td>Apache, lighttpd.</td><td>thttpd, OpenBSD's fork of apache 1.3, nginx, or best of all: don't use HTTP.</td></tr>
<tr><td>SVG.</td><td>PS (PostScript).</td></tr>
<tr><td>PDF.</td><td>PS (PostScript), DjVu.</td></tr>
<tr><td>EPUB.</td><td>DjVu.</td></tr>
<tr><td>GPL, LGPL, Apache Software License, MPL, CC.</td><td>ISC, MIT/X, BSD, CC0, public domain.</td></tr>
<tr><td>head.</td><td>sed 11q.</td></tr>
</table>
<h4>Internet</h4>
<blockquote>
"If you're not paying for the product, you are the product." — often attributed to Andrew Lewis<br>
</blockquote>
<blockquote>
"Surveillance capitalism unilaterally claims human experience as free raw material for translation into behavioral data." — Shoshana Zuboff<br>
</blockquote>
<table>
<tr><td>Harmful</td><td>Less harmful</td></tr>
<tr><td>Social media (Facebook, Twitter, Instagram, TikTok).</td><td>Forums, Usenet, IRC, federation (ActivityPub, Matrix).</td></tr>
<tr><td>Age verification.</td><td>Say no to verification.</td></tr>
<tr><td>Chrome, Edge, Safari (Chromium-based).</td><td>Ungoogled Chromium, Thorium, Brave.</td></tr>
<tr><td>Firefox (Mozilla-based).</td><td>LibreWolf, IceCat.</td></tr>
<tr><td>All of the above (GUI browsers).</td><td>nyxt, qutebrowser, surf.</td></tr>
<tr><td>Upcummies and downcummies.</td><td>Try leaving a useful comment, sluggard.</td></tr>
</table>
<h4>Finance</h4>
<table>
<tr><td>Harmful</td><td>Less harmful</td></tr>
</table>
<h4>Literature</h4>
<table>
<tr><td>Harmful</td><td>Less harmful</td></tr>
</table>
<h4>Mathematics</h4>
<table>
<tr><td>Harmful</td><td>Less harmful</td></tr>
</table>
<h4>Media</h4>
<table>
<tr><td>Harmful</td><td>Less harmful</td></tr>
</table>
<h4>Society</h4>
<table>
<tr><td>Harmful</td><td>Less harmful</td></tr>
</table>
</div>
</body>
</html>