83 shaares
5 private links
5 private links
This article from 1995 is just as relevant today. Just convert the KBs to MBs and MBs to GBs.
Some of the author's identified causes of software bloat:
- user-friendliness (with graphical elements)
- measuring power of software by its number of features
- misinterpreting complexity as sophistication
- profitability of customer support contracts
- lack of interest in refining existing software
- time pressure to ship faster than one's competitors
- using C instead of languages with good abstractions (i.e. object-oriented ones)
Niklas Wirth was involved in the design and implementation of a new system called Oberon (using a programming language derived from Modula-2) in hardware, meant for worstations.
Three underlying tenets of the Oberon system
- Concentrate on the essentials
- Use a type-safe object-oriented programming language
- Extensible using new data types
Oberon's core is only 200 Kilobytes, including the editor and compiler. It loads modules on demand and every module is in memory at most once.
This was achieved by carefully designing the modules and iteratively refactoring them.
9 lessons learnt building Oberon:
- Use a strongly typed language
- Module hierarchy design with the least duplication
- Type extension
- Identify primitives and avoid their proliferation
- Designing a system that can be understood in its entirety by an individual
- Keep the team size small to avoid communication problems
- Try to keep complexity low at every step of the process
- Programmers participating in all aspects of the development and dogfooding
- Not publishing programs until they are of publication quality