less_retarded_wiki/future_proof.md
2021-12-26 20:56:36 -06:00

15 lines
2.1 KiB
Markdown

# Future-Proof Technology
*see also [sustainability](sustainability.md)*
Future-proof technology is technology that is very likely to stay functional for a very long time with minimal to no maintenance. This feature is generally pretty hard to achieve and today's [consoomerist](consumerism.md) society makes the situation much worse by focusing on immediate profit without long-term planning and by implementing things such as [bloat](bloat.md) and [planned obsolescence](planned_obsolescence.md).
A truly good technology is trying to be future-proof because this saves us the great cost of maintenance and reinventing wheels.
Despite the extremely bad situation not all hope is lost. At least in the world of [software](software.md) future-proofing can be achieved by:
- Building on top of already well established and time-tested technology such as the [C language](c.md). Choosing to use the older standards with fewer features helps greatly as the less-feature-rich versions of languages are always more supported (for example there is many more C89 compilers than C17 compilers).
- Minimizing [dependencies](dependency.md) to absolute bare minimum. Dependencies are likely the single greatest cause of software death because if one of your dependencies dies, you whole project dies, and this goes recursively for all of the dependencies of the dependencies etc. This usually means software [libraries](library.md) but also goes for other software such as [build systems](build_system.md) and also [hardware](hardware.md) dependencies such as requiring GPU, floating point, special instructions etc.
- Practicing [minimalism](minimalism.md) and reducing complexity which minimizes the maintenance cost and therefore raises the probability of someone being able to fix any issues that arise over time.
- Making hard dependencies soft, i.e. optional. For example if your software is using GPU for real-time rendering, it should also offer a [software rendering](sw_rendering.md) option in case GPU is not present or is unsupported.
- Avoiding the hyped "modern" "feature-rich" ([bloated](bloat.md)) technology arising from the consumerist market.