On Friday, 13 March 2015 at 13:18:03 UTC, Dicebot wrote:
On Friday, 13 March 2015 at 00:20:40 UTC, Andrei Alexandrescu
wrote:
A friend of mine needed to complete a small project and
thought of using a language he didn't know for it. He already
knew I work on D so he considered it alongside Go. He ended up
choosing the latter, and documented his decision making
process in a few notes that he subsequently shared with me.
I'll paste below a sort of transcript of his handwritten notes.
In my opinion it is better to focus on tempting users with D
strong bits than oversell it by trying it compete in topics it
has inherent disadvantage.
In theory I agree, but I've learned that this is not the way
things work. I've learned that the way to "sell" a language is to
give (potential) users an immediate reward and the feeling that
they can do useful things with the language. D can do all that,
but we repeatedly fail to bring this point across.
There is not point in try to compete with Go on topic of
simplicity - they have crippled the language tremendeously to
get that simplicity. Simple D has no value - I would simply
prefer Go instead of it as it has head start advantage in
toolchain.
Instead it is better to focus on explaining users that they
don't want what they think they want, akin to that Bjarne
quote. And don't be afraid to admit to certain users that D is
not a best choice for them. It doesn't mean that such valuable
feedback should be ignore - there is indeed a lot that can be
improved in the learning curve. But trying to fight for user
who makes choice with "trendy" and "simplicity" in mind is a
battle lost from the very beginning.
This is true. This battle is lost. But a lot of users, even
people who are interested in D, shy away from D, because they
don't have the feeling that "this is something really useful". We
fail to communicate both its general usefulness and its strong
points as opposed to other languages. What the big marketing
machines behind Go etc. do is to make people feel good about a
product (even if it's shit). We should do the same. Only because
Google does it, doesn't mean it's a big taboo for us. The fact of
the matter is that we have failed to win over:
1. the C/C++ expert nerdy-linuxy crowd
2. the average user
Crowd 1. we cannot win over easily, after all C/C++ are
well-established and "high priests" and gurus are usually
reluctant to learn something new. Crowd 2. we can win over, yet
we have failed to communicate with them, to reach out to them.
Most people I know have a look at D's homepage and say "Uh! Hm.
Ah, I'll use Python." No, they are not hardcore programmers, they
are engineers and scientists. But they are _users_, people who
need to write software to analyze data, to create something. We
should not ignore them, even if they are not (initially)
interested in templates and metaprogramming. Neither was I, when
I first learned D.