Subject: All *ware Sucks From: keiya@sdf.org Date: Sat, 23 Jun 2018 12:02:45 -0500 Every so often I get pissed and swear I should throw out all hardware and software I didn't build or write myself because it's all terrible. All of it. It all sucks. Yes, even your favorites. suckless.org is my favorite example of software that doesn't actually suck less - dwm use a Turing-complete, pointer-mangling, memory-leaking language for *configuration* for Lovelace's sake. C in general is a huge source of problems, because it's perfectly suited to writing system software on the PDP-11, but people use it for literally everything BUT that. (Even the places still running PDP-11s - Canadian nuclear power plants for example - tend to work in assembly.) And hardware, ugh. Don't get me started! The Intel architecture is a towering pile of hacks and kludges, none of which can even theoretically go away because binary compatability is king. A chip fabbed last week STILL boots up thinking it's the 1970s and it's an 8086. And worse, even once you get it up and running in long mode, the instruction set is still *nothing* like how the processor actually works, because that compatability means we cling to being able to pretend to be a fast PDP-11 despite the fact that's not remotely how execution works. That's why we get shit like Spectre and Meltdown. "But what about non-Intel stuff?" I hear you ask? Well, let's see what's actually in reach for individuals: some microcontrollers, and ARM. Most of the microcontrollers actually seem pretty okay at doing what they're designed for, but what they're designed for isn't really general-purpose computing. It's doing all the small, weird, but vital tasks assorted devices like cars and thermostats and such do. ARM though, can totally go up against Intel architectures for most purposes. It does scale better than x86-64, and it's not *as* bad, but the high-performance cores still do out-of-order execution rather than allowing the compiler to figure out what to do while it has access to what the programmer meant. Really, the only thing stopping me is the fact that I know all too well that things I build and write myself suck just as much, if not worse. ~ Keiya