Live data from Hacker News

Lies we tell ourselves to keep using Golang

fasterthanli.me

131–140 of 561 posts

Re: Lies we tell ourselves to keep using Golang

#131

Earlier quoted context omitted.

> operator overloading is the spawn of Satan I used to agree with you, because of the abuse of operator overloading like iostreams and making DSLs with it. D does support it, but in a way that discourages non-arithmetic uses (such as it won't allow = > to be overloaded separately). Operator overloading allows for things like complex numbers, arbitrary precision numeric types, etc., to be done with a library module.

> Operator overloading allows for things like complex numbers, arbitrary precision numeric types, etc., to be done with a library module. Why is this desirable vs. implementing those types in the language itself? I think we've gone down a weird path where implementing things "in userspace" is seen as an inherent good -- why?

> Why is this desirable vs. implementing those types in the language itself?

That's a very good question.

1. It's simpler. In D, we transitioned from a builtin complex type to a library type. It was a happy experience. The simpler the compiler, the easier it is to deal with.

2. Most any programmer can create a library type. Relatively few can modify a compiler to add a new type.

3. It takes the pressure off the compiler team to develop more arithmetic types.

4. Users can add arithmetic types without needing anybody's consent, and can do it right now.

5. It tests and verifies the metaprogramming abilities of the language.

Re: Lies we tell ourselves to keep using Golang

#132

Earlier quoted context omitted.

If a language spec is only a page long, it's leaving a bunch of important things unspecified.

Can you clarify further? Otherwise this seems like a shallow dismissal, which is against our HN community guidelines, and makes for uninteresting discussion.

Programming languages have a large amount of irreducible complexity. A page long spec for a language more complex than Brainfuck cannot represent the critical distinctions correctly.

Without that clarity, you end up with incompatible, spec-compliant implementations. This is a disaster, and so below a certain point relative to language complexity a shorter spec is simply wrong.

Re: Lies we tell ourselves to keep using Golang

#133
post #94

Earlier quoted context omitted.

Calling a well documented blog post, even one you disagree with, a "shitpost" should be an embarrassment to you. Guy makes a blog post about Go a few years ago. It gets posted here time and time again, not of his doing. A bunch of people challenge his premises, so he makes another post diving deeper into his arguments. So what? What's up with the literal hundreds of "Golang is amazing" posts this site has had? Is som…

But he doesn't dive deeper! If anything, he's more shallow. This just doesn't read like an honest appraisal of Go's pros and cons to me, he already has his mind set from the beginning (ok, we knew that two years ago already) and is just heaping on invectives: "one really good bit does not a platform make", "Evidently, the Go team didn't want to design a language", "Go is not adequate for production services unless yo…

I'd choose Node or PHP over Go for a greenfield project. (Although I can't think of a case where I'd choose them over Python.) All of those languages at least give me an FFI escape hatch in case I need it that isn't absolutely horrendous, both from a dev experience standpoint and a performance standpoint.

Re: Lies we tell ourselves to keep using Golang

#134
Does anyone know the guidelines of when to flag submissions?

For me, submissions that spread misinformation should be flagged. But just because you don't agree or like the article, doesn't mean that you should flag it. I guess this submission is flagged because some people don't like it but HN doesn't have downvote button, so they use the flag button as an alternative.

Re: Lies we tell ourselves to keep using Golang

#135

Earlier quoted context omitted.

For me, the goroutines + channels + select is what makes Go leagues above any other popular language. As far as I know, no other popular language allows you to read from multiple queues at the same time, which is an extremely useful pattern in concurrent programming. The only way to "select" from multiple sources in other languages is to use some kind of poll/select syscall on file descriptors - and even that is very…

here's some documentation on how to do it in C++ with boost in 2008, before go even existed: in this example two threads pull events from a single queue. https://www.boost.org/doc/libs/1_35_0/doc/html/boost_asio/tu... (of course it was possible before)

I'm not really experienced with Boost so I'm having a hard time understanding what that snippet does. Is there any example that is completely self-contained (or at least limited to STL)?

Re: Lies we tell ourselves to keep using Golang

#136

Earlier quoted context omitted.

>read from multiple queues at the same time That's a trivial thing in javascript.

How? Javascript is single threaded run loop.

Concurrency is not parallelism: https://go.dev/blog/waza-talk#:~:text=In%20programming%2C%20....

Re: Lies we tell ourselves to keep using Golang

#138

You guys flagged this? That is not the move of a vibrant, growing, confident community. I’m no fan of the Rust jihad myself, but this isn’t spam or hate speech or whatever. That is a super weak move.

Flagging articles that criticize popular tools seems to be common. Particularly so with Go specifically.

Re: Lies we tell ourselves to keep using Golang

#139
post #8

What's up with the anti-Golang shitposts lately? I liked fasterthanlime better when he didn't just sound like a card-carrying Rust zealot. This isn't even about the practicalities of his argument really; optics matter, and it's especially bad since the Rust community used to be known for its politeness and always being fair to other language communities.

From the outside the Rust community seems so defensive about Go that it makes me very reluctant to dive deeper into Rust.

One person is not the community

Re: Lies we tell ourselves to keep using Golang

#140

I've used Go and Rust professionally and in side projects, and I had used Go first before Rust. When I first used Go, I was like "oh wow, this is so simple and easy", and I didn't realize that I was putting up with the language. Learning Rust was relatively harder, but once I did and wrote some non trivial programs in Rust, it was like a pathway in my brain opened up and was previously blocked, and then when I went b…

I will say that playing around with Rust was an enjoyable experience, but it still has some warts where I think it's not quite ready for serious work yet (even though serious work is being done with it).

These days I find myself leaning heavily on either Haskell or Elixir/Erlang's ecosystem (with a preference for the latter). Or JavaScript (there's just an order of magnitude more jobs)...

Post reply on HN