💾 Archived View for yujiri.xyz › software › ark.gmi captured on 2023-04-19 at 22:54:07. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-01-29)
-=-=-=-=-=-=-
We need a Great Software Purge.
There are many good talks on this topic or on parts of it, but they're long:
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.
I think there are three candidate OSes: Helios, 9front (derivative of Plan 9), and Redox.
Helios is brand new, but it's led by the person I'd trust the most with such a project, someone with great views about software, great qualifications and a demonstrated ability to get things done, and most importantly, someone who has learned from Plan 9.
9front is the most mature, I think. But it is actually ancient, and I fear that it will suffer from having been designed before modern considerations.
As for Redox, there are two concerns I have about it:
It isn't urgent, but C ultimately needs to be replaced. I think there are two candidates for this: Zig and Hare. We'll probably end up with both coexisting. Once they're more mature I'll definitely encourage everyone to write new low-level software in them instead of C.
I like Rust a lot, but I am sadly doubtful about it:
Rust: "move fast and break things" as a moral imperative
Good things about Go:
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. And I just hate all dynamic/interpreted languages nowadays.
A nice language to use, but: