# Finished

A finished project is completed, working and doesn't need regular maintenance, it serves its users and doesn't put any more significant burden of development cost on anyone. A finished project is not necessarily perfect and bugless, it is typically just working as intended, greatly stable, usable, well optimized and good enough. In a sane society (such as lrs) when we start a project, we are deciding to invest some effort into it with the promise of one day finishing it and then only benefiting from it for evermore; however under capitalist's update culture nothing really gets finished, projects are started with the goal of developing them forever so as to enslave more and more people (or, as capitalists put it, "create jobs" for them), which is extremely harmful. Finished project often have the version number 1.0, however under capitalist update culture this just a checkpoint towards implementing basic features which doesn't really imply the project is finished (after 1.0 they simply aim for 2.0, 3.0 etc.). **Always aim for projects that will be finished** (even if potentially not by you); sure, even in a good society SOME projects may be "perpetual" in nature -- for example an encyclopedia that's updated every 5 years with new knowledge and discoveries -- however this should only be the case where NECESSARY and the negative effects of this perpetual nature should be minimized (for example with the encyclopedia we should make the update span as large as possible, let's say 5 years as opposed to 1 year, and we should yield a nice and tidy release after every update).

Examples of projects that have been finished are:

- Collapse OS
- Anarch
- Old video games, especially those for game consoles distributed on physical media such as cartridges or CDs. When for example a GameBoy game was released back then, it had to work as the user would buy the cartridge whose content couldn't be updated over the Internet, if there was a bug, it was there forever.
- ...

**How to make greatly finishable projects?**

- Make a plan and stick to it, have a goal for what the project should look like when finished, have a roadmap (even if only in your head). I.e. don't aim for "creating a good text editor", aim for "creating a text editor with features X, Y, Z that's written in under N lines of code".
- Only use time-tested suckless/LRS future proof technology that's itself finished, for example the C99 language.
- Keep it simple, minimize dependencies (there are often the cause for the need of maintenance), adhere to extreme minimalism. See also portability.
- TODO