Gary Willoughby: "Why Go's design is a disservice to intelligent programmers"
Jakob Ovrum via Digitalmars-d-announce
digitalmars-d-announce at puremagic.com
Wed Mar 25 17:19:42 PDT 2015
On Wednesday, 25 March 2015 at 21:00:37 UTC, Andrei Alexandrescu
wrote:
> https://www.reddit.com/r/programming/comments/30ad8b/why_gos_design_is_a_disservice_to_intelligent/
>
> Andrei
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:
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.
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.
> 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;
> With all that said, I honestly think Go’s design a disservice
> to intelligent programmers.
s/design a disservice/design is a disservice/
> From my experience of using Go it’s just too simple to create
> useful abstractions.
This sentence is ambiguous and could be taken to mean it's really
simple to create useful abstractions in Go. The intended meaning
is obvious with context, but it threw me off for a second...
> I guess by now Go programmers reading this will be frothing at
> the mouth shouting “Your doing it wrong!”.
s/your/you're/
That could be misconstrued as a jab at the intelligence of Go
programmers, which I don't think serves your cause.
> Well, there is another way of implementing generic functions
> and data types, and that is to completely break the type system!
Didn't you just say there was simply no way around it?
> I know object-oriented programming is no silver bullet but it
> would of been nice to be able to abstract details away into
> types and provide better encapsulation.
s/would of/would have/
Also, this statement just begs for responses pointing to Go's OOP
features. It has both user-defined types and encapsulation
features.
More information about the Digitalmars-d-announce
mailing list