Live data from Hacker News

Eleven Years of Go

blog.golang.org

121–130 of 170 posts

Re: Eleven Years of Go

#121
post #95

Earlier quoted context omitted.

I very much agree with this. Rust is to C++ what Go is to Java. I think the fact that Go compiles to native binaries and can be linked statically are the primary reasons it is often compared to system languages like Rust or C++. But really, it's not the same type of language.

Rust fundamentally improves C++ with memory safety and allegedly provably correct concurrency. It is a vastly different set of assumptions, design, and opinions than C++. What does Go do to fundamentally deviate from Java? IMO it is basically the same space with a few different opinions. It has GC, is C-style, a more modern stdlib than C/C++.

Single threaded concurrency: goroutines. It's better for writing servers

Re: Eleven Years of Go

#122
post #113
post #87

I use Go quite a bit, and I have the exact opposite experience from a lot of these testimonials. Someone else mentioned go just works, they don't have to fight the tooling, or that they worked on a go program that works five years later (which language does this not apply to). ??? I've had quite a few problems with things like plugins for go deleting unused imports because I am in the habit of saving frequently. I re…

The simpler the language the better it is for complex code. Heavy abstractions won't help another reader of your code understand what's going on. In most cases it means it will take them much longer to understand. Concise code with heavy abstraction can help eliminate errors, but it definitely doesn't make reading it easier. It also doesn't make solving problems any easier. Solving problems is all about algorithms an…

Cool - let's write everthing in Assembly or Brainfuck! It is great for "complex code", right?

Re: Eleven Years of Go

#123

If anyone is interested in playing with generics in Go, here you go: https://go2goplay.golang.org/ https://go2goplay.golang.org/p/mUWfsZPHs5h

Is it possible to compile my local Go code with generics?

Yes, by building the dev.go2go branch: https://github.com/golang/go/blob/dev.go2go/README.go2go.md

Re: Eleven Years of Go

#124
post #94

Go has been a career kickstarter for me and gambling on it for a multi year ecommerce project was a hit, for me at least. I switched from so-so Java dev to Senior Dev, Go Trainer and Systems Architect and Go played a very big part. It has its' shortcomings, but what i have learned due to just writing stuff instead of using enterprise frameworks was eye opening and i would be a comoletely different lerson today. Thank…

Yeah there is a lot of freedom that comes from a smaller set of choices. Java is so vast and so many libraries it is overwhelming and solutions are usually over engineered. With Go its nice to just write some code.

Re: Eleven Years of Go

#125
post #95

Earlier quoted context omitted.

I very much agree with this. Rust is to C++ what Go is to Java. I think the fact that Go compiles to native binaries and can be linked statically are the primary reasons it is often compared to system languages like Rust or C++. But really, it's not the same type of language.

Rust fundamentally improves C++ with memory safety and allegedly provably correct concurrency. It is a vastly different set of assumptions, design, and opinions than C++. What does Go do to fundamentally deviate from Java? IMO it is basically the same space with a few different opinions. It has GC, is C-style, a more modern stdlib than C/C++.

Go improves on Java in several ways, perhaps most importantly, it is much nicer to deploy - no JVM. It's also a lot less verbose, compiles way faster and uses composition instead of inheritance. Having said that, I really hate Java, and only mildly dislike Go.

Re: Eleven Years of Go

#126
post #99

I'd like to hear some Java devs opinions on Go. On one hand I'd like to try and learn something new, on the other hand, everything I could do in go I would probably do better in java (as in I know how to do it already)

Having used it some, and watched others use it more, I'm struck by the commonality that the most steadfast adherents of the language confuse typing with productivity; "The code flies from my fingers!" Well, sure, but the code I don't need to write in the first place because of well used and vetted libraries, or higher level abstractions, is pretty cool too. It just isn't as keyboard clackyclacky.

This is how I feel. I need to deploy applications not rewrite Django/Rails/Spring/etc (and all the associating tooling) for the hundredth time.

The performance boost argument is a joke when we have horizontal scaling and and multithreading.

Re: Eleven Years of Go

#127
post #117
post #113

Earlier quoted context omitted.

The simpler the language the better it is for complex code. Heavy abstractions won't help another reader of your code understand what's going on. In most cases it means it will take them much longer to understand. Concise code with heavy abstraction can help eliminate errors, but it definitely doesn't make reading it easier. It also doesn't make solving problems any easier. Solving problems is all about algorithms an…

I suggest you try and implement some complex but well-defined algorithm, e.g. sha256, in some very, very simple language, say, brainfuck (which is very close to the original Turing machine language). Or, more realistically, in PDP11 assembly, which is beautifully transparent and uniform. You might then notice that there is some kind of sweet spot in complexity: fewer features and footguns than, say, C++, but more fea…

SHA256 is a fixed circuit. It's a particularly weird thing to implement. Other than it being a bit long, it's not complex to implement, even on a calculator.

If you want an example of something moderately complex but well defined, go implement a min-heap or some other basic algorithm.

Re: Eleven Years of Go

#128

I have really been enjoying Go, except for the built-in templating library. It's a wart on the standard library IMO. The template declaration and invocation hierarchy seems unnecessarily complex and is almost 100% undocumented. It just hurts my brain and doesn't make any sense to me in comparison to jinja, whatever jekyll uses, etc. It has very very poor documentation. Some docstrings are not a replacement for actual…

Not specifically Go related, but I am consistently annoyed that Helm's templating is a _very_ thin abstraction over Go's templating which has many drawbacks in that context.

Re: Eleven Years of Go

#129

Earlier quoted context omitted.

Having used it some, and watched others use it more, I'm struck by the commonality that the most steadfast adherents of the language confuse typing with productivity; "The code flies from my fingers!" Well, sure, but the code I don't need to write in the first place because of well used and vetted libraries, or higher level abstractions, is pretty cool too. It just isn't as keyboard clackyclacky.

This is how I feel. I need to deploy applications not rewrite Django/Rails/Spring/etc (and all the associating tooling) for the hundredth time. The performance boost argument is a joke when we have horizontal scaling and and multithreading.

But not everything is a monolithic REST web app. Sometimes you have many different components -- from CLI apps to serverless functions -- and having a lean but powerful stdlib is amazing, especially with builin type safety, consistent lining, and cross-platform native binaries easily under 10MB.

Re: Eleven Years of Go

#130

Earlier quoted context omitted.

He seems to be this honest and stable user: https://www.reddit.com/r/golang/comments/gzvf70/comment/ftim...

That post quotes Ian and refers to him in the third person -- I'm pretty sure it's someone else summarizing the situation. Both the Reddit user and Ian (in the quoted text) appear to be taking a level-headed approach to the situation, though.

I agree, I was referring to the fellow making such wild accusations.
Post reply on HN