Problem with Go binary portability: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found

timezone data/functions may be another area. It seems there are other examples of this in OSS:

  • clang vs GCC
  • Musl vs GLIBC

Choice like this has its downsides as we are continually fixing problems where stuff will build in case, but not the other. But there are also advantages of starting fresh at times. @khem probably has an opinion on this as he spends much of his time in system software land.

Being able to easily cross compile Go and deploy it to any OS is pretty neat. For example, I can build all of the following on my Arch box (has latest libc) and it will run anywhere (assuming I disable CGO):

For getting stuff done, I’ve never experienced anything like Go before. And some claim the new Go stuff is more secure than the old and proven C stuff.

But then we have the other perspective we discussed before.

Interesting to think about – especially as we make architecture decisions and chose technologies and approaches.