A few notes on choosing between Go and D for a quick project

Chris via Digitalmars-d digitalmars-d at puremagic.com
Fri Mar 13 07:20:11 PDT 2015

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.

More information about the Digitalmars-d mailing list