Jump to content

User:Rudxain/Permacomputing

From Consumer Rights Wiki
Revision as of 06:55, 26 April 2026 by Rudxain (talk | contribs) (move 100R link, for style-guide compliance)

Permacomputing is a concept and movement which consists on extending the longevity of information technology (IT) devices and data preservation.

Permacomputing is the antithesis of planned obsolescence (and anything related to it) and bloat.

Permacomputing focuses on:

  • Simplicity (see KISS) and minimalism. Because "complexity bad". Though, this is not a core value, it's actually a means to an end.
  • Stability. "If it ain't broke, don't fix it". But I prefer Chesterton's Fence.
  • Sustainability. The most important one!

Why

Here's a quote from 100R (links added by me; typos corrected):[1]

Many of the tools that we thought we could rely on broke down, whether it is Apple products, or software that require subscription services, DRM, etc. As an artist you spend time developing a skill, you become a Photoshop illustrator. When your connection to the internet fails and that the software locks up, that skill that you thought was yours was actually entirely owned by someone, and can be taken away. Even though we've been paying for this sort of software for years, the moment that you can't have access to authenticate yourself that skill is gone. We didn't expect this, it scared us.

Here's one from Maxime Chevalier-Boisvert (links added):[2]

We live in a world where software is increasingly complex, and increasingly fragile as a result. It's very easy to end up in a situation where software that was working just fine a few months ago can no longer compile and run due to broken dependencies. One of the main goals of UVM is to combat the phenomenon known as "code rot" or "bit rot".

[...]

There seems to be a growing interest in retrocomputing, and that interest likely stems, in large part, because the complexity of modern computer systems and their software environment is extremely high, and there is constant unnecessary churn, which becomes exhausting. At some point, programmers just want to build, and there is a natural desire to declutter and have fun.

Jeff Huang:[3]

Bookmark after bookmark led to dead link after dead link. What's vanished: unique pieces of writing on kuro5hin about tech culture; a collection of mathematical puzzles and their associated discussion by academics that my father introduced me to; Woodman's Reverse Engineering tutorials from my high school years, where I first tasted the feeling of control over software; even my most recent bookmark, a series of posts on Google+ exposing usb-c chargers' non-compliance with the specification, all disappeared. This is more than just link rot, it's the increasing complexity of keeping alive indie content on the web, leading to a reliance on platforms and time-sorted publication formats (blogs, feeds, tweets).

Suggestions

Ideally, this should be a guide, but there is no one-size-fits-all guide to "achieve permacompute nirvana". So here's a list of my own suggestions/"guidelines":

Programming languages

If you've seen my Unix article, you probably already know that POSIX utilities are the best practical/pragmatic choice. Most notably, sh and C are the most popular, so you can assume they're portable simply because of their ubiquity. There's even a project that allows compiling C into extremely-portable executables.[4]

100R recommends Forth.

There's also Zig, which has "reusable software" as part of its slogan. It also has good-enough C interop. However, it's still in an API-unstable state, so you'll have to wait before everything is settled.

If you're a permacomputing extremist, I'd recommend more "universal" langs, which tend to be Turing tarpits:

  • The λ-Calculus family is, IMO, the most minimal of all. No way to beat it![5]
  • The Lisp family is the best example of syntactical/grammatical simplicity. But some can be semantically complex.[6]
  • Any lang that has an almost 1-to-1 mapping to Turing Machines (such as Brainfuck), is also a good candidate, since they're easy to implement on real computers. But they can be quite slow because of their sequential-access memory. You might want a RAM.

If you care more about reliability and fault tolerance than simplicity:

See also

References

  1. https://100r.co/site/weathering_software_winter.html
  2. https://github.com/maximecb/uvm/blob/778114c4adf9a928a77c3491bb8dd3c1e464fd84/doc/vision.md
  3. Huang, Jeff (2019-12-19). "This Page is Designed to Last: A Manifesto for Preserving Content on the Web". Retrieved 2026-04-26.
  4. https://justine.lol/cosmopolitan/
  5. Tunney, Justine (2022-02-27). "Lambda Calculus in 383 Bytes". Retrieved 2026-04-26.
  6. Tunney, Justine (2021-10-30). "SectorLISP Now Fits in One Sector". Retrieved 2026-04-26.