Developer tools · programming language
Go
Liked for its simple, readable style, easy goroutine concurrency, strong standard library and good performance; critics say it ignored prior language design, added generics late and lacks sum types.
Summarized from 3156 comments.
Liked for its simple, readable style, easy goroutine concurrency, strong standard library and good performance; critics say it ignored prior language design, added generics late and lacks sum types.
- recommend
- 1254
- criticize
- 651
- months recommended
- 13 of 13
- median owned, 63 owners said
- 5.9 years
Why people love it
Easy, scalable concurrency with goroutines · 4
Goroutines are actually better AFAIK because they distribute work on a thread pool that can be much smaller than the number of active goroutines.
Apr 2026 · commentyou can prototype with a direct solution and then just pretty much slap on concurrency by wrapping it in "go" and adding channels is amazing
Dec 2025 · commentgoroutines make building scalable network (web) servers trivial and fast. I'm not a big fan of the language, but the runtime is fantastic.
May 2026 · commentSimple, readable, opinionated language · 6
I used to hate Golang for not having generics and how verbose getting basic things done was. Then I read posts like this and realise, my god, Rob Pike was so, so right.
Mar 2026 · commentGo is relatively easy to learn, and the semantics of the language make it more difficult to write "clever" code that's difficult to understand.
Aug 2026 · commentGo lang has the middle ground whereby it's understandable with moderate effort while being statically typed with any necessary flexibility.
Jun 2026 · commentStrong stdlib and dependency culture · 4
I really don't like the lang itself but nobody will deny it has a very strong ecosystem and stdlib for handling around 95% of many well-solved problems
May 2026 · commentGo is also famous for encouraging a culture of keeping down dependency count while exposing a simple to use package manager and ecosystem.
Nov 2025 · commentI get most of the performance of Rust with very little effort a fully contained stdlib/test suite/package manger/formatter/etc.. with Go.
Nov 2025 · commentFast performance and stable memory · 5
I detest writing in Golang but once you get the hang of things you can get to the point where your code only takes twice the time to write and 2% of the time (and memory) to run.
Nov 2025 · commentI get most of the performance of Rust with very little effort a fully contained stdlib/test suite/package manger/formatter/etc.. with Go.
Nov 2025 · commentGo can be extremely stable in terms of memory footprint at both small and large scales, and it takes only a small amount of effort.
Jul 2026 · comment
What people warn about
Late generics, no real sum types · 3
It's perplexing that after C# and Java both notably shipped without generics initially then added them later that they decided to ship Go without generics
Jul 2026 · commentTechnically Go has those too, but must always have a nil case, which violates what one really wants out of sum types in practice.
Apr 2026 · commentthe amount of pointers used to represent optional fields (more generally the lack of algebraic types) is making it less effective/ more verbose than I'd like
Feb 2026 · commentIgnores lessons of prior languages · 4
they were bizarrely insistent on trying to come up with a design from first principles rather than taking the time to understand the literal decades of designs that came before
Sep 2026 · commentThey threw many babies out with the bathwater chasing yhe rather unspecified "simplicity" and making parts of the lsngusge more complex to use as a result.
Aug 2026 · commentthe language that was seemingly designed with either an ignorance of or disdain for the hard-won lessons from decades of prior programming languages
Jul 2026 · commentVerbose and slow to write · 3
I detest writing in Golang but once you get the hang of things you can get to the point where your code only takes twice the time to write and 2% of the time (and memory) to run.
Nov 2025 · commentI used to hate Golang for not having generics and how verbose getting basic things done was. Then I read posts like this and realise, my god, Rob Pike was so, so right.
Mar 2026 · commentthe amount of pointers used to represent optional fields (more generally the lack of algebraic types) is making it less effective/ more verbose than I'd like
Feb 2026 · commentConcurrency and runtime footguns · 3
Go's primitives for concurrency should almost never be used directly and Engineers below a certain skill level shouldn't be allowed to use them directly ever for long running production code.
Aug 2026 · commentSomeone, maybe Tolnay?, recently posted a short Go snippet that segfaults because the virtual function table pointer and data pointer aren't copied atomically or mutexed.
Nov 2025 · commentI have seen multiple major production outages in Golang code because people accidentally read a non-existent map key and used the default value.
Jul 2026 · comment
What hackers pick instead
- RustRecommended for compile-time memory safety without runtime cost, fast native code, and strong types with pattern matching; critics cite complexity, slow compiles, a thin stdlib and dependency sprawl.2039recommend
- PythonPython is recommended for its huge library ecosystem, readable pseudo-code-like syntax and fast productivity on scripts and small programs; critics cite slow performance, dynamic-typing pain and dependency conflicts.1067recommend
- ZigA low-level C replacement praised for comptime metaprogramming, explicit allocators and helpful safety checks, though critics say it lacks Rust's memory-safety guarantees and leaves footguns.743recommend
- TypeScriptAn expressive type system over JavaScript that catches bugs, shares code between frontend and backend and helps LLMs write better code, though escape hatches and compile-time-only types weaken its guarantees.574recommend
- JavaRecommended for strong runtime performance, a huge mature ecosystem and stable, well-signposted upgrades; critics cite slow startup, memory footprint and awkward, bolted-on language features.553recommend
Every quote
The 40 most detailed of 3156 comments. Each links to the original.
I detest writing in Golang but once you get the hang of things you can get to the point where your code only takes twice the time to write and 2% of the time (and memory) to run.
Mixed · Nov 2025 · in “Performance hacks for faster Python code”
I used to hate Golang for not having generics and how verbose getting basic things done was. Then I read posts like this and realise, my god, Rob Pike was so, so right.
Mixed · Mar 2026 · in “A Grand Vision for Rust”
It's perplexing that after C# and Java both notably shipped without generics initially then added them later that they decided to ship Go without generics
Mixed · Jul 2026 · in “Golang proposal: container/: generic collection types”
I really don't like the lang itself but nobody will deny it has a very strong ecosystem and stdlib for handling around 95% of many well-solved problems
Mixed · May 2026 · in “If AI Writes Your Code, Why Use Python?”
Goroutines are actually better AFAIK because they distribute work on a thread pool that can be much smaller than the number of active goroutines.
Recommends · Apr 2026 · in “Bluesky April 2026 Outage Post-Mortem”
Go is relatively easy to learn, and the semantics of the language make it more difficult to write "clever" code that's difficult to understand.
Mixed · Aug 2026 · in “Why Go Is an Ideal Language for AI-Assisted Software Engineering”
you can prototype with a direct solution and then just pretty much slap on concurrency by wrapping it in "go" and adding channels is amazing
Recommends · Dec 2025 · in “Thoughts on Go vs. Rust vs. Zig”
Go lang has the middle ground whereby it's understandable with moderate effort while being statically typed with any necessary flexibility.
Recommends · Jun 2026 · in “Are you expected to run five Python type-checkers now?”
goroutines make building scalable network (web) servers trivial and fast. I'm not a big fan of the language, but the runtime is fantastic.
Mixed · May 2026 · in “If AI Writes Your Code, Why Use Python?”
Go is also famous for encouraging a culture of keeping down dependency count while exposing a simple to use package manager and ecosystem.
Recommends · Nov 2025 · in “Shai-Hulud Returns: Over 300 NPM Packages Infected”
Languages like Go shine so well because it's a very opinionated language, where there's only one proposed way on how to implement things.
Recommends · Jun 2026 · in “LLMs are eroding my software engineering career and I don't know what to do”
I get most of the performance of Rust with very little effort a fully contained stdlib/test suite/package manger/formatter/etc.. with Go.
Recommends · Nov 2025 · in “Go's Sweet 16”
Go can be extremely stable in terms of memory footprint at both small and large scales, and it takes only a small amount of effort.
Recommends · Jul 2026 · in “PostgreSQL and the OOM Killer: Why You Must Use Strict Memory Overcommit”
Go is a language that is focused on simplicity and also the gofmt and go coding style makes that almost all go code looks familiar
Recommends · Feb 2026 · in “Understanding the Go Compiler: The Linker”
how golang's dependency and how golang's community works around dependencies and how golang has a really great stdlib to work with
Recommends · Mar 2026 · in “Telnyx v4.87.1 and v4.87.2 are compromised by TeamPCP”
the results are pretty close. In my local machine I'm getting ~3GHz in Rust vs ~2.5GHz in Go, which I think is really impressive.
Recommends · Aug 2026 · in “Go 1.27 Is Released”
Technically Go has those too, but must always have a nil case, which violates what one really wants out of sum types in practice.
Mixed · Apr 2026 · in “Sky – an Elm-inspired language that compiles to Go”
Go for populating the grid with words because with large grids there are combinatorial explosions, and Go's speed is beneficial.
Recommends · Apr 2026 · in “Ask HN: What are you building that's not AI related?”
Go strikes a balance between all the competing priorities that has, in my personal experience, improved the engineering velocity
Recommends · May 2026 · in “Just Fucking Use Go”
I keep surprising myself with how (relatively) quick and easy it is to develop concurrent systems with correct behavior in Go.
Recommends · Dec 2025 · in “Thoughts on Go vs. Rust vs. Zig”
Go's primitives for concurrency should almost never be used directly and Engineers below a certain skill level shouldn't be allowed to use them directly ever for long running production code.
Criticizes · Aug 2026 · in “Why Go Is an Ideal Language for AI-Assisted Software Engineering”
they were bizarrely insistent on trying to come up with a design from first principles rather than taking the time to understand the literal decades of designs that came before
Criticizes · Sep 2026 · in “Principles for Fast Tokio Applications”
Someone, maybe Tolnay?, recently posted a short Go snippet that segfaults because the virtual function table pointer and data pointer aren't copied atomically or mutexed.
Criticizes · Nov 2025 · in “A Note on Fil-C”
the amount of pointers used to represent optional fields (more generally the lack of algebraic types) is making it less effective/ more verbose than I'd like
Criticizes · Feb 2026 · in “Parse, Don't Validate and Type-Driven Design in Rust”
They threw many babies out with the bathwater chasing yhe rather unspecified "simplicity" and making parts of the lsngusge more complex to use as a result.
Criticizes · Aug 2026 · in “Golang proposal: container/: generic collection types”
the language that was seemingly designed with either an ignorance of or disdain for the hard-won lessons from decades of prior programming languages
Criticizes · Jul 2026 · in “Golang proposal: container/: generic collection types”
But gophers continually insist that all the problems are actually strengths right up until it’s fixed and then they retcon their previous beliefs.
Criticizes · Jan 2026 · in “An Honest Review of Go”
I have seen multiple major production outages in Golang code because people accidentally read a non-existent map key and used the default value.
Criticizes · Jul 2026 · in “Clojure 1.13 adds support for checked keys”
There are many things I dislike in Go as a langage but create a high level language that compiles to native makes sense in the cloud hosting/containers world.
Mixed · Sep 2026 · in “Fine, I'll build my own text editor”
I think this is one of the biggest missteps made in Go and in all honesty I don't think it was any more intuitive than going through a package manager.
Mixed · Sep 2026 · in “Don't couple your Go code to GitHub”
Portable binaries are a blessing, fast compile times, and the choices made around 3rd party libraries and vendoring are all just icing on the cake.
Recommends · Nov 2025 · in “Go's Sweet 16”
The article is on point on the strengths of go, and in many cases, those other languages you say, you will find it really hard to do the same thing
Mixed · May 2026 · in “Just Fucking Use Go”
I think Go and Rust have had great success avoiding all these dumb arguments by having built-in opinionated formatters from nearly the beginning.
Recommends · Jul 2026 · in “Ruff v0.16.0 – Significant new updates – 413 default rules up from 59”
Unsafe in a language like Go is very rare, mostly because people do not program at such low system level to get the max performance out of it.
Mixed · Nov 2025 · in “Several core problems with Rust”
Modern languages that don't throw exceptions for every error like Rust, Go, and Zig make much more sane telemetry reports in my experience.
Recommends · Mar 2026 · in “I'm Too Lazy to Check Datadog Every Morning, So I Made AI Do It”
One of the key advantages of Go is its very compatible, you can compile and run early versioned code on the latest compiler without concern
Recommends · Mar 2026 · in “Stop picking my Go version for me”
You don't need GC if you don't produce garbage. And since Go uses stack-based memory like C you can avoid producing garbage just the same.
Recommends · Jul 2026 · in “Solod: Go can be a better C”
Liking a programming language as is, operating within its safe-envelope and pushing this envelope with intent and care is not a bad thing.
Recommends · Nov 2025 · in “A million ways to die from a data race in Go”
in Go you end up having to carefully read through each dependency's code to figure out if you need to be using 'errors.Is' or 'errors.As'
Mixed · Feb 2026 · in “Farewell Rust”
I've been landing on go for a similar reason, which was the realization that LLMs are in many ways just massive cargo culting machines.
Recommends · Aug 2026 · in “What's the best programming language for coding agents?”
Counts from 1,795,640 Hacker News comments, Nov 2025 to Nov 2026. How we count · Report a mistake