On Sunday, 1 February 2015 at 23:20:15 UTC, Laeeth Isharc wrote:
On Monday, 5 November 2012 at 18:20:23 UTC, Jonathan M Davis
wrote:
The closer that C++ gets to D, the less interested that many
people will be in adopting it, particularly because of the
large user base and the large amount of code out there that
already uses C++. Programmers have to be convinced to move to
D, and for many C++ programmers, the improvements to C++11 are
enough to make a move to D not worth it, even if D is a
better language.
(He goes on to point out that nonetheless D will always have
the edge because legacy and installed base).
One should be careful about superficial translation of
instances from the purely commercial world to the world of
languages, but it strikes me that Clayton Christensen's
Innovator's Dilemma does apply somewhat to the case of D vs its
peer languages. His central point is that in the beginning
disruptive innovation very often tends to commence as a niche
thing that may well be globally inferior - he uses the example
of Honda motorbikes that allowed them to gain a foothold, and
that once they dominated this niche and gained succour from it
were able to use to expand their footprint to the extent that
they posed a serious threat to the established dominant
players. But for many years, these (and later the cars) were
seen as products of clearly inferior quality that had the
advantage of being cheap.
The interesting thing is the emotional aspect of perception -
nobody would have taken you seriously had you predicted in the
early stages that Japanese auto makers would become what they
subsequently became. And one could have pointed out some
decades after the war ended that they had been in the business
for years, and why should anything change. This is exactly
what people say about D - it's been around forever and hasn't
taken off, so why bother. (see recent Slashdot thread for an
example of this).
It is a basic insight of gestalt psychology that perception is
shaped by emotion (really it's affect, which goes much deeper -
emotion is the tip of the affect iceberg), and one way to know
when this is occurring (my background is as an investor and
speculator, so I have devoted a couple of decades to applying
this in a practical way) is that on the one hand you have an
emotional intensity out of proportion to the importance of the
topic, and on the other the reasons people put forward to
justify how they feel are observably not in accordance with the
facts. See the Slashdot thread...
So in any case, D is not competing on price, but has other
strengths that are of very high appeal to a certain group (if
you want to write native code in a productive way) even though
one must honestly acknowledge its imperfections in a global
sense - reading back through the forums a dozen years, this
seems to occur quite regularly in waves. "When is D going to
be finished?" even a decade back. To be upset by the
imperfections is missing the point, because languages - even
programming languages - have a certain innate pattern of
development (that resembles Goethe's observations about the
metamorphosis of plants) that can't be forced, no matter how
much one grumbles or stamps one's feet.
Furthermore, people tend to extrapolate superficial trends even
though history tells us this is a poor guide to the future.
Japanese cars really took off once crude exploded in the early
70s (and again towards the end), and auto-makers were slow to
respond. Perhaps they did not organize their business on the
basis of a prediction abuot energy prices, but the point is
they were ready to take advantage of this shift when it
occurred.
I do not want to attempt to be a pundit, but it is interesting
that the notable use cases of D - at Sociomantic, Adroll, and
Facebook are all aligned with certain salient and very powerful
underlying technological drivers and trends. It's no longer
true in many applications that programmer time is expensive
compared to machine time, and large data sets encountering the
challenges of memory vs CPU trajectories create new challenges
and require new approaches. And it is a positive for D that
some of its competition does not take D seriously at this stage
- one thinks for example of Guido and his insistence that
execution speed ought not to be a factor given work is I/O +
network bound, even though this is less true for numerical
computing and some kinds of data crunching. (Not that D is
mature here, but there is much that can be done within the
existing framework).
In any case, dissatisfaction channeled in a constructive
direction is a positive thing, because it is the opposite of
complacency and is the edge of the challenger. The point isn't
how people feel, but how they respond to the challenges in
front of them.
As a newcomer, it is very satisfying to see the progress made
on documentation, ecosystem, and C++ integration and I have
quite some respect for the difficulty of the roles of Walter
and Andrei. One is so short of time and attention, and no
matter how hard one works and, whatever decisions one makes, it
is impossible to keep everyone happy. If one isn't being
criticized, one isn't doing it right. (Which is not to say
that some of the criticisms will not have merit).
Here is a table from an article exploring Christensen's ideas.
There are some resonances with past and current questions in
the development of D, although as I said one can't map things
perfectly because it's a different situation. And the original
book is better than what has been written based upon it.
[Table doesn't format well, but you can see it here. The
surrounding text is less relevant].
http://recode.net/2014/01/06/the-four-stages-of-disruption-2/
Laeeth.
Excellent post. This situation is very obvious to us at
Sociomantic, as we're at the forefront of a massive disruption
that is happening in the advertising industry. D has far better
prospects in disruptive technology, rather than trying to compete
with incumbents in the rapidly disappearing traditional desktop
market.
And when I read this:
"First published in 1997, Christensen's book suggests that
successful companies can put too much emphasis on customers'
current needs, and fail to adopt new technology or business
models that will meet their customers' unstated or future needs"
-- http://en.wikipedia.org/wiki/The_Innovator%27s_Dilemma
I thought: "they put too much emphasis on backwards
compatibility" ...