4.3 KiB
Less Retarded Software
Less retarded software (LRS) is a specific kind of software aiming to be a truly good technology maximally benefiting and respecting its users, following the philosophy of extreme minimalism (Unix philosophy, suckless, KISS). The term was invented by drummyfish.
Definition
The definition here is not strict but rather fuzzy, it is in a form of ideas, style and common practices that together help us subjectively identify software as less retarded.
Software is less retarded if it adheres, to a high-degree (not necessarily fully), to the following principles:
- Being made with a truly selfless goal of maximally helping all living beings who may use the software without any intent of taking advantage of them in any way.
- Trying to follow the Unix philosophy (do one thing well, use text interfaces, ...).
- Trying to follow the suckless philosophy (configs as source files, distributing in source form, ...).
- Being minimalist (single compilation unit, header-only libraries, no build systems, no OOP languages, ...), countercomplex, KISS.
- Being free software legally but ALSO practically (well commented, not bloated and obscured etc., so as to truly and practically enable the freedoms to study, modify etc.).
- Being free culture, i.e. LRS programs are free as a whole, including art assets, data etc.
- Minimizing dependencies, even those such as standard library or relying on OS concepts such as files or threads, even indirect ones such as build systems and even non-software ones (e.g. avoiding floating point, GPU, 64bit etc.).
- Very portable, non-discriminating, i.e. being written in a portable language (C etc.), using as little resources as possible (RAM, CPU, ...) and so on.
- Future-proof, self-contained, not controlled by anyone (should follow from other points).
- Hacking friendly and inviting to improvements and customization.
- Built on top of other LRS technology such as the C99 language, Unix OS, our own libraries etc.
- Simple permissive licensing (being suckless legally) with great preference of public domain, e.g. with CC0 + patent waivers.
- Elegant by its simple, well thought-through solutions.
- No bullshit such as codes of conduct, tricky licensing conditions etc.
Specific Software
The "official" LRS programs and libraries have so far been solely developed by drummyfish, the "founder" of LRS. These include:
- Anarch: Game similar to Doom.
- raycastlib: Advanced 2D raycasting rendering library.
- SAF: Tiny library for small portable games.
- small3dlib: Simple software rasterizer for 3D rendering.
- smallchesslib: Simple chess library and engine (AI).
Apart from this software a lot of other software developed by other people and groups can be considered LRS, at least to a high degree (there is usually some minor inferiority e.g. in licensing). Especially suckless software mostly fits the LRS criteria. The following programs and libraries can be considered LRS at least to some degree:
It is also possible to talk about LRS data formats, standards, designs and concepts as such etc. These might include:
- ASCII
- bytebeat
- farbfeld
- json
- lambda calculus
- markdown
- ppm
- reverse polish notation as opposed to traditional expression notation with brackets, operator precedence and other bloat
- set theory
- textboards and imageboards as opposed to forums (no registration, no users, simple interface)
- turing machine