Computational systems today
If the information and communications technology (ICT) industry was purposefully following a harmful agenda, these would probably be their design principles:
- disregard for life
- disregard for the chips
- more is better
- assume limitless resources
- keep it controlled
- outsource the problem
- amplify ignorance
- obfuscate everything
- destroy communities
- achieve monopoly
While the industry is rarely discussed in this way, there are countless well-documented proofs that the dominant computational cultural paradigm greatly accelerates harm.
The properties of such systems are:
- inaccessible: greenwashing, Californian ideology, ?otherness, pseudosimplicity
- incompatible: vendor lock-in, proprietary
- inefficient: bloat, maximalism, cryptocurrency, calculation factory, cornucopianism
- rigid: monoculture, siliconization
- failing: silver bullet, planned obsolescence, wishcycling, software rot
- extractivist: attention economy, capitalism, Big Tech, neoliberalism
Permacomputing systems
The design principles of permacomputing systems are:
- Hope for the Best, Prepare for the Worst
- Care for All Hardware — Especially the Chips
- Observe First
- Not Doing
- Expose the Seams
- Consider Carefully the Interaction Between Simplicity, Complexity and Scale
- Keep It Flexible
- Build on Solid Ground
- (Almost) Everything has a place
- Integrate Biological and Renewable Resources
The properties of such systems are:
- accessible: well documented and adaptable to an individual's needs.
- compatible: works on a variety of architectures.
- efficient: uses as little resources (power, memory, etc) as possible (minimization).
- flexible: modular, portable, adapts to various use-cases.
- resilient: repairable, offline-first, low-maintenance, designed for disassembly, planned for longevity, maximized lifespan, descent-friendly or designed for descent
Some additional concerns are of indirect interest because they impose costs on the entire end-to-end process of software creation:
- it's bootstrapped from machine code without circular reasoning (bootstrappable builds)
- it's obvious what source code went into it (reproducible builds)
- it's easy to audit its source code, including all dependencies