On Saturday, 5 August 2017 at 21:31:49 UTC, Ecstatic Coder wrote:
It is more about marketing. Maybe Go is not a perfect
language, maybe not even a good one, but it's sold so good
because of a good marketing
So, calling D a "better C++" is a bad advertisement. But if
you rename it to '<anything>Script', for example "DatScript"
and sell it as "better, statically typed JavaScript dialect
which compiles into fast native executables" it will became #1
language on GitHub in no time.
+1
I've suggested exactly the same "easy-to-learn super-powered
stronly-typed javascript" and "efficient web server
development" advertising approachs to the D leadership, using a
more "Python.org"-like website.
Maybe it's because this change would be much too radical, but
I've been told that the "Better C++" slogan won't change,
despite D could easily be "tweaked" to eat a significant part
of Go/Dart's market shares.
And I'm not especially convinced that many C++ developers are
currently rushing towards D because of the current website.
For instance, I've personally chosen D *only* it was much
better than JavaScript/Node.js, not because it was better than
C++, that I still have to use for game and mobile development.
Still waiting that somebody explains me how to _easily_ use D
with Unreal Engine, Cocos2D-X, etc... ;)
I know I'm not the general case, but this still proves that
"some" C++ developers won't switch to D for long because they
are too tied to their ecosystem.
In open source, and indeed in entrepreneurial corporations, the
way to persuade people is to create the shift you advocate, at
least in a small way, so people can see what your early start
could become. Code wins arguments, as they say at Facebook, and
not just code but documentation, business plans etc too.
Its work to write it, but on the other hand my experience has
been that work is rarely truly wasted. It might seem so at the
time, but for example work I did to persuade somebody that didn't
want to listen, and where it seemed like I was pointlessly
banging my head against the wall, has ended up being very
valuable, even in dollar terms a few years later. It's not
always rational to be excessively calculating about risk reward
in the face of genuine, radical uncertainty when the risk is not
that bad.
I agree with you that the benefits of D are not perfectly well
communicated to people who aren't C++ programmers looking for
salvation. I had a discussion just last week about that,
explaining that D isn't just something they mostly fits only
large data sets where performance is key. And in particular it's
a cultural challenge because people have become resigned to the
idea of different languages for different purposes, and to a
large extent D doesn't fit the mental schema people have.
Nothing much changes in life day to day, and changes that seem to
be big often unfold slowly for a long time before being noticed.
The financial crisis unfolding began in Feb 2007 at the latest,
but it didn't feel like that to most people at the time.
Similarly, compare D documentation today to that of early 2014
(when I first look at D). Plenty of it was all perfectly clear
if you had a more academic training in computing, but if not then
it wasn't the friendliest. I tried to persuade one chap who was
helping me between jobs to learn D, and he was absolutely
terrified of it, to a good extent because of the docs!
And it's also because people are used to complexity being hidden
from them and things being made very easy. Since D often
involves paying a price upfront to make future things easier,
perhaps it's worth bearing in mind that there's a coupling
between the degree of development of the tooling and how polished
the docs should be. If you make it so easy to learn D that you
draw people who are utterly stuck when they hit dependency
problems with dub, that may not be ideal either. Ie an implicit
question of truth in advertising.
And the situation with docs changed over time. One recent change
is thanks to Seb Wilzbach who introduced runnable examples
generated automatically from unit tests. If you look at his pull
request it wasn't welcomed entirely with open arms in the
beginning because the benefits weren't clear (and some other
reasons I forgot).
So if you think we should have friendlier docs appealing to non
systems programmers, why not write a mock up so others can see.
It needn't be either or, because you can have an easy or advanced
channel from front page.
And it's worth not alienating those who want to go straight to
the meat of things - there's nothing more frustrating than a
system that talks down to you or breaks things down into little
pieces when you're quite used to slaughtering and butchering
dinner for yourself, thank you very much...
I really think there's a limit in how much sense it makes to
think about D marketshare against other programming languages.
If you have 30% market share it's very difficult just to hold
onto it, let alone grow. At this stage in the development of D
it really doesn't need to defeat any other language, but it just
needs to become a little more appealing to those who are already
receptive to it, maybe already use it, and to the stakeholders
that they need to convince to give it a try. Most programmers in
enterprises are not in charge of technical choices of this nature
- we need to have a very high appeal to the ones who do and who
would want to use D if only they knew because then social factors
become less important. If you look at who has adopted D and how,
that seems to me how this has unfolded.
I think C++ programmers in finance are likely to be receptive to
using D over time. There's a lot of FUD put forth on this topic,
but in the end if something leads you to better results then
people will adopt it over time, slowly in the beginning, and then
faster. You haven't got much choice because if your competitors
are more nimble than you think have a problem. Similarly it
seems than Ethan at Remedy Games has a similar perspective on his
industry.
The better Go and Rust do the better it is for us because it
opens up thinking about choices and in general they are quite
different languages serving different needs (of course there is
overlap).
It's a much easier case to make to say we should use a modern
language, review them all, and sometimes the best answer will be
D than to say we should move from whatever it is we are used to
to this "new" language nobody has heard of.
Remember that social media representation of reality isn't
identical with the world itself. The web guys talk, but
enterprise code is a big market and people there often don't talk
in public, maybe are forbidden from doing so. Biggest D
commercial users I have talked to at dconf don't say much in
public because they have a business to run. On the other hand I
have my doubts about whether some of the biggest and most
academic in a certain sense naysayers of D on this forum use the
language much at all. Personally I have some skin in the game - I
might be wrong in my judgements about some things, but if I am,
I'll bear the consequences (but also the upside if I am right).
Downloads of dmd have gone bananas, and I think that started
before Netflix announcement. When will D take off? It's
happening right now. Compound growth doesn't look like much in
the beginning, but give it time. (years, but that's how long it
takes).
Who is going to be the big sponsor of D? It's my belief probably
there won't be a single big sponsor, and that this is probably a
good thing. It's a very ambitious language covering an immense
breadth of domains. How is it possible for one firm to be a
sponsor of that nature without distorting the unfolding of the
language?
What's better than one enormous sponsor? Lots of sponsors, of
varying sizes, and covering various different domains. That's
much less brittle and more balanced, and you'll get much better
reach and adoption that way.
And I also think that the generalist nature and breadth of the
community is one of the most appealing aspects in an age where
everything became hyper fragmented, siloed and specialised.
Success on a grand scale brings its own challenges. Some day we
may be reminiscing about the good old days before the invasion of
the careerists. That's a way away, but it's worth recognising
also the benefits of where we are today. It's no longer true that
there are no jobs in D, but for the time being people learn D
because they care about technical excellence, not yet because
it's a clever route to get a great job..