User:Rudxain/Permacomputing: Difference between revisions
add prog-lang section |
mNo edit summary |
||
| Line 9: | Line 9: | ||
*'''Sustainability'''. The most important one! | *'''Sustainability'''. The most important one! | ||
=== Programming languages === | ===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> | 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> | ||
| Line 18: | Line 18: | ||
If you're a permacomputing ''extremist'', I'd recommend more "universal" langs, which tend to be [[wikipedia:Turing_tarpit|Turing tarpits]]: | 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: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> | *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]]. | *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: | If you 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: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:Erlang_(programming_language)|Erlang]] and [[wikipedia:Elixir_(programming_language)|Elixir]] | ||
* [[wikipedia:Ada_(programming_language)|Ada]] | *[[wikipedia:Ada_(programming_language)|Ada]] | ||
==External links== | ==External links== | ||
| Line 38: | Line 38: | ||
*[[Projects:Archive everything|Archive everything]] | *[[Projects:Archive everything|Archive everything]] | ||
<references /> | |||
Revision as of 05:30, 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]
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 you care more about reliability and fault tolerance than simplicity:
External links
- Project Gemini FAQ
- "This Page is Designed to Last: A Manifesto for Preserving Content on the Web"
- UVM: Fun, portable, minimalistic virtual machine.
- etc...
See also
- ↑ https://justine.lol/cosmopolitan/
- ↑ Tunney, Justine (2022-02-27). "Lambda Calculus in 383 Bytes". Retrieved 2026-04-26.
- ↑ Tunney, Justine (2021-10-30). "SectorLISP Now Fits in One Sector". Retrieved 2026-04-26.