How do you use D?

Laeeth Isharc via Digitalmars-d digitalmars-d at puremagic.com
Sat Aug 5 20:30:00 PDT 2017


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..







More information about the Digitalmars-d mailing list