Gary Willoughby: "Why Go's design is a disservice to intelligent programmers"

Jonathan M Davis via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Sat Mar 28 03:20:35 PDT 2015


On Friday, March 27, 2015 16:03:01 Walter Bright via Digitalmars-d-announce wrote:
> On 3/27/2015 2:47 PM, weaselcat wrote:
> > On Friday, 27 March 2015 at 20:58:44 UTC, Walter Bright wrote:
> >> On 3/27/2015 1:35 PM, weaselcat wrote:
> >>> there's a difference between minimalism and blatantly not adopting core advances
> >>> in language design over the past 40 years.
> >>
> >> Yes, and there's also a difference between gratuitous complexity and finding
> >> the underlying simplicity.
> >>
> >> It's a tricky thing finding the sweet spot.
> >
> > I don't disagree, but Go is definitely not in that sweet spot - it's crippled by
> > its benevolent dictators for the sake of being crippled.
>
> I tried to program in Java, and found it went too far in the simplicity
> department. I haven't programmed in Go, but it has also gone too far for my
> taste. I just don't want to program that way anymore.
>
> I am not going to claim that D has hit the sweet spot, either, but I'd rather
> err on the side of having the power I want.

Exactly! I'd _much_ rather have a language be a bit too complicated than too
simple - especially way too simple. And if I wanted simple, I'd program in
Java, but I don't want to simple - not at the price of power anyway - so I
don't program in Java if I can help it. And I have stayed away from Go for
the same reason. The more I learn of it, the clearer it is that its design
goals and the audience that it targets is at complete odds with what I'm
looking for. From what I've seen, I'd expect your average Go programmer to
dislike D, and your average D programmer to dislike Go, because they seem to
be at completely different ends of the simplicity vs power spectrum.

Of course, it's nice when a language can be powerful without adding a lot of
complexity in the process, but I'd much rather have to worry about some
extra complexity than not be able to do something in a language. For
instance, in the case of Java, it's not even possible to write a swap
function in it! And that doesn't even get into the more complex topics like
RAII or code generation. I'll take power over simplicity almost every time
if that's the tradeoff (though obviously, that can be taken too far if
you're not careful).

Personally, I'm not sure that much is gained in pitting Go against D
precisely because they're so different that they're likely to appeal to
completely different sets of people.

- Jonathan M Davis



More information about the Digitalmars-d-announce mailing list