logoalt Hacker News

krick11/08/202413 repliesview on HN

Bringing up goland always annoys me for some reason. Like, it's really practical, it is fast, but not actually low-level, it compiles fast, and most importantly it is very popular and has all the libraries. It seems like I should use it. But I just almost irrationally hate the language itself. Everything about it is just so ugly. It's a language invented in 2009 by some C-people who are apparently oblivious to everything that excited PL design folks for the last 20 years (as of 2009). PHP in 2009 was already a more modern and better designed language than goddamn golang. And golang didn't really improve since. I just cannot let it go somehow.


Replies

pjmlp11/08/2024

It is worse than that, as Go initially lacked generics (introduced by CLU and ML in 1976), still doesn't do even basic Pascal enumerations (1970) rather the iota/const dance, let alone the 1990's programming language design surface.

I only advocate for it on the scenarios where a garbage collected C is more than enough, regardless of the anti-GC naysayers, e.g. see TamaGo Unikernel.

show 3 replies
pimeys11/08/2024

I know, I'm on the same boat. What I realized is I just need to avoid the companies using Go and I don't really need to be vocal about my dislike. It's not my loss if others find the language useful, but for me it either solves problems I'm not interested in solving, or the language and tooling just does not make it for me.

But, I can always just write Rust and be happy where I am. Or, to be honest, would not be very unhappy with F#, Haskell or Ocaml either.

show 2 replies
guappa11/08/2024

I've had to use go occasionally and it feels like the language is designed to stop me from achieving my goals.

The standard library is unimpressive (to be generous), it has plenty of footguns like C but none of its flexibility.

Also for some reason parenthesis AND \n are required. So you get the worse of C and python there.

show 2 replies
mattgreenrocks11/08/2024

I’m convinced there’s a contingent of devs who don’t like/grok abstraction. And it overlaps partially with stated goals of an easy language to onboard inexperienced devs with.

Nothing wrong with that, but it will probably never work for me. Newer versions of Java are much more enjoyable to work with versus Go.

show 4 replies
seanw44411/08/2024

Man, Go gets a lot of hate on here. It's certainly not the most flexible language. If I want flexibility + speed, I tend to choose Nim for my projects. But for practical projects that I want other people to be able to pick up quickly, I usually opt for Go. I'm building a whole product manufacturing rendering system for my company, and the first-class parallelism and concurrency made it super pleasant.

I will say that the error propagation is a pain a lot of the time, but I can appreciate being forced to handle errors everywhere they pop up, explicitly.

show 3 replies
dinosaurdynasty11/08/2024

I use golang for work and have done a fair amount of Rust programming. Rust feels like the higher level language. This really shouldn't be the case.

madeofpalk11/08/2024

go’s error handling patterns, while lacking every established feature that makes it ergonomic, is baffling.

Embarrassing that developers are still forgetting nil pointer checks in 2024.

show 1 reply
tuveson11/08/2024

Fast to compile, fast to run, simple cross-compilation, a big standard library, good tooling…

As ugly and ad-hoc as the language feels, it’s hard to deny that what a lot of people want is just good built-in tooling.

I was going to say that maybe the initial lack of generics helped keep compile times low for go, but OCaml manages to have good compile times and generics, so maybe that depends on the implementation of generics (would love to hear from someone with a better understanding of this).

show 3 replies
devmor11/08/2024

golang feels like someone wanted to write a "web focused" version of C, but decided to ignore every issue and complaint about C raised in the past 25 years

It's a very simple and straightforward language, which I think is why people like it, but it's just a pain to use. It feels like it fights any attempt at using it to do things optimally or quickly.

show 1 reply
LinXitoW11/08/2024

Thank god I'm not the only one. I can still remember when the Go zealots were everywhere (it's cooled down now). Every feature Go didn't have was "too complicated and useless", while the few features it did have were "essential and perfect".

I've really tried giving Go a go, but it's truly the only language I find physically revolting. For a language that's supposed to be easy to learn, it made sooooo many weird decisions, seemingly just to be quirky. Every single other C-ish language declares types either as "String thing" or "thing: String". For no sane reason at all, Go went with "thing String". etc. etc.

I GENUINELY believe that 80% of Gos success has nothing to do with the language itself, and everything to do with it being bankrolled and used by a huge company like Google.

show 4 replies
marcosdumay11/08/2024

Whatever reasons are there for using or not the language, tokenising and parsing are absolutely not a problem you want to solve with it.

dlisboa11/08/2024

> It's a language invented in 2009 by some C-people who are apparently oblivious to everything that excited PL design folks for the last 20 years (as of 2009).

Is there a term equivalent to "armchair quarterback" in programming? Most programmers are already in armchairs.

It's the equivalent of yelling at the TV that the ultra-successful mega-athlete sucks. I can't imagine the thought process that goes into thinking Ken Thompson, Rob Pike and Robert Griesemers are complete idiots that have no clue of what they were doing.

show 1 reply
randomdata11/08/2024

> But I just almost irrationally hate the language itself.

That's the point. It's a rejection of the keyboard jockeys who become more concerned with the code itself than the problem being solved.

show 1 reply