When assessing software, we should pay attention to:

  • Is it free from blackbox dependencies such as arbitrary external servers when running, compiling or installing it? Does it tolerate a lack of network connectivity?
  • Is it legally possible to copy, modify and fork the software? (i.e. is it FLOSS?)
  • What kind of libraries, programming languages and other software components does it depend on? How mature are these components (i.e. how much software rot can be expected due to changing interfaces etc.)? How large is the dependency network?
  • How much resources does it require to 1) run the software, 2) modify the software (including recompilation from scratch) and 3) bootstrap the smallest possible environment (including the operating system) that can be used to run and develop the software?
  • Are there other software that do the same job? How easy would it be to transition to one of them?
  • How simple and clearly-defined is the core functionality of the software? How long would it take to write an equivalent software from scratch?

Software Freedom

Software freedom is the freedom to run the program as you wish, for any purpose, to study how the program works, and change it, to redistribute copies and your modified versions so you can help others.

If the new software no longer runs on old hardware, it is worse than the old software.

Types of software

Twee Editors

A twee editor is a [text-editor|text editors] that is the minimum size for a functional editor, without compression. Twee editors are usually very compact, but at the cost of accessibility.