On Monday, 26 August 2013 at 07:32:53 UTC, Zach the Mystic wrote:
One of the theories as to why there are no bears to be found on
the African continent is that they are omnivores - i.e.
generalists - which in a hugely competitive environment such as
Africa, there is no niche in which they will not be beat out by
a more specifically adapted animal. My understanding of D is
that is like a bear, trying to be good at everything. (Maybe
that's why bearophile likes it so much!)
But the environment for programming is sufficiently competitive
that a language which is merely good at everything without
being the best at something could be beaten out of the race
simply by not having a niche. Therefore I see an emphasis on
one thing to be a strategic advantage even if one's ultimate
goal is to build something which is actually good at everything.
It certainly seems to turn a lot of heads when D rivals the
fastest languages in a performance comparison. Having caught
their attention, D can introduce its other advantages. The two
which seem most prominent to me are compile time (often 10% of
C++'s) and overall expressiveness, but it seems like almost
nothing has been completely ignored.
I'm more or less a fanboy, so I'm sort of on-board for better
or worse. Even so, I sometimes feel like this community is
building some kind of Cyberdyne Systems Terminator in their
garage or something.
I don't agree. I first used D exactly because it is an
"all-rounder". For me built-in UTF support was as important a
factor as native machine code (performance). The reasons why
people would perfer C++ to D are probably habit and convenience.
If you've used C++ for years why should you bother to learn D?
After all, C++ is well established, well-documented, has loads of
libraries, will get you a job more eaily etc. Language features
and performance are sometimes over-estimated when it comes to
analyzing why a language succeeded. There's convenience,
marketing (propaganda) etc etc.
Also I don't think that performance alone decides whether a
language becomes popular or not. If it were soley down to
performance we wouldn't have Java or Python or even Objective-C
(which used to be criticized for being too slow). Ease of use, a
clear and consistent structure and "write once run everywhere"
are very important too. Especially now that developers have to
face so many different platforms (Linux, Mac, Windows, Android,
iOS) everythnig goes into the direction of "write once ..."
That's one of the reasons why Android took off, I think, because
developers said "Great, maybe this will put an end to the mobile
platform jungle. We'll support Android, less headaches for us!".
D has what it takes to make it. I don't think the language itself
is the problem. And of course, you will always hear arguments
like "But C++ is 1% faster" from people who want to hold on to
what they have spent years learning. It's completely
understandable, it's like the song "There's a whole in my bucket"
(http://en.wikipedia.org/wiki/There%27s_a_Hole_in_My_Bucket). Any
excuse.