Live data from Hacker News

A Farewell to Go

churchwood.at

31–40 of 85 posts

Re: A Farewell to Go

#31
Go's most impressive feature to me is it's build ecosystem. Took one of Tyler Treat's experiments and had it running within 30 minutes, no real previous Go build experience.

The language itself? Meh. Python/Haskell/C/LLVM IR cover my use cases. I see Go as another wrapper on top of LLVM IR when it is convenient and that is it.

Re: A Farewell to Go

#32
Did the author even learn Go?

Gofmt is for consistency for all devs to be on the same page, the format and structure is part of the language.

Are they complaining about the inheritance and generics, again did they learn Go? Stop thinking in about other languages when you are writing Go code, think the Go way.

Re: A Farewell to Go

#33

Haven't used Go in about a year and change, is Google going to pull an Angular and pull the rug out from under developers for Go 2.0?

I certainly hope not.

Can't speak for Angular, but in Python land, ~9 years later, people are still cleaning up the fallout of the changes from Python 2 to Python 3.

It wouldn't bode too well for such a young language as Go to go through the same process.

My personal observations are that Go is gaining a lot of steam in many places. Announcing that they will break compatibility would make those places strongly reconsider their commitment to Go.

Re: A Farewell to Go

#34
1. Strict Enforcement of the Google Code Guidelines

People who are undisciplined typically don't like discipline when they first encounter it. This doesn't restrict "Coding style" like the author suggests. Coding style and code format shouldn't be conflated.

2. Broken Package Management

It's not broken; it's intentionally limited. A "vendor" directory is natively supported by Go to account for this; use Glide or similar for more complex use-cases.

3. No Inheritance

It's a pattern of programming just like any other. In return you get first principles code and tiny lightning fast binaries.

4. Missing Generics

While I agree this isn't awesome, you can resolve this using Reflection.

5. Feature-Lacking HTTP Library

??? The author is missing the point of Go here entirely.

Re: A Farewell to Go

#35
post #3

I disagree with the authors feelings on code formatting. Gofmt is one of the best features of Go, especially when reading others code.

I don't use Go, but I agree with you. Style just shouldn't be an interesting topic, pick one and go. Best if the computer just handles it for you. Doing it this way gets everyone in the ecosystem on board with one style early on, and makes it much less of an issue going forward. This is the smart way to do it.

Re: A Farewell to Go

#36
post #3

I disagree with the authors feelings on code formatting. Gofmt is one of the best features of Go, especially when reading others code.

Indeed, forget goroutines and channels. The most innovative thing Go brings to programming is gofmt. Between that and the simplicity of the language, it makes it so easy to dive into large foreign code bases and actually understand what you're reading. That's one of Go's strengths.

Re: A Farewell to Go

#37

  According to my opinion, a programming language should let a developer use his or her style.
gofmt is the best part of Go. Everybody's code looks the same.

  Broken Package Management
This is a solved problem with dep. Switch your Go projects to dep today.

  In the documentation there is no mentioning of those missing things, you expect from a modern HTTP library.
Go's philosophy is "less is more." This is the journey of every Go programmer:

  What?! Go doesn't have X??? This is an outrage!
  * figures out how to do it without X *
  I guess I didn't need X after all. I just had to write a bit of code.

Re: A Farewell to Go

#38

This was a terribly worded blog post. The problems the author faced with go were so paper thin -- I don't think they warranted claiming "every line of go i've written is now deprecated". It's pretty clear going into go from the initial HelloWorld -- that you are expected to: 1 - use gofmt 2 - won't have inheritance 3 - Drudge your way through a solution for dependency versioning To complain about it so late into a pr…

> To complain about it so late into a project really speaks poorly to the author. There's really no need for such a personal attack here - why do you feel a need to lash out at this author? It is entirely reasonable to start a project knowing of limitations, and finish that project with a better understanding of how those limitations affect your productivity in the real world. That's what we call experience , and lea…

> There's really no need for such a personal attack here - why do you feel a need to lash out at this author?

the whole blog post is lashing out at something. You reap what you sow. There's no "these are the tradeoffs, and this is why I disagree with those tradeoffs"; every argument goes like this:

- I have an expectation

- that expectation is informed by my priors, not by Go

- Go didn't meet my expectations

- even though Go never made or promised to meet those expectation, I'm going to be mad that it didn't do something that I wanted that was never promised

the whole article is structured like "Go wants me to think in a different way than I already think and I refuse to think in a new way".

Re: A Farewell to Go

#39

Did the author even learn Go? Gofmt is for consistency for all devs to be on the same page, the format and structure is part of the language. Are they complaining about the inheritance and generics, again did they learn Go? Stop thinking in about other languages when you are writing Go code, think the Go way.

What is the Go way to implement a generic data structure that can't be trivially realised by wrapping a couple maps and arrays into a struct (without using interface{} and throwing away the safety Go's type system, such as it is, provides)?

Re: A Farewell to Go

#40
"Strict Enforcement of the Google Code Guidelines ... According to my opinion, a programming language should let a developer use his or her style."

This is one of the better language features, IMO. No more maintaining massively complex inherited eslint rulesets. One style and you're done.

Post reply on HN