Work in progress: 82,651 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #163

D

Dave Cheney

Personal blog · dave.cheney.netprogramming

Dave Cheney's personal blog at dave.cheney.net covers programming. Since 2012, 272 different Hacker News readers have linked it 389 times, most often “cgo is not Go (2016)”. It is still writing: the last post was on 2025-12-18, and you can follow it by feed.

Visit the blog
389mentions?
4recommend?
272HN people?
2012–2026first – last linked?
Links on Hacker News per year · peak 45 in 2018

Rarely recommended · 4 of 40 sampled comments recommend it?

Why HN links it

HN readers link Dave Cheney's blog as a source of in-depth Go articles and practical Go advice, such as Practical Go, Functional Options and the error-handling posts.

Recommended for · 4 comments
Called 'very high quality' Go articles and 'great readings' on errors; listed among favourite blogs.

Summarised by Claude from a sample of 40 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

Most-linked posts?

  1. cgo is not Go (2016)
    19 people · 21 mentions · first linked 2017-03-24
  2. Functional Options for Friendly APIs (2014)
    11 people · 11 mentions · first linked 2018-03-02
  3. How the Go runtime implements maps efficiently without generics
    9 people · 12 mentions · first linked 2018-05-29
  4. An introduction to cross compilation with Go
    8 people · 8 mentions · first linked 2012-09-08
  5. Don't just check errors, handle them gracefully (2016)
    8 people · 8 mentions · first linked 2017-12-11
  6. Channel Axioms
    6 people · 9 mentions · first linked 2017-06-09
  7. Functional Options for Friendly APIs in Go
    6 people · 6 mentions · first linked 2014-10-16
  8. A few bytes here, a few there, pretty soon you’re talking real memory
    5 people · 7 mentions · first linked 2021-01-05
  9. Resources for new Go programmers
    5 people · 6 mentions · first linked 2013-01-02
  10. Cgo is not Go
    5 people · 5 mentions · first linked 2016-01-18

