On Thursday, 26 March 2015 at 00:19:44 UTC, Jakob Ovrum wrote:
As I know Gary is sometimes (often?) on these forums I'll post
some critique here. Misrepresenting Go in a comparison with D
doesn't reflect well on the D community, so please have a look
at the following issues:
You describe these as issues forming part of a critique and
suggesting the substance of what he wrote is wrong, but are these
substantive in the context of a quick blog post (where it is more
important to say something generative than to be perfect in its
expression).
I don't claim to know Go, but is his basic point off the mark?
In the first code example, the Go version returns 1 on failure
and 0 on success, while the D version always returns 0. Also,
the Go version correctly uses stderr for error messages while
the D version uses stdout for everything.
stderr.writeln(text);
return 1;
correctness is important, but does this change much?
In the second example maybe you should print four lists to be
equivalent of the Go code. I think it's misrepresentative to
shorten the D example by making it do less work.
surely people can see beyond a difference of three lines ? would
this change his point?
auto text = source.byLine.join.to!(string);
This is not safe as byLine reuses the same buffer for every
line. It may or may not work depending on join's
implementation. Also, it's idiomatic to omit parantheses when a
template argument list consists of a single token:
source.byLine.join.to!string;
fair point if true (I will let others who know better say whether
.array. or something is needed).
With all that said, I honestly think Go’s design a disservice
to intelligent programmers.
s/design a disservice/design is a disservice/
What he wrote is correct English, and he is an Englishman living
in England.
I guess by now Go programmers reading this will be frothing at
the mouth >>shouting “Your doing it wrong!”.
That could be misconstrued as a jab at the intelligence of Go
programmers, which I don't think serves your cause.
Again, nobody English would think this was more than mildly
humorous (and by no means insulting). To suggest somebody is
rabid is not to insult their intelligence, but merely to tease
them about their likely strong emotional reaction.
But what is one to do when making the trade-off between being
blandly corporate and acceptable to everyone, versus writing with
some character and spirit and offending the sensitive. It's a
personal choice, but not easy to criticize another for theirs.
I personally find the world too bland these days. One cannot
police the forms of expression of people who do not speak for a
community or claim to be acting as such (apologies if I am
mistaken and he does have an official position within D). And
perhaps one ought not to try.
Laeeth.