Given Jess used to work at Docker, much of which is written in Go, and has spoken at various Go conferences, she already knows.
...what's this a reference to?
Static linking, which makes this trick not work.
And the fact that Go will embed raw syscalls in its binaries, which is also somewhat annoying.
Which is unsupported on anything other than Linux and various BSDs.
On FreeBSD, it's supported but kinda sucks. e.g., porting to a new CPU architecture is hell (I contributed to the FreeBSD/aarch64 go port, someone else picked it up now…)
The libc is the stable ABI on pretty much any OS that's not called Linux, just use it.
Okay, but now you're using a C library as the basis for your non-C programming language. I understand why it is that way, but that kind of sucks.
Ehh… does it kind of suck? The ABI of libc's syscall wrappers is basically "here's some ELF symbols to call with some arguments using the operating system's preferred calling convention". The only really "C" thing about it, other than the name, is struct layouts of various arguments.