We need a Great Software Purge.
There are many good talks on this topic or on parts of it, but they're long:
The website obesity crisis
The reckless, infinite scope of web browsers
The thirty million line problem
Preventing the collapse of civilization
In short, our software ecosystem is awful, and it's because we're building atop all existing layers of complexity, so we inherit all their weaknesses. Fixing software requires *removing* the layers of complexity atop which everything is built, starting from the lowest levels, because the problems begin at those levels.
This ultimately means abandoning most existing software and hardware. I'm assembling thoughts about what we're going to carry forward through this abandonment, and calling it the Ark.
I am no expert on hardware, but I understand a huge problem that the Ark has to solve is that almost all of our hardware and firmware is proprietary, including our processor architectures, x86 (used in most computers) and ARM (used in smartphones and recent Apple computers). **We need open hardware.**
I have my hopes set on RISC-V. I know it's not the only open processor architecture but I single it out because it seems to be gaining traction.
9front is the OS on which I stake my hope. It is not perfect, but it is the only one I've seen that truly casts off the chains of history in pursuit of a better base.
Redox also sounds good, but there are three main reasons why I feel more hopeful about 9front than Redox:
- Redox is partially chained to POSIX.
- While I like Rust, it is a bloody massive weight to have on a kernel, and I am full of doubt about this.
- Redox doesn't seem interested in compatibility with non-x86 CPUs. I believe 9front already supports RISC-V.
It isn't urgent, but C ultimately needs to be replaced. I think there are two candidates for this: Zig and Hare.
With great sadness I fear we must choose one, since their use cases seem identical. I am not near qualified to judge.
I like Rust a lot, but I am sadly doubtful about it:
- It is bloody massive. And it is chained to LLVM. And because of its weight, I fear it will always be chained to LLVM, and will never support Plan 9.
- Much of the mass is obviously unnecessary (APIs like .is_empty()) or is legacy cruft, like the legacy macro system.
- It seems on a trajectory of increasing bloat with no end in sight.
- Its freedom flaw, as stated by the Hyperbola devs.
- I've heard complaints from good sources (ie. Drew DeVault) about its support for non-mainstream platforms.
Rust's freedom flaw
Rust: "move fast and break things" as a moral imperative
The RISC-V experience
I'm not a big fan of Go, but:
- It is not bloated! Very rare!
- It already supports Plan 9.
- It is at least more practical than C for application software. (More practical than Zig and Hare? I don't know.)
Python is a language I used to love, and still like more than other dynamic languages, however I feel it's "jumped the shark"; it is now being stuffed with inapproriate bloat, such as pattern matching (PEP 634), and has just always been a complex language.
A nice language to use, but:
- Like Rust, it is bloated and chained to LLVM, and so probably will never support any Ark OS.
- Global type inference means all compilation must be done in a single unit, which is impractical for large projects without high-end hardware. Back when I was first rewriting Didact in Crystal and it used an ORM I couldn't compile it on my VPS because it took too much fucking memory. Let me know if they solved that somehow.
I don't see any other language as a potential participant in the Ark.
subscribe via RSS