3 ms·
One of the metaphors that I think is most damaging is inherent in the way most decision-makers think of programming languages-- the decision is treated as compa
by michaelochurch 15y ago
One of the metaphors that I think is most damaging is inherent in the way most decision-makers think of programming languages-- the decision is treated as comparable to the selection process for natural languages, which is trivial and obvious for natural languages but very complicated for PL.
With natural languages (a) there aren't order of magnitude differences in power or quality, and (b) the switching costs associated with becoming fluent in a new one are very high, so businesses usually default (without conscious choice) to "the standard", which is the language most familiar to the people in that location. (In New York, that's English; in Tokyo, it's Japanese.) For natural languages, this is the obvious right decision.
When this metaphor is taken literally and applied to PL selection, it results in Java and C++ being used, because those languages are "the standard". The difference is that, (a) there are languages that are orders of magnitude better-- just compare Scala against Java-- than mainstream PL, and (b) switching costs are a lot more moderate. Using "the standard" in PL, for a new company, is a horrible decision; you won't even get off the ground if you start in Java or C++.
Oddly enough, the term "programming language" is, technically speaking, completely correct (a PL is a language) but metaphorically detrimental.
- cjp 15y ago"There are 2 hard problems in computer science: caching, naming, and off-by-1 errors." Is there a better name for "programming language" that avoids the problem of association with natural language?
- michaelochurch 15y agoI would say "platform" in these discussions since that's what we're actually comparing in practice when we're arguing about what technologies to use for business. By 2006, it was obvious that Java-the-language was deficient in comparison to alternatives like Python and Ocaml, but people (and here I include smart people who understand technology) continued to prefer it because it had the best libraries. Paul Graham argued that language fundamentals matter more than libraries and tooling. This was true in his case (Viaweb) but it's not true in general and for long-term adoption trends, which are dominated by small, part-time projects (innovators and early adopters) for which having to write a bunch of libraries (CSV parsers, for example) that already exist in Java would be a killer. Java won the late '90s and 2000s because of the platform, not the language. The language sucks, and even by the standards of 2005 (when Scala was immature and Clojure didn't exist) it sucked, but it had the best tooling and therefore won.