What Hacker News says?

  1. scriptnull · 2021-05-27Recommends
    Time to pull up my RSS reader! https://drewdevault.com/ http://jvns.ca/ https://www.benkuhn.net/ https://danluu.com/ https://scattered-thoughts.net/ http://antirez.com/ https://www.kalzumeus.com/ https://neilkakkar.com/ https://zachholman.com/ http://rachelbythebay.com/w/ https://endler.dev/ https://www.expatsoftware.com/articles/ https://www.the-paper-trail.org/ https://tonsky.me/ https://dave.cheney.net/ https://b…

    Comment linking /

    on “Ask HN: Favorite Blogs by Individuals?”
  2. Submitted Why Slack is inappropriate for open source communications as a story · 847 points

    HN discussion
  3. I think a useful iteration of that pattern is one called Functional Options : * https://dave.cheney.net/2014/10/17/functional-options-for-fr... * https://github.com/uber-go/guide/blob/master/style.md#functi...

    Comment linking /2014/10/17/functional-options-for-friendly-apis

    on “How I write HTTP services in Go after 13 years”
  4. Submitted Practical Go: Real-world advice for writing maintainable Go programs as a story · 688 points

    HN discussion
  5. I think the parent was a bit tongue-in-cheek. It's in reference to the keyboard layout vi was developed with and the fact many vi users are obsessed with keeping their fingers on/near the home row (much like, "a /real/ vi user doesn't use the mouse"). Ctrl-[ is an equivalent to ESC on American English keyboards. https://dave.cheney.net/2017/08/21/the-here-is-key https://vim.fandom.com/wiki/Avoid_the_escape_key#Avoid…

    Comment linking /2017/08/21/the-here-is-key

    on “New 13-inch MacBook Pro”
  6. Submitted Clear is better than clever [pdf] as a story · 498 points

    HN discussion
  7. Conversely, more sophisticated algorithms, and particularly monomorphization, may bloat the code size, causing icache, L2/L3 cache, and TLB misses. (Also slows compilation.) I think this is under-appreciated because it doesn't show in microbenchmarks. (I wish I knew of an easy way to measure how much cache pressure you're causing from a microbenchmark.) I suspect for this reason it'd be better in Rust to use a Go-li…

    Comment linking /2018/05/29/how-the-go-runtime-implements-maps-efficiently-without-generics

    on “Rust is now overall faster than C in benchmarks”
  8. Submitted Clear is better than clever as a story · 365 points

    HN discussion
  9. https://dave.cheney.net/practical-go/presentations/qcon-chin... > 8.3. Never start a goroutine without [knowing] when it will stop. 100% agreed with the concept, but even the final example is flawed. That'll unblock and continue immediately after `close(stop)`, without being able to do two important things: it can't tell you when it's done shutting down, and it can't tell you if it encountered an error. Fixing this…

    Comment linking /practical-go/presentations/qcon-china.html

    on “Practical Go: Real-world advice for writing maintainable Go programs”
  10. Submitted The Zen of Go as a story · 328 points

    HN discussion
  11. I suspect that they borrowed this idea from Golang's "composite literal" spec. which is really nice feature https://dave.cheney.net/2014/10/04/that-trailing-comm

    Comment linking /2014/10/04/that-trailing-comm

    on “ECMAScript 2017 Language Specification”
  12. Submitted Go 1.7 toolchain improvements as a story · 248 points

    HN discussion
  13. If you use ARM devices, it might be worth pointing out that Dave Cheney has unofficial tarballs of _older_ versions here: http://dave.cheney.net/unofficial-arm-tarballs No 1.5 (yet), but if, like me, you do ARM stuff, you might want to bookmark this. And of course the cross-compiler works, but still. (edit: moved mention of ARM to first line)

    Comment linking /unofficial-arm-tarballs

    on “Go 1.5 is released”
  14. Submitted The ‘here is’ key as a story · 241 points

    HN discussion
  15. if you do check it out, you can save some time and get Dave Cheney's unofficial go arm binaries http://dave.cheney.net/unofficial-arm-tarballs

    Comment linking /unofficial-arm-tarballs

    on “Lime – Experimental Sublime Text clone”
  16. Submitted Taking Go modules for a spin as a story · 229 points

    HN discussion
  17. It wouldn't be especially surprising to me. JSON's parsing performance is difficult, whether or not the language doing the parsing is fast or not. There's a reason that there are almost always libraries claiming faster JSON performance, regardless of the language. Go is marketed as a fast language, and they're still trying to build a high performance JSON parser [0]. Parsing JSON will always be slower than most of t…

    Comment linking /high-performance-json.html

    on “Xi-Editor Retrospective”
  18. Submitted Go’s hidden pragmas as a story · 221 points

    HN discussion
  19. https://dave.cheney.net/high-performance-go-workshop/dotgo-p...

    Comment linking /high-performance-go-workshop/dotgo-paris.html

    on “Practices for writing high-performance Go”
  20. Submitted Be wary of functions which take several parameters of the same type as a story · 218 points

    HN discussion
  21. I think Go can only be defined as "simple" in the New Jersey (worse is better) sense of simple, that is: "it is more important for the implementation to be simple than the interface." A lot of things about Go are not simple. In my opinion a simple language is not about how simple it is to write a parser or a compiler for that language, but it's about how many different non-trivial and arbitrary pieces of information…

    Comment linking /2014/03/19/channel-axioms

    on “Go is not an easy language”
  22. Submitted Never edit a method, always rewrite it? as a story · 199 points

    HN discussion
  23. gen220 · 2019-08-01Recommends
    Not necessarily a collection of beginner tutorials, but for what they're worth, these are some very high quality in-depth articles on pieces of the language: - https://dave.cheney.net/practical-go - https://www.ardanlabs.com/all-posts/ If you're looking for more high-level, "get-things-done" stuff, this has been a great resource for getting off the ground: - https://github.com/astaxie/build-web-application-with-gola…

    Comment linking /practical-go

    on “Ask HN: Your favourite tutorial for total beginners?”
  24. Submitted How the Go runtime implements maps efficiently without generics as a story · 197 points

    HN discussion
  25. They use comments for compilation directives, build instructions, code generation and other such stuff. https://dave.cheney.net/2018/01/08/gos-hidden-pragmas https://dave.cheney.net/tag/build-constraints https://blog.carlmjohnson.net/post/2016-11-27-how-to-use-go-...

    Comment linking /tag/build-constraints

    on “25 Years of PHP”
  26. Submitted Understand Go pointers as a story · 189 points

    HN discussion
  27. That solved the hot split problem, but that was more of a once-in-a-while gotcha. The main downside for Rust specifically was the complications that arise when doing any sort of C interop in the presence of growable stacks. This mattered more for Rust than Go, since Rust is relatively more intended to freely intermingle with C code (and other languages via, C FFI), whereas the happy path for Go tends to involve excl…

    Comment linking /2016/01/18/cgo-is-not-go

    on “Falling in love with Rust”
  28. Submitted Cross compilation just got better in Go 1.5 as a story · 177 points

    HN discussion
  29. Go is much easier to learn, and probably takes less time to develop with on average. Also, Rust is not really a Go competitor: https://dave.cheney.net/2015/07/02/why-go-and-rust-are-not-c...

    Comment linking /2015/07/02/why-go-and-rust-are-not-competitors

    on “Falling in love with Rust”
  30. Submitted Go 1.3 Linker Improvements as a story · 171 points

    HN discussion

Search all of HN for dave.cheney.net

Linked by the same people?