

Think your language is better than mine? The market says otherwise - andrewcurioso
http://andrewcurioso.com/2011/03/the-free-market-theory-of-programming-languages/

======
chc
This is based on a mountain of false assumptions. Just a few of them:

• Most people choose a language based on quality rather than what everyone
else is using

• Good languages are necessarily well known (if you build it, they will come?)

• Large corporations, which make up a large segment of the market and can
basically anoint programming languages to dominance, have the ability or
inclination to choose a good programming language (rather than, e.g., a
language which has a strong promotional machine behind it or a language whose
backer offers lots of enterprise support)

• Attractiveness to amateurs is equal to all other factors in determining a
programming language's quality (regardless of what you think of the language,
this is a _large_ part of PHP's popularity)

The thesis here is simply false for any reasonable definition of "good." The
only way you can make it true is to "#define good popular", in which case it's
tautological.

For example, the reason there is still so much COBOL in production is not that
the language is awesome and people choose it of their own free will — in fact,
the opposite is generally considered to be the case even by COBOL experts —
it's simply _entrenched_. These systems would not be written in COBOL if they
were being developed today, but because they happen to have been written in
COBOL's heyday, people still use COBOL. The market chooses COBOL for these
positions because of the horrific cost of rewriting everything from the
ground-up, not because of anything related to COBOL itself.

~~~
andrewcurioso
Three things:

First, thank you for reading. This article was meant entirely to spur
discussion so I thank you for taking the time to discuss.

Second, I don't think an argument that most people choose based on quality is
pertinent to the theory. The theory just states that the market decides. It
does not infer than any metric the market uses is inherently better or worse
than others.

Third, your COBOL example is explicitly excluded from the theory as not being
in a free-market. Thus it is fading away slowly. If it were truly up to the
market (no external regulation from business interests) it would be dead.*

* In this case the market is defined as the direct consumers of the programming language. The programmers themselves. As opposed to indirect consumers (organizations).

~~~
chc
> _Second, I don't think an argument that most people choose based on quality
> is pertinent to the theory. The theory just states that the market decides._

It states that the market decides _what_? The article repeatedly suggests that
what the market decides is which language is "good" or "better," which can
only be true if people choose based on quality.

If the market choice is only loosely correlated with quality, then looking at
the market tells us nothing about which languages are good (since "good" is a
qualitative judgment).

There are only two ways I can see for market penetration to be relevant to the
discussion of which languages are better:

1\. The market chooses based on quality

2\. "Good" is synonymous with "popular"

Otherwise you're measuring one thing and then announcing another. Market
position is just popularity, and is only a reliable indicator of the things
that determine popularity. If people don't choose based on the quality of a
language, then looking at popularity to figure out which languages are good is
like looking at the eating habits of the average American and concluding that
Big Macs are the most nutritionally balanced food around because they're in
the dominant market position.

~~~
andrewcurioso
The market decides if a language has any value.

It is not implying in any way that there is a 1:1 between popularity and
quality (or any defined relationship for that matter). I think that would be
ridiculous.

It is not meant as any means to grade or rank one language against the other.
Only to say that a language has some value.

Rereading your comments I do not necessarily agree that the assumption is that
market chooses based on quality. The market chooses based on perceived value
which definitely takes into account quality but is not based entirely on it.

The implication being is that if there is truly no value or the value is so
low that consumers are no longer willing to consume the product. Then the
product will disappear or get replaced by a better and cheaper alternative.

In a way, it is simply saying, if someone uses a language then it has value --
at the very least -- to that person.

