Live data from Hacker News

Just Use Go

blainsmith.com

141–150 of 238 posts

Re: Just Use Go

#141

I should write one of these for Haskell. Huffing abstractions is great for boring, line-of-business applications. Goroutines? Meh. Software transactional memory and green threads? Heck yeah. An actual type system? Chef's kiss. Scott Wlaschin from the F# world has written and talked extensively about F# for "boring" software. It works equally well in Haskell. You don't need to use type-level meta programming to spit o…

Please don't, at least not mimicking the "edgy 13 year old thinks it comes across as cool" tone.

Re: Just Use Go

#142
Yeah, it breaks when the author decides to move from Github into Gitlab to protest against Microsoft.

Time to update all code references to Gitlab across the globe, in every single Go project.

Or spend the time configuring redirects between URL mappings, across everything that depends on it.

Not to mention that except for lacking garbage collection, even Turbo Pascal 7 for MS-DOS was more modern in language features, with faster compile times, on a 20 MHz powered computer.

Re: Just Use Go

#143

I like go, but a lot of little things stop me from loving it. Like, enums. I get a lot out of the box when I use an enum in Java or Kotlin. Converting to/from a String is trivial. Type safety ... exists. I can do that in Go, but I have to hack it in, for every single enum type I want to represent. Enums are not a thing in the language, which means its easier to keep the language in your brain all at once, but at the…

I really wish they had added Enums instead of the stupid generics.

I would already be happy with enumerations Pascal style from 1976, without the const/iota dance.

Re: Just Use Go

#144
post #101

Earlier quoted context omitted.

It sets primitives to 0, "", false etc. Which is almost always but not always fine. And if they're complex objects you still get NPEs To get true nullable fields you need to use pointers. That's a whole topic in itself but they're awkward. It's much worse than true nullable objects that your compiler can check for NPEs. It throws fewer NPEs but at the expense of data integrity where you don't know if your 0 is actual…

What if Go went all the way? Referencing a zero pointer (nil) gives you the zero value of the pointed to type. If you try to access a zero map, it tries to deference the zero pointer to the underlying buffer. The zero pointer gives you the zero slice with zero length. The presence check fails without crashing and you get some pretension of reasonable behaviour.

So what happens when you write through the nil pointer?

Re: Just Use Go

#145

I can't see any reason this list why I should use Go over C# / .NET. .NET has almost all these upsides, but with a concurrency model (async/await) that is (now) more transferable to other languages.

I only have one reason, devops ecosystem where Go is expected nowadays, like plugins for something.

Otherwise Java, .NET, Typescript (with possible C++ addons).

Re: Just Use Go

#146

Earlier quoted context omitted.

Let me copy paste my other comment: "This is getting really fucking irritating. Every 3rd comment on every HN post is "This is LLM", which has become a proxy for "I dont like it so it must be llm"

Yeah, I suppose I am in the minority here, but I still judge a posts on their merits. LLM witch hunts are tiresome. (Perhaps the worst part too is that an accusation can be leveled and there's no way to counter. If it's a vacuous fluff piece, say so—irregardless of who/how it was written. And there we are judging a piece on its merits…)

Unlike witches, LLM content exists. And worse, it has proliferated to a point where you are more likely to spot LLM content in the wild then human written content.

Witch hunts are bad because they target innocent people and burn them at the stake. When the whole internet has been filled with LLM content, it is not unreasonable, expected even, that you start accusing everything of being an LLM, because, most likely, it is.

Re: Just Use Go

#147
post #6

> The boring choice is the right choice. It always was. Right, absolutely correct, Java is a great choice, so why does this post keep going on about Go?

Well, Spring (Boot) is so hard to avoid running into at day jobs. And Spring is hell.

Re: Just Use Go

#148

Earlier quoted context omitted.

I can see reasons why people don't want to use .NET if Go is available. .NET has its merits but it's bloated, compilation is slow, and I find it's tooling to be really annoying. For me go is just above c# and both of those are not super high on my list.

I've never understood what is meant by "bloated", would you mind explaining, so perhaps I could better understand? If it's "Large standard library", I think that's a selling point. Having anything you need available ( although these days, via optional microsoft.* packages ) helps keep projects consistent between different places. If it means "Different ways to do the same thing", I can understand that criticism bette…

The .net sdk is like 1gb, go is like 60mb or something. It's annoying when that matters.

More so, nothing happens quickly with it's tooling, and the tooling isn't friendly. All of a sudden I can't build my project in vsstudio(also bloated but admittedly optional but may be required depending on where you work). Clean build also fails. So I have to go to the command line and type in dotnet restore, dotnet build, magic it works now. ???

Okay time to install a package because msft has its own packages for things like aspnet but now I want to serialize json. Cool newton soft sounds good. Ah now I need a package manager, I'll install nuget. Oops I need to tweak this weird xml file with lots of options.

I press compile I wait 3 minutes to realize there is an error. Okay it builds and looks good in debug mide now I want to send my application to a friend who doesn't have .net runtime...

With go it's more like. Okay I automatically have web access from the std lib. I want a framework oh I already have a package manager. Edit my toml. One command done. Time to compile, poof done in 2 seconds. I send the binary to my friend and they run it.

I understand some of these are 1 time cost things, but I am requesting you to read between the lines as these aren't examples I am trying to quibble over. The point is the friction that go has focused on removing by being quick and small. It has less legacy cruft but I tried to ignore as much of that as I could.

Also keep in mind j am not a big go fan. It's not my favorite language but it is way easier to deal with on a regular basis for me

Re: Just Use Go

#149

[flagged]

> Screams LLM. This is getting really fucking irritating. Every 3rd comment on every HN post is "This is LLM", which has become a proxy for "I dont like it so it must be llm"

I think your blame is misplaced here. LLMs have poisoned the Web, any reasonable person is right to be extremely very of any content they come across on the web in 2026.

The LLM models (or rather the AI companies pushing LLMs) did this. The people who are complaining are reacting very predictably. Between the proliferation of AI generated content, and people complaining about (potentially) false accusations, personally the former annoys me way more.

Re: Just Use Go

#150
post #66
post #6

> The boring choice is the right choice. It always was. Right, absolutely correct, Java is a great choice, so why does this post keep going on about Go?

EJB, Spring, Ant, Struts (I'm getting old - Like Hot Java Alpha 3 and Java applets old), maven, pom files, etc. I used to love Java but the complexity merchants showed up and ruined the party. 1.5 was just coming out when I stopped doing Java dev. Kotlin might pull me back into the fold though for when I can't use Go.

The good stuff landed in Java 8, so you left the party too early. From Java 8 on it has changed direction completely (less OO + JavaBeans, more functional + ADTs). It feels like a completely different language from the Java 1.4 / 5 days.

https://en.wikipedia.org/wiki/Java_version_history#Java_SE_8...

Post reply on HN