News for hackers. Stuff that matters.
Re:Go: What We Got Right, What We Got Wrong by groestl on Thursday January 04, 2024 @06:43PM (#38873801)
> it was kind of boring.

As a Java dev, I love boring. That's why I picked Java. Boring means less outages.

> find the simplest, plainest abstractions.

Not sure I'd give that medal to Go.

Re:Go: What We Got Right, What We Got Wrong by techdragon on Thursday January 04, 2024 @07:41PM (#38874245)
When did go get abstractions? (Only half joking)

Isn’t the entire language designed explicitly to prevent programmers from building their own sophisticated abstractions that could confuse other programmers who don’t understand that other persons code… as I understand it, if you can read go and understand basic programming you should be competent with go, and if you know your algorithms you should be proficient.

I hated old Java but the modern language isn’t as bad now some people have added some better syntax shortcuts the libraries are nearly twenty years more polished, and the IDE can nearly half write my code for me so the boilerplate and mind numbing aspect isn’t so bad… I loathe go because using it feels like programming with my hands tied behind my back trying on a keyboard with sandpaper keycaps, despite that, I didn’t bother “learning” go, I could just read it based on my Python/C/Basic/Java/C# experience instead of needing any extra learning.

Re:Go: What We Got Right, What We Got Wrong by zozbot234 on Thursday January 04, 2024 @07:52PM (#38874332)
K8s just so happens to be coded in Golang. A quick look at that overall codebase should be enough to disabuse people of this notion that Golang developers cannot possibly come up with confusing or overly sophisticated abstractions.
Re:Go: What We Got Right, What We Got Wrong by vasac on Friday January 05, 2024 @11:20AM (#38880777)
Maybe because k8s was originally written in Java ;)
Re:Go: What We Got Right, What We Got Wrong by plorkyeran on Thursday January 04, 2024 @09:08PM (#38874881)
My experience with reading Go is that the language not giving tools to build good abstractions has failed to stop developers from trying to do so anyway. There's never a line of code where I just plain don't know what's even going on syntactically as some languages can have, but understanding what it's actually doing can still require hopping through several files.
Re:Go: What We Got Right, What We Got Wrong by valenterry on Friday January 05, 2024 @12:23AM (#38875997)
In short: a simple (programming) language does means that every small part/line is simple. But it doesn't mean that the combination of all parts/lines is simple. Rather the opposite.
Re:Go: What We Got Right, What We Got Wrong by cryptos on Friday January 05, 2024 @02:35AM (#38876680)
Very true! I think a lot of the accidental complexity of early Java systems were rooted in the not so powerful language. If the language is too powerful (like Scala 2) developers do insane things with it. If the language is not powerful enough, developers create their own helpers and tricks everywhere and have to write a lot of additional code to do so.

Just compare Java streams with how collections are handled in Go and scratch your head how someone can come up with such a restricted language in this century.

Re:Go: What We Got Right, What We Got Wrong by groestl on Friday January 05, 2024 @02:56AM (#38876782)
> and have to write a lot of additional code to do so.

And most importantly: you have to read a lot of code like this, and understand it's assumptions, failure modes, runtime behavior and bugs, which are different every time. Instead of just reading "ConcurrentHashMap", and be done with your day.

Re:Go: What We Got Right, What We Got Wrong by sidlls on Friday January 05, 2024 @12:57AM (#38876175)
Eh, not really. Go’s philosophy around abstractions is quite poor. Duck typing begs engineers to create poor abstractions that simply reading a codebase does not necessarily lead to understanding. The bolted-on generics implementation actually makes this worse.
Re:Go: What We Got Right, What We Got Wrong by theshrike79 on Friday January 05, 2024 @01:47AM (#38876459)
> As a Java dev, I love boring. That's why I picked Java. Boring means less outages.

This is why I personally love Go too :)

There's very little room for fancy tricks, in most cases there is just one way to do things. It might be verbose, but writing code is the least time consuming part of my job anyway.