I guess the underlying message is: do not assume that because something
doesn't have value to you that it is not valuable. If it didn't have any value
it would (IFF the theory is correct -- I'm not saying it definitely is!) cease
to be used.

I am anxiously awaiting your reply. If you have a good one, I might have to
concede that the theory is disprove and/or incomplete.

~~~
freshhawk
So your headline should have been "Think your language is more popular than
mine: The market says otherwise".

No one would have argued with that.

~~~
andrewcurioso
I agree. The title is misleading. I'll have to be more careful on future HN
posts. Although, if someone else posted it I would have little control over
that.

I don't think your alternative isn't quite right either.

Perhaps, I should have just titled it something like: "Ask HN: Review my
theory, The Free-Market Theory of Programming Languages"

------
freshhawk
Yeah, yeah, the status quo can always be defended with a market analogy.

Step one to making this kind of statement: give some evidence that the
language ecosystem actually works as a free market.

First of all changing languages is almost always a large investment. That
removes the "free" from your free market analogy so many of the assumptions
you are making are completely unfounded.

~~~
andrewcurioso
That is why it is a theory and I am opening it up to peer review. Otherwise I
would have stated it as a fact.

Also, "free" as in choice, not "free" as in cost.

~~~
freshhawk
Fair enough, in that case it's certainly not a "theory", the correct term
would be "hypothesis" or "conjecture".

I understood what you meant by "free" but you seem to be discounting the high
cost of making that choice.

You can examine the language ecosystem as a market but if you do you see
immediately that it is inherently a lock in market.

Once you choose a language it's very high cost to change languages.

It's also high cost to choose a language that's not already popular,
recruiting is more difficult and you will not have as much 3rd party library
support.

So you have both "lock in" and large advantages for existing large players.
Sure, it's technically still a "free market" because it's not regulated by the
state but this kind of market doesn't have the behavior you are assuming.

What evidence do you have that these kinds of markets optimize for "better"
languages?

~~~
andrewcurioso
My biggest mistake: using the word "good" What I should of said is "has value"

I have since conceded that point and removed the word "good" (which is
subjective) from the post.

Also, the only evidence I have is observation. Which is why I posted the idea.
To get good constructive input from people like you!

You make some good points. It is an expensive proposition to switch languages,
which is why I excluded that explicitly in the post.

It is also expensive to train people. So that alone may disprove the theory.
I'm not sure yet.

On a side note, as far as I know, being based on observation only does not
preclude the use of the word theory. It is technically correct (at least
according to the dictionary definition of theory). Although, I agree
hypothesis may be better.

~~~
freshhawk
You need to define "has value" right away though, because defining "value" as
"whatever the market measures" is tautological and just plain useless. "PHP
has value because people find that PHP has value" is not contributing anything
new.

It's also the go to "moving the goalpost" logical fallacy used by free market
ideological cranks who you don't want to be compared to.

~~~
andrewcurioso
Agreed. I don't want to ask you to complete my thought, but how would you
define value in a way that makes sense in that context? Or is it hopeless?

~~~
freshhawk
Well now you're trying to figure out what it is that the market optimizes for.

In my experience it has little to do with language quality and mostly to do
with reputation and momentum. Whatever that company/team used before they will
likely use again.

I'll talk about things in the web space since that's what I know best, things
will be different in each market.

If it's a blue sky exercise or they decided they need something new then it's
mostly based on reputation, the less popular the language chosen the more
blame taken by the chooser in the case of failure. In other words, no one ever
got in trouble for choosing Java, PHP or C#.

Trying to define value in a way that covers even only the big players is
tough.

Java and C# are chosen because they are big (library support, support
materials) and have been around for a while. They are considered trustworthy.

PHP is chosen because there are tons of cheap semi-competent programmers who
know PHP. It was marketed and packaged for beginners at the perfect time and
that worked fantastically.

Ruby/Rails is chosen because of marketing (the engineers might be fans, but
the business guys say OK and the HR people can find programmers because of the
marketing). A lot of ex-php-ers who discovered how bad PHP is as a language
when they learned Ruby as their second modern language.

This is just in a small piece of the language ecosystem that I know about.
Other areas of programming (other markets i suppose) are completely different
but I suppose that momentum, marketing and trained workforce are factors in
all of them.

I think this is too messy a problem to ever arrive at a good definition.

------
jjm
You could also segment the market by knowledge, and time in business. Each
would yield different results.

What you might find is the market aggregate is a lagging indicator or that any
summary is void of true detail.

Besides the language measurement quanta here is so far apart, no?

~~~
andrewcurioso
It's a bit intentionally vague. For instance, let's say there is a language
dedicated to hardware prototypes (let's call it Gabview)...

Say it is very popular now but it is difficult to use and no one enjoys using
it. If the theory holds true, a new language will come around gain popularity
with hardware firmware developers and Gabview will fade off into the distance.

------
vorg
Another factor influencing language popularity is to have some control over
the language popularity metrics. E.g. Groovy lead developer Jochen Theodorou
got involved with changing the TIOBE algorithms in January. In February,
Groovy jumped from 49th to 25th place in one month.

------
stray
> Any programming language, when not influenced by external forces, will be
> unable to grow and eventually cease to exist unless there is a demand. Any
> languages that remains is, by exclusion, a useful and good language.

For very small values of "useful" and "good"...

~~~
andrewcurioso
I don't disagree :) and the theory does not specify either of those properties
as binary.

