Live data from Hacker News

"14 Years of Go" by Rob Pike

codereliant.io

71–75 of 75 posts

Re: "14 Years of Go" by Rob Pike

#71

Earlier quoted context omitted.

Sure. But somebody writes it once and you can benefit from it. If you don't have operator overloading there isn't any chance of doing this. At any rate, I feel like the goalposts have been moved a bit. You originally said: But then you'll soon want to do A*B+C, and you'll find that fused multiply/add is a much faster operation than doing a multiplication and then addition, and soon you'll either be writing mul_add(A,…

> I am pretty sure that > or you'll overengineer a complex solution to make A B return some kind of object that can recognize the subsequent + operation etc. > was a later edit, I don't remember reading it when I first reacted to your comment. If so, doing that is not really nice, since it breaks the flow of the reactions. I'm honestly not even sure. I had this in mind from the beginning, but I may have initially had…

Yeah, happens to me sometimes as well. Writing starts thinking, leads to more writing.

Re: "14 Years of Go" by Rob Pike

#72
post #30

Rob Pike posted a textual version of this on his own blog: https://commandcenter.blogspot.com/2024/01/what-we-got-right... Discussed at the time: Go: What we got right, what we got wrong - https://news.ycombinator.com/item?id=38872362 - Jan 2024 (694 comments) The outline of that post is very clear, you can skim the original very quickly. That link is conspicuously missing here, giving readers the impression that the…

Oh I missed that - thanks for pointing out!

Re: "14 Years of Go" by Rob Pike

#73
post #47
post #38

Earlier quoted context omitted.

Operator overloading is about syntax and type safety. Brainfuck is Turing complete.

I agree it is about syntax. But how is it about type safety?

You might want the same piece of code to work correctly under different numerical types. Answer: Op overloading + generics.

E.g. Dual numbers for autodiff; 2x2 matrices of quaternions for texture mapping; matrices of differing floating point types for machine learning. Why should I implement the same matrix operations a million times over?

Re: "14 Years of Go" by Rob Pike

#74
post #9

Earlier quoted context omitted.

Maybe hate the team is strong, but there's excellent tools that have a really offputting team around them. I feel this way about Rust. Great language, fantastic tools, but the surrounding culture is really off-putting. You can disagree with the parent (and I do), but it's not like you need to directly interact with a team to dislike them if you disagree with their public statements, actions or controversies.

Yeah I meant I hate my teams design philosophy and I feel most teams that are go centric are like this. Hate was too strong of a word and that was my mistake.

It wasn't, you're just being hit with the standard obnoxiously disingenuous HN responses. It's very clear what you meant by 'hate' in your post.

Re: "14 Years of Go" by Rob Pike

#75
post #61

Go is brilliant for what I don't have to do. Go doesn't have a build system, so I don't have to learn that. (I spend every second I'm using Gradle to curse it's very existence -- and wish I had `go build`) Go cross compiles natively, so I don't have to think about the toolchain. Go has go:embed, so I don't have to think about bundling/packaging as a separate step. Go has fantastic backwards compatibility, so I don't…

Very well said. As someone who rarely touches Go (only used it for a couple of simple web servers, something like a WebSub subscriber), you've named much of what I like about it. I'd love to see more languages achieve all these features, or even make that a goal. I'd also mention how great the documentation is. Truly best in class. For instance, see https://pkg.go.dev/net/http * Has enough examples to fully understan…

Absolutely. The documentation is first class, and I took love how easy it is to jump into the source. Often, reading the source helps me understand how a package is meant to be used.

Other ecosystems seem to have a "don't worry yourself about that" approach to viewing a package's source, and it's maddening. In contrast to Go, trying to get from docs to source code in the JVM ecosystem is by no means straightforward.

Post reply on HN