Live data from Hacker News

I Want Off Mr. Golang's Wild Ride

fasterthanli.me

91–100 of 508 posts

Re: I Want Off Mr. Golang's Wild Ride

#91

Rust is great it follows modern programming techniques and theory but it focuses a little too much on zero cost abstractions and because of that the abstractions are a bit complicated. Go is easy to learn but poorly designed with an incomplete type system hence all these strange issues. There is a vacuum that exists between Rust and Go. A language that utilizes modern Algebraic Data Types (like rust) but does not nec…

Yes, thank you! Going without ADTs and pattern matching after having them is unbearable. All I really want is Rust but easier to use, maybe I should just bite the bullet and dive into Rust?

From an ex Go-er (5 or 6 years professionally?), now in Rust for a bit over a year, I can say that Rust in the majority of the cases is "just as easy" as Go.

The thing with Rust is it gives you a lot more of the complexity rope if you desire to hang yourself with it. But, a realization I had early on, was that I didn't _have_ to. Not everything has to reuse perfect lifetimes or maximum possible generics. You don't have to chase every latest feature (Async, I'm looking at you). Without all of that, Rust is still an amazing language.

What I found most amazing after leaving Go was not something I expected: Iterators. Being able to easily mutate complex data structures, filtering in complex ways, zipping, chaining, etc. I could do the same exact thing in Go mind you, but in Go I found myself writing helper functions all over the place. In Go, my code felt so spread out, and was hard to just look at in one screen to understand. Rust (and Iterators) made so logic concise that you could view it in one screen and make sense of it.

Keeping code "locality" was oddly, by a large margin, my favorite thing about Rust.

Re: I Want Off Mr. Golang's Wild Ride

#92

Can we just stop with the "Rust vs Go" shit? If you want me to take a critique of Go seriously these days, pick another language to compare it to. Any other language. And yeah, I'm aware that 5 years ago there were a ton of "Go vs Java" articles. I didn't think much of them then, either.

Author here - I apologize for pulling Rust into this, but for the life of me couldn't find any comparable language that solves those problems "the right way".

I tried really hard. I knew a lot of people would instantly have that reaction, but I couldn't find another way to show that there is another way, short of pulling it out of thin air (which would've made for an even longer, less accessible article).

Re: I Want Off Mr. Golang's Wild Ride

#93

> (Note that path/filepath violates Go naming conventions - “don't stutter” - as it includes “path” twice). That guideline is for package/content name, not package directory names. https://blog.golang.org/package-names

Yeah, the author misunderstands the naming scheme which actually suggests this sort of repetition. See also, io/ioutil.

My mistake, I removed the relevant paragraph in the article.

Re: I Want Off Mr. Golang's Wild Ride

#94

A lot of people seem to be missing an overarching point, which is the benefits of a language having Sum types, so that edge cases can be represented clearly, and in a way where the consumer of the api can't fail to know they exist, and can't fail to handle them. Anyone thinking of making a new language today, should really get some familiarity with Option and Result types. They make so many things not only safer, but…

It's curious that after pretty universally rejecting checked exceptions, they have now returned as result.

Re: I Want Off Mr. Golang's Wild Ride

#95
> Computers, operating systems, networks are a hot mess. They're barely manageable, even if you know a decent amount about what you're doing. Nine out of ten software engineers agree: it's a miracle anything works at all.

I like that he identified the real problem right at the start.

Re: I Want Off Mr. Golang's Wild Ride

#96

Can we just stop with the "Rust vs Go" shit? If you want me to take a critique of Go seriously these days, pick another language to compare it to. Any other language. And yeah, I'm aware that 5 years ago there were a ton of "Go vs Java" articles. I didn't think much of them then, either.

Author here - I apologize for pulling Rust into this, but for the life of me couldn't find any comparable language that solves those problems "the right way". I tried really hard. I knew a lot of people would instantly have that reaction, but I couldn't find another way to show that there is another way , short of pulling it out of thin air (which would've made for an even longer, less accessible article).

LISP, surely? all HN knows that LISP is the perfect programming language... ;)

Re: I Want Off Mr. Golang's Wild Ride

#97

Can we just stop with the "Rust vs Go" shit? If you want me to take a critique of Go seriously these days, pick another language to compare it to. Any other language. And yeah, I'm aware that 5 years ago there were a ton of "Go vs Java" articles. I didn't think much of them then, either.

It's not, imo. It's an example of extremely differing philosophies - of which Rust is a great example of the opposite spectrum of Go. I imagine there may be a couple other examples, maybe something like Haskell (I wouldn't know), but I'm guessing the author just knew Rust better for this comparison. It's easier to illustrate problems that shouldn't be problems (in your eyes) if you have solutions for them - especiall…

I'd buy that if there hadn't been approximately 48764576459674 "Rust vs Go" (well, more usually "this is why Rust is way better than Go and you're some kind of moron if you're not switching to Rust today") articles in the last few months.

Re: I Want Off Mr. Golang's Wild Ride

#98

A lot of people seem to be missing an overarching point, which is the benefits of a language having Sum types, so that edge cases can be represented clearly, and in a way where the consumer of the api can't fail to know they exist, and can't fail to handle them. Anyone thinking of making a new language today, should really get some familiarity with Option and Result types. They make so many things not only safer, but…

It's curious that after pretty universally rejecting checked exceptions, they have now returned as result.

Result types are genericizable in a way that checked exceptions aren't (IIRC), which is huge for ergonomics.

Re: I Want Off Mr. Golang's Wild Ride

#99

Earlier quoted context omitted.

It's not, imo. It's an example of extremely differing philosophies - of which Rust is a great example of the opposite spectrum of Go. I imagine there may be a couple other examples, maybe something like Haskell (I wouldn't know), but I'm guessing the author just knew Rust better for this comparison. It's easier to illustrate problems that shouldn't be problems (in your eyes) if you have solutions for them - especiall…

I'd buy that if there hadn't been approximately 48764576459674 "Rust vs Go" (well, more usually "this is why Rust is way better than Go and you're some kind of moron if you're not switching to Rust today") articles in the last few months.

Okay, let me ask this then - what language would be better compared to contrast the shortcomings of Go that the other takes issue with?

Certainly not C++, no?

Post reply on HN