Live data from Hacker News

I want off Mr. Golang’s Wild Ride (2020)

fasterthanli.me

361–370 of 477 posts

Re: I want off Mr. Golang’s Wild Ride (2020)

#362
post #227

Earlier quoted context omitted.

I've done all kinds of stuff too, and agree that Go is pretty good to "get things done", especially networking. But I don't know about best. Maybe ten years ago when a static binary was important, but now that everything is deployed as a container, that's off the table and things like Python or Kotlin are equally deployable, but way easier to use. Nowadays, if you _really_ need a single binary, you probably also need…

I've been developing Python professionally for 15 years, including almost a decade of deploying to containers. I think Go is much easier to use (especially in a container environment): 1. Static types make it much easier to read and write code for even a single individual, and the benefit scales superlinearly as the contributor count and code base age increase. Go also has a ton of other tooling which just outclasses…

> If you want reproducibility, it takes ~30 minutes just to resolve dependencies for relatively small-but-not-toy-sized projects.

I will be the first to complain about Python packaging, but 30 minutes is far far beyond anything I have experienced.

Re: I want off Mr. Golang’s Wild Ride (2020)

#363
post #345

Earlier quoted context omitted.

And the most interesting thing to my mind is how little the subtle gotchas matter. The key is they're subtle. If a subtly-wrong design takes only 20% of the code of the truly-correct design to express and understand and it works for 99% of the cases, then there's actually a benefit to a lot of users of using that architecture. If you end up in the swamp outside the happy path you can get badly burned, but that's the…

You have no idea what the "swamp" is. What if it's some catastrophic data loss, an RCE vulnerability or causes an individual to be permanently locked out of an important account? Still don't care because 80/20?

You've made an excellent point, and I think it's worth noting that half the companies that fail we never even hear the story of why.

If we see a lot of companies succeeding using Go as critical infrastructure, that might be evidence that the swamp is rarely those things. If we don't... The swamp might be those things.

Re: I want off Mr. Golang’s Wild Ride (2020)

#364
post #335

Earlier quoted context omitted.

What I wonder, is if by designing a language to enable happy corporates, rather than happy programers, is Go not shooting itself in the foot, as the now less happy programmers (because corp mandated Go) would move to other corps, creating more cost to the corporate than if they had use a more joy-inducing language. IOW, Go is probably great if you're quite big. But like most Google created dev tools, the questions we…

Java worse than Go in many regards, and many successful business seem to continue using it. Probably the marginal cost of one unhappy Scala magician leaving a company is far lower than the cost of writing all software in Scala, to keep Scala type magicians happy. Substitute "Scala" with any language that has high joy/freedom.

Tell me you don't know modern Java without telling me you don't know modern Java.

Re: I want off Mr. Golang’s Wild Ride (2020)

#365
post #177

Earlier quoted context omitted.

What I wonder, is if by designing a language to enable happy corporates, rather than happy programers, is Go not shooting itself in the foot, as the now less happy programmers (because corp mandated Go) would move to other corps, creating more cost to the corporate than if they had use a more joy-inducing language. IOW, Go is probably great if you're quite big. But like most Google created dev tools, the questions we…

I have asked to myself and answer seems yes. I wrote a tool many years ago in Go. It has saved me at least 100 times the hours I put in to code it. And I put in couple of weeks at max. The point here is I created a tool (my application) using another tool (Go) and I care quite a bit more about my tool, features, usability and so on. Programing language provided few features like single binary so I can install on VMs,…

I don't care about past tense.

