Google's Go

grauzone none at example.net
Sun Jan 24 01:25:21 PST 2010


Andrei Alexandrescu wrote:
> grauzone wrote:
>> Adam D. Ruppe wrote:
>>> On Sat, Jan 23, 2010 at 12:00:04PM -0500, Steve Teale wrote:
>>>> I see that Go has now usurped D's former place at #13 in Tiobe - 
>>>> which I realize of course does not mean anything. But I'd be 
>>>> interested to hear what the D aficionados think of Go.
>>>
>>> There's been a couple threads about it before. My opinion: it is 
>>> garbage.
>>> It has maybe two or three good ideas in there, but on the whole, it is
>>> a very poor showing. The arrogant developers didn't do any research into
>>> prior art when designing it, and it shows - good ideas are absent 
>>> without
>>> even a mention. Bad ideas remain in there saying "this is the best we 
>>> could
>>> do".
>>
>> Oh well, D isn't that great either. While it doesn't have such big 
>> names attached on it (although "Andrei" is not that small of a name), 
>> it had more time.
>>
>> What worries one most is how D rushes "to completion", just because of 
>> the deadline of that one book. It's obvious that some features are 
>> half cooked at best. Just look at the features added in D 2.038 (auto 
>> ref, DIP2): terrible hacks to get some broken language features barely 
>> to work before the deadline is over.
> 
> Meh. It's all so subjective, calling some language design "a hack" is
> nonfalsifiable. That reminds me of some of the Walter/Bartosz/me
> discussions. The first person to call something a hack usually won any
> argument because there was no way to counter that label sensibly.
> Prepend "terrible" and we have a winner.

I guess that's true. I also don't want to start a discussion about 
"taste" or whatever.

Let me just say that those are unorthogonal, single-trick-pony features. 
They don't add too much value to the language, and are specially 
designed to cover for some annoying corner cases of other features.

Please tell me how auto ref template parameters are universally useful? 
Or how inout(T) isn't just a shortcut to avoid writing 
const/immutable-aware code 3 times or putting it into a template? What's 
the use of auto ref returns, other than a small performance 
optimization? (Though I admit that min() example in the spec is cute.) 
Especially inout(T) seems to be only useful in one specialized situation.

Could be that I'm lacking foresight, but then those questions above 
should be simply to answer.

I don't quite get your point about non-falsifiability: you could put any 
optional feature into a language with that argument.

> 
> Andrei



More information about the Digitalmars-d mailing list