Brendan's Law Of Language Adoption

All off topic discussions go here. Everything from the funny thing your cat did to your favorite tv shows. Non-programming computer questions are ok too.
Post Reply
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Brendan's Law Of Language Adoption

Post by Brendan »

Hi,

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.
"Better" (or being able to express a higher percentage of the set of natural solutions) alone is not a good enough justification for language adoption. You need to estimate the likely amount of time that the new language would be in use before it is superseded by an even better language. The cost of adoption needs to be a small fraction of the estimated time that the new language is expected to be in use.

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
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
Post Reply