less_retarded_wiki/lrs.md

61 lines
4.3 KiB
Markdown
Raw Normal View History

2021-11-03 21:47:50 +01:00
# Less Retarded Software
2022-03-27 00:57:37 +01:00
Less retarded software (LRS) is a specific kind of [software](software.md) aiming to be a truly good technology maximally benefiting and respecting its users, following the philosophy of extreme [minimalism](minimalism.md) ([Unix philosophy](unix_philosophy.md), [suckless](suckless.md), [KISS](kiss.md)). The term was invented by [drummyfish](drummyfish.md).
2021-11-04 02:59:55 +01:00
## Definition
2021-11-03 21:47:50 +01:00
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](software.md) is less retarded if it adheres, to a high-degree (not necessarily fully), to the following principles:
2021-11-22 01:14:41 +01:00
- Being made with a [**truly selfless**](selfless.md) goal of maximally helping all living beings who may use the software without any intent of taking advantage of them in any way.
2021-11-03 21:47:50 +01:00
- Trying to follow the [Unix philosophy](unix_philosophy.md) (do one thing well, use text interfaces, ...).
- Trying to follow the [suckless](suckless.md) philosophy (configs as source files, distributing in source form, ...).
2022-01-28 01:44:02 +01:00
- Being [minimalist](minimalism.md) ([single compilation unit](single_compilation_unit.md), [header-only](header_only.md) libraries, no build systems, no [OOP](oop.md) languages, ...), countercomplex, [KISS](kiss.md).
- Being [free software](free_software.md) legally but ALSO practically (well commented, not bloated and obscured etc., so as to truly and practically enable the freedoms to study, modify etc.).
2021-11-03 21:47:50 +01:00
- Being [free culture](free_culture.md), i.e. LRS programs are free as a whole, including art assets, data etc.
- Minimizing [dependencies](dependency.md), 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](float.md), 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.
2021-11-06 20:59:13 +01:00
- [Future-proof](future_proof.md), [self-contained](self_contained.md), not controlled by anyone (should follow from other points).
2021-11-03 21:47:50 +01:00
- [Hacking](hacking.md) friendly and inviting to improvements and customization.
- Built on top of other LRS technology such as the [C99](c.md) language, Unix OS, our own libraries etc.
2022-01-28 01:44:02 +01:00
- Simple permissive licensing (being suckless legally) with great preference of [public domain](public_domain.md), e.g. with [CC0](cc0.md) + patent [waivers](waiver.md).
2021-11-03 21:47:50 +01:00
- Elegant by its simple, well thought-through solutions.
2022-01-28 01:44:02 +01:00
- No [bullshit](bullshit.md) such as [codes of conduct](coc.md), tricky licensing conditions etc.
2021-11-03 21:47:50 +01:00
2022-03-26 23:59:34 +01:00
## Specific Software
2021-11-03 21:47:50 +01:00
2022-03-26 23:59:34 +01:00
The "official" LRS programs and libraries have so far been solely developed by [drummyfish](drummyfish.md), the "founder" of LRS. These include:
- [Anarch](anarch.md): Game similar to [Doom](doom.md).
- [raycastlib](raycastlib.md): Advanced 2D [raycasting](raycasting.md) rendering library.
- [SAF](saf.md): Tiny library for small portable games.
- [small3dlib](small3dlib.md): Simple software rasterizer for 3D rendering.
- [smallchesslib](smallchesslib.md): Simple [chess](chess.md) library and engine ([AI](ai.md)).
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](suckless.md) software mostly fits the LRS criteria. The following programs and libraries can be considered LRS at least to some degree:
2022-01-28 01:44:02 +01:00
2022-03-27 00:57:37 +01:00
- [brainfuck](brainfuck.md)
2022-01-28 01:44:02 +01:00
- [dwm](dwm.md)
- [OpenBSD](openbsd.md)
- [LIL](lil.md)
2022-03-27 00:57:37 +01:00
- [lisp](lisp.md)
2022-01-28 01:44:02 +01:00
- [st](st.md)
- [badwolf](badwolf.md)
- [surf](surf.md)
- [tcc](tcc.md)
2022-03-27 00:57:37 +01:00
- [vim](vim.md)
2022-03-27 14:44:41 +02:00
It is also possible to talk about LRS data formats, standards, designs and concepts as such etc. These might include:
2022-03-27 00:57:37 +01:00
- [ASCII](ascii.md)
2022-03-27 14:44:41 +02:00
- [bytebeat](bytebeat.md)
2022-03-27 00:57:37 +01:00
- [farbfeld](farbfeld.md)
- [json](json.md)
2022-03-27 14:44:41 +02:00
- [lambda calculus](lambda_calculus.md)
2022-03-27 00:57:37 +01:00
- [markdown](markdown.md)
2022-03-27 14:44:41 +02:00
- [ppm](ppm.md)
- [reverse polish notation](rpn.md) as opposed to traditional expression notation with brackets, operator precedence and other bloat
- [set theory](set_theory.md)
- [textboards](textboard.md) and [imageboards](imageboard.md) as opposed to [forums](forum.md) (no registration, no users, simple interface)
- [turing machine](turing_machine.md)