Principles for developing sustainable software.
In order to move beyond-open-source and worse is better design a new philsophy for developing software is needed.
- Taste
- Taste and preference are required to develop good heuristics about style and quality. Taste is best developed by practice and studying under someone who has already developed taste or studying software that exhibits great taste.
- Compression
- The real world is not one-size-fits-all. Software does not and should not have every feature demanded by users. It should have the minimal set of features required to satisfy its goals and the taste of its primary author(s).
- Budgeting
- High quality software requires constraints on excess in order to minimize complexity and stimulate creativity. Budgeting is a powerful method for achieving constraint: LOC budgets, memory budgets, performance budgets, feature budgets, dependency budgets, and release budgets in the form of Kelvin versioning or Knuth versioning.
- Cleanliness
- Every dependency is a potential liability and source of rot in the form of patches and updates or bugs. The usage of dependencies should be minimized. Where necessary, dependencies should be of very high quality with no dependencies of their own. The best dependencies are in a completed or frozen state.
- Shipping
- Real artists ship, but they don't ship junk.
incoming(3): methodprogramming languagesbeyond open source
Last update on 7E4C01, edited 1 times. 1/1thh