Jump to content

User:Rudxain/Permacomputing: Difference between revisions

From Consumer Rights Wiki
Rudxain (talk | contribs)
add jeffhuang:designed_to_last
Rudxain (talk | contribs)
add prog-lang section
Line 8: Line 8:
*'''Stability'''. "If it ain't broke, don't fix it". But I prefer [[wikipedia:G._K._Chesterton#Chesterton's_fence|Chesterton's Fence]].
*'''Stability'''. "If it ain't broke, don't fix it". But I prefer [[wikipedia:G._K._Chesterton#Chesterton's_fence|Chesterton's Fence]].
*'''Sustainability'''. The most important one!
*'''Sustainability'''. The most important one!
=== Programming languages ===
If you've seen [[User:Rudxain/Unix|my Unix article]], you probably already know that [[wikipedia:POSIX|POSIX]] [https://pubs.opengroup.org/onlinepubs/9799919799/idx/utilities.html utilities] are the best practical/pragmatic choice. Most notably, <code>sh</code> and [[wikipedia:C_(programming_language)|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.<ref>https://justine.lol/cosmopolitan/</ref>
[[wikipedia:Hundred_Rabbits#Permacomputing|100R]] recommends [[wikipedia:Forth_(programming_language)|Forth]].
There's also [[wikipedia:Zig_(programming_language)|Zig]], which has "reusable software" as part of its slogan. It also has good-enough C [[wikipedia:Interoperability|interop]]. However, it's still in an [[wikipedia:API#Public_API_implications|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 [[wikipedia:Turing_tarpit|Turing tarpits]]:
* The [[wikipedia:Lambda_calculus|λ-Calculus]] family is, IMO, the most minimal of all. No way to beat it!<ref>{{Cite web |last=Tunney |first=Justine |date=2022-02-27 |title=Lambda Calculus in 383 Bytes |url=https://justine.lol/lambda/ |access-date=2026-04-26}}</ref>
* The [[wikipedia:Lisp_(programming_language)|Lisp]] family is the best example of syntactical/grammatical simplicity. But some can be semantically complex.<ref>{{Cite web |last=Tunney |first=Justine |date=2021-10-30 |title=SectorLISP Now Fits in One Sector |url=https://justine.lol/sectorlisp/ |access-date=2026-04-26}}</ref>
* Any lang that has an almost 1-to-1 mapping to [[wikipedia:Turing_machine|Turing Machines]] (such as [[wikipedia:Brainfuck|Brainfuck]]), is also a good candidate, since they're easy to implement on real computers. But they can be quite slow because of their [[wikipedia:Sequential_access_memory|sequential-access memory]]. You might want a [[wikipedia:Random-access_machine|RAM]].
If care more about reliability and [[wikipedia:Fault_tolerance|fault tolerance]] than simplicity:
* 🦀 [[wikipedia:Rust_(programming_language)|Rust]]. My fav <s>and my wife, but I'm considering an affair with Zig</s>.
* [[wikipedia:Erlang_(programming_language)|Erlang]] and [[wikipedia:Elixir_(programming_language)|Elixir]]
* [[wikipedia:Ada_(programming_language)|Ada]]


==External links==
==External links==
Line 18: Line 37:
==See also==
==See also==


*[[wikipedia:Hundred_Rabbits#Permacomputing|100R]]
*[[Projects:Archive everything|Archive everything]]
*[[Projects:Archive everything|Archive everything]]

Revision as of 05:27, 26 April 2026

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!

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.[1]

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![2]
  • The Lisp family is the best example of syntactical/grammatical simplicity. But some can be semantically complex.[3]
  • 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 care more about reliability and fault tolerance than simplicity:

See also

  1. https://justine.lol/cosmopolitan/
  2. Tunney, Justine (2022-02-27). "Lambda Calculus in 383 Bytes". Retrieved 2026-04-26.
  3. Tunney, Justine (2021-10-30). "SectorLISP Now Fits in One Sector". Retrieved 2026-04-26.