Moonbound
herecomesthemoon.net · Personal blog · on HN since 2024
Personal blog covering C++, Rust, Go, the Helix editor and other programming language design topics.
What HN saysCommenters cite it on C++ ABI politics, Helix's out-of-the-box usability and Go's multiple return values, which one dislikes.
17HN people shared it
6linked it in comments
17stories submitted
1.2Kstory points
3 months agolast shared
2024people per year2026
Most-shared posts
- 1The two factions of C++4 people · 555 points · first shared 2024 · 653 comments on HN
- 2I Like the Helix Editor3 people · 28 points · first shared 2025 · 1 comments on HN
- 3Type Inference in Rust and C++3 people · 11 points · first shared 2025 · 2 comments on HN
- 4Carbon is not a programming language (sort of)2 people · 166 points · first shared 2025 · 97 comments on HN
- 5Were multiple return values Go's biggest mistake?2 people · 40 points · first shared 2025 · 21 comments on HN
- 6Solving LeetCode problems with Racket: I don't know what I expected2 people · 6 points · first shared 2024 · 1 comments on HN
- 7How many options fit into a boolean?2 people · 4 points · first shared 2025 · discussion on HN
- 8Remaking Party House2 people · 2 points · first shared 2026 · discussion on HN
- 9Pipelining might be my favorite programming language feature1 people · 372 points · first shared 2025 · 348 comments on HN
- 10The tech interview is a legible, reasonably well-designed process1 people · 3 points · first shared 2025 · 1 comments on HN
- 11Were multiple return values Go's biggest mistake?1 people · 2 points · first shared 2025 · 1 comments on HN
What HN people wrote when they linked it
saltminer · 2024-12-02
The fact that C++ development has been effectively hijacked by the "no ABI breakage, ever"/backwards compatibility at all costs crowd certainly speaks to this.
https://herecomesthemoon.net/2024/11/two-factions-of-cpp/
There are a lot of pre-compiled binaries floating about that are depended on by lots of enterprise software whose source code is long gone, and these are effectively locked to x86_64 chips until the cost of interoperability becomes greater than reverse engineering their non-trivial functionality.
vanderZwan · 2025-09-01
> In fact, you could use Nim as a production-ready alternative to the upcoming Carbon language. Nim has fantastic interoperability with C++, supporting templates, constructors, destructors, overloaded operators, etc. However, it does not compile to readable C or C++ code, which is unlike Carbon's goals.
Well, that really depends on what the reason for one's interest in Carbon is, which is slightly hinted at by the last sentence. From what I understand big goal is to be able to do automated migration of large C++ codebases at Google to a saner language. Mond had a nice blogpost musing about it[0]. Nim is not that.
Of course, neither is Carbon yet, and we'll have to wait and see if it reaches that point or if it ends up on killedbygoogle.com. I'm rooting for Carbon though, it's a cool idea.
Anyway, that is a different ambition than looking for a successor language that lets you use existing C++ code without requiring that the latter is changed, which is what Nim is suggested to be good at here.
[0] https://herecomesthemoon.net/2025/02/carbon-is-not-a-language/
Mond_ · 2025-10-29
See https://herecomesthemoon.net/2025/06/i-like-helix/, Helix is a very different experience from neovim, and basically everything works out of the box with no configs or setup required.
It's quite impressive how everything just works and how easy onboarding is.
homebrewer · 2025-07-15
Helix is the most interesting editor I've seen in a while. Very sane configuration — my config includes just one line to change the default theme to something with more contrast.
No "AI" shit pushed down your throat, and it takes the vim idea of applying actions to blocks of code, and swaps them around — you first select the code, and then apply an action to it. So you get visual feedback before doing the action and can clearly see what's going to be changed without having to spam visual mode all the time.
There was a decent article recently which explains some of the things I like in it also:
https://herecomesthemoon.net/2025/06/i-like-helix/
lelanthran · 2025-05-04
God's multiple returns is, from someone whose primary language is Go for now, crap.
See https://herecomesthemoon.net/2025/03/multiple-return-values-in-go/ which goes into detail.
chippiewill · 2025-02-21
C++ _has_ been getting safer and safer to write. However:
1. The dangerous footguns haven't gone away 2. There are certain safety problems that simply can't be solved in C++ unless you accept that ABI will be broken and the language won't be backwards compatible.
Circle (https://www.circle-lang.org/site/index.html) and Carbon (https://docs.carbon-lang.dev/) were both started to address this fundamental issue that C++ can't be fully fixed and made safe like Rust without at least some breaking changes.
This article goes into more depth: https://herecomesthemoon.net/2024/11/two-factions-of-cpp/
In the case of the Linux kernel, a lot of the newer features that C++ has delivered aren't _that_ useful for improving safety because kernel space has special requirements which means a lot of them can't be used. I think Greg is specifically alluding to the "Safety Profiles" feature that the C++ committee looks like it will be going with to address the big safety issues that C++ hasn't yet addressed - that's not going to land any time soon and still won't be as comprehensive as Rust.