If you had to write every day in Go, would you still be happy about it? (I sure wouldn't)

Re: I want off Mr. Golang’s Wild Ride (2020)

#366
post #125

The author fundamentally misunderstands language design. He picks an arbitrary design constraint, in this case correctness, and argues that any language that does not provide 100% correctness is bad. He uses Rust for his examples, a language that has correctness as one of its top design goals, and contrasts it with Go, for which correctness is not that important. So of course Rust will come out on top when the only m…

> He picks an arbitrary design constraint, in this case correctness, and argues that any language that does not provide 100% correctness is bad

I'm sorry, WHAT? This is not about correctness (and IMHO if you have something that makes this tradeoff you should not use it anyway), it's about pretending that correctness does not matter and that unexpected bad behavior is okay... cause you know 80/20.

IMHO Go has its use cases but it's definitely not a panacea. I don't mind people pragmatically picking it and using it. I am bothered by the zealots that think this is the best thing since sliced break (spoiler alert: it's not). Its authors and the community also seem to have an elitist / better than you default attitude when being humble and open would actually serve them better (package management and generics come into mind - what disasters)

Re: I want off Mr. Golang’s Wild Ride (2020)

#367
post #51

I see this point everywhere about Rust's union types and it always kind of irks me: > The point is, this [Result type] makes it impossible for us to access an invalid/uninitialized/null Metadata. With a Go function, if you ignore the returned error, you still get the result - most probably a null pointer. It's all about framing. You can just as equally say it is "impossible" to access an invalid Go FileInfo, because…

`Result` is just one possible use of enumerations ("union" types as you're calling them). The beauty is that you can make illegal states unrepresentable.

Re: I want off Mr. Golang’s Wild Ride (2020)

#368

A lot of the criticism is fair but not the part about runtime os detection. It is vastly preferable over conditional compilation since it is much easier to test. With conditional compilation you introduce code paths that are only traversed on, say, Windows. If most developers use, say, Linux you will introduce difficult-to-debug system-dependent bugs. This goes for similar things like SIMD-extensions too. If possible…

Platform specific code is typically implemented in Go using build tags, which are a less flexible form of conditional compilation.

Re: I want off Mr. Golang’s Wild Ride (2020)

#369
post #21

Earlier quoted context omitted.

Link?

Here it is: https://twitter.com/fasterthanlime/status/151945555551713690... (source: am fasterthanlime). No idea what HN's policy is on posting links to Twitter, but since you asked. Also if the consensus here is that that 2020 rant is "unfair and toxic", that twitter thread is not going to go over well either!

I quite like your 2020 rant. I also quite like Go. I think you make your points quite well even if I don't feel compelled to feel the same way you do after reading them. A detailed, finnicky, nitpicky critique like this makes for good insightful reading.

Re: I want off Mr. Golang’s Wild Ride (2020)

#370

Earlier quoted context omitted.

What an extremely convenient template to dismiss any nuanced argument against "worse is better". You even get to question my credentials a couple times! (I apparently pick metrics that are convenient to my argument, and fundamentally misunderstand programming language design). Even if I accept the premise that "I'm challenging Go on things it doesn't promise to deliver" (which is disingenuous to begin with — correctn…

> It does not deliver on "speed of coding", precisely because everyone, even seasoned Go developers, keep hitting its many design pitfalls. Well that’s a subjective statement. Are you basing that data or just your own feeling? I love writing Go and I’m way faster in Go than Rust. If I need more acceleration, of course Rust is the place to be, but if I just need to hammer out an API, Go is going to be much easier to d…

As someone who don't work actively in both Go and Rust, I perceive Rust to be readable and I feel more comfortable writing in Rust due to how strict it is in term of correctness.

If I have to write go, I need to have an IDE well setup. And I had to do it a couple of times to tweak a simple restapi. Rust is surprisingly faster to write more complex things, down to the details such as when I want strings to be obfuscated in the resulting binary.

Reading is also so much easier in Rust, surprisingly, despite the complex syntax. It is easier to swallow complex concepts such as how ethernet packet is shaped, or how entitiy component system stores data and execute systems, compared to reading a simple API in Go.

But again, this is just me.

> I love writing Go and I’m way faster in Go than Rust.

The problem is, not every go developer is you.

Post reply on HN