As a theoretical concept, imagine there's a "set of all problems". For each problem in the set of all problems, there's a natural solution. This is the most obvious solution - the solution that most people without any programming experience would choose. This gives the concept of a "set of all natural solutions".
A language can be given a score that reflects the percentage of the "set of all natural solutions" that can be expressed within that language. Languages with a higher score are better than languages with a lower score.
The adoption of a new language has a cost. This cost can be expressed as the sum of all man hours involved in implementing compilers/tools, re-implementing libraries and frameworks, creating providing documentation and tutorials for the language, rewriting existing code, training programmers to use the language, etc. For example, if there's only ten thousand programmers, and they'd need to spend four 40-hour weeks each to learn the language, then that adds up to an adoption cost of 1.6 million man hours for retraining alone (not including implementation, documentation, etc).
Brendan's Law is:
- The cost of adoption must be justified.
The consequence is that a completely new language (with a high adoption cost) that has a subset of the features of an existing language (low chance of being able to express a higher percentage of the set of natural solutions) is extremely unlikely to warrant adoption. In contrast, adding new features to an existing language with minimal change would have a much higher chance of being able to express a higher percentage of the set of natural solutions and a much lower adoption cost, and therefore be far more likely to warrant adoption.
Cheers,
Brendan