Re: Type System as Design Tool [Was: We do not use C++ exceptions]
Peter Dimov wrote:
On Mar 4, 5:08 am, Thant Tessman <thant.tess...@gmail.com> wrote:
...
I use C++ every day, so I have a vested interest. I've been trying to
draw attention to the way one's programming language colors one's
thinking about the craft of computer programming. I can understand that
if a person is emotionally attached to a programming language, they
might find this particular message annoying, but it isn't "noise" if I
may be so bold.
To me, your arguments in this thread resemble a classic "market
failure" claim. My opinion on these is that (a) when a person states
"the market has failed" what is actually meant is "the market has
failed to give me the answer I want" and (b) that a good approximation
of reality is to assume that markets never fail.
C++ works. It has "shipped" or produced a vast quantity and variety of
software that is successful on the market. Many of its allegedly
superior competitors have not. Your explanations of this apparent
paradox are also classic: "cultural reasons", that programmers are too
stupid/entrenched/biased/uneducated to realize they're using an
inferior language, and so on. You even invoked the elusive group of "C+
+ evangelists". (You mentioned them in a different context, but the
choice of words is in itself telling, given that C++ has went where it
is now with essentially zero evangelism, on technical merits alone.)
(For the record, Java and most Microsoft products have also suffered
from "market failure" claims; there the argument is that success is
determined by marketing rather by technical qualities. It's equally
wrong. Technical merits override marketing in the medium to long
term.)
But the parenthesis doesn't quite rhyme with the rest. Clearly marketing
does influence the success of any product and is rather distinct from
product's technical merit. So it all depends on how broadly you define
success: (a) bottom-line success (in terms of shipped units/installed
base/etc), in which case the entity that achieved it is commendable and
there's little else to discuss; (b) success as influenced by various
factors, which is much more subtle. Here you say that in the medium-long
term technical merit will prevail, but then, to paraphrase Keynes, in
the long term we're all dead. So we better define time ranges better.
To what extent have various historical and environmental factors
influence the success of various programming languages? As with any
complex phenomena, it's a long discussion that can't be boiled down to
stereotypes. And clearly marketing (which indeed C++ had none) must be a
part of that discussion. History is chock-full with various artifacts
can be reasonably considered unsuccessful due to bad marketing. There
are also lock-in markets in which time is of the essence and a mediocre
product arrived first resists, even in the long term, better products
that arrive later. And (yeah it's all complicated) there are also
markets that seemed to favor the first-comer but didn't. The iPod wasn't
the first portable mp3 player but it was technically better. And darn
did it come with good marketing too...
Andrei
--
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]