Live data from Hacker News

Why Go Is Not Good (2014)

yager.io

31–40 of 76 posts

Re: Why Go Is Not Good (2014)

#32
For the n-th time: Go was designed for simplicity. Think of Go as Python, but with static typing, better concurrency and performance. Software is complex enough as it is, there's no need to make it harder by introducing concepts that only clutter your perception and have questionable positive impact on development. Trying to be clever when designing a new language is easy, achieving expressive simplicity is hard.

Re: Why Go Is Not Good (2014)

#33
post #4

Go was designed to not cause widespread damage in the hands of a mediocre programmer. It prevents people from being too clever at the expense of more boilerplate and general busywork. This is the exact tradeoff that google wanted to make.

If that was the goal then why not just use Java? It fits this goal description even better and offer superior tooling, infrastructure and mindshare.

One important reason: Because Java encourages inhertance-based designs, which are especially dangerous if your goal is to get inexperienced programmers to write simple, straightforward code.

Go does not have inheritance.

Re: Why Go Is Not Good (2014)

#34
post #14

Earlier quoted context omitted.

I've heard this repeated several times. Is there a source for this claim from any of the people who designed the language?

> The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt. — Rob Pike http:/…

See also https://talks.golang.org/2012/splash.article

Re: Why Go Is Not Good (2014)

#35
post #14
post #4

Go was designed to not cause widespread damage in the hands of a mediocre programmer. It prevents people from being too clever at the expense of more boilerplate and general busywork. This is the exact tradeoff that google wanted to make.

I've heard this repeated several times. Is there a source for this claim from any of the people who designed the language?

[deleted]

Re: Why Go Is Not Good (2014)

#36
You wrote this, about the potential for user error with a Go example, as a negative:

> To Go's credit, it is idiomatically correct (and encouraged) to leverage Go's multiple return mechanism to return a second "failure" value if there is a possibility that a function will fail. However, this mechanism can easily be ignored or misused

A few paragraphs above you wrote this in defence of Rust's approach:

> No matter the programming language, people can always write poorly-named functions.

So for Go, user error isn't an acceptable defence, but it is for Haskell and Rust?

I think you made a lot of valid points, but this one seemed contradictory, unless I've missed the point. Apologies if so!

Re: Why Go Is Not Good (2014)

#37
post #4

Go was designed to not cause widespread damage in the hands of a mediocre programmer. It prevents people from being too clever at the expense of more boilerplate and general busywork. This is the exact tradeoff that google wanted to make.

I think of Go as a lovechild of C and Scheme, mainly; I wonder if there's a citation for the claim made about design for preventing damaging programmers.

You could also assume it as a rip-off of Modula/Oberon.

Re: Why Go Is Not Good (2014)

#38
post #19

Go is like a superior version of Java. Rust is like a superior version of C++. I wouldn't use Java or C++ any more for a new project, barring some very specific reason. But I might use either Go or Rust depending on the project's priorities. These criticisms of Go are basically correct, but it does have some advantages over Rust, like in some situations absolute performance is not so important, copying strings around…

> Go is like a superior version of Java

How can someone claim that kind of thing without being joking is beyond me... Go might have some platform features that may be better than Java (i.e. crosscompilation to native on every OS) but as a language?? What exactly does it do better???

Re: Why Go Is Not Good (2014)

#39
The way I see it is Go was made as a thin layer on top of C to bring safety, modern toolchain, and concurrency.

The reason why the toolchain rocks, the language is simple, and builds are lightning fast are because of these tradeoffs for the most part.

Post reply on HN