Remix.run Logo
blixt 8 hours ago

Took some time to read the linked Tailscale blog posts as examples of horrible hacking around Go. And I would agree it's crazy for a product oriented startup to do this, but this team is also made up of people that have contributed a lot to several core parts of the Go runtime.

Since these blog posts were written, Go has made official the interning approach that the netaddr.IP type depended on, now without the horrible pointer hacks, and the IP type itself has been migrated into an official package with even more improvements, now benefitting everyone. The iOS network extension memory problem was a very nice deep dive into what happens behind the scenes (something that is assuredly not perfect in any language) and resulted in a better Go experience for everyone using the language.

So a team pushed the limits of a language and made the language better for everyone out of the box. This happens in most languages, but rarely do you see such approachable blog posts about it, where the solutions are readable in the language itself, and with enough commentary even understandable.

I recommend reading these articles as examples of good language evolution, not as examples of a broken language.