4 ms·
There's nothing about Go that makes it particularly good for containers. It actually requires some ugly hacks in C to make it handle namespaces correctly (becau
by maccam94 8y ago
There's nothing about Go that makes it particularly good for containers. It actually requires some ugly hacks in C to make it handle namespaces correctly (because namespaces are configured per-thread, and Go decides to spawn new threads somewhat arbitrarily which is not visible to the program).
https://github.com/docker/libnetwork/issues/1113 https://github.com/docker/libnetwork/issues/1113
https://github.com/docker/libcontainer/tree/master/nsenter https://github.com/docker/libcontainer/tree/master/nsenter
https://www.weave.works/blog/linux-namespaces-and-go-don-t-mix https://www.weave.works/blog/linux-namespaces-and-go-don-t-m...
EDIT: TIL this is fixed in Go 1.10 which came out in February: https://golang.org/doc/go1.10#runtime https://golang.org/doc/go1.10#runtime
If rust continues to improve ergonomics and library support, I don't see anything stopping it from replacing C except in niche embedded systems that don't get LLVM support.
- pjmlp 8y agoWell, the existence of Docker and K8s do. It is a network effect, regardless of how one might think about Go.
- coldtea 8y ago>Well, the existence of Docker and K8s do. The fact that Docker and K8s are written in Go, doesn't provide anything for anyone considering to writing new container projects...
- pjmlp 8y agoCorrect, but it does mean that those of us not so found of Go, have to actually use it when dealing with Docker and K8s deployment scenarios, where devops are keen in using it as their tool of choice. Trying to avoid Go in such scenarios is a futility.
- coldtea 8y agoSo, do devops care for using Go (for their own tools) if there are mere users of Docker, K8s? E.g. maybe they want to use some e.g. Docker provider libs that are mainly/only available as go packages? Else, why would a Docker/K8s deployment impose Go usage for anything else regarding dev-ops? In other words what I'm asking is: isn't their use of Go just an implementation detail of Docker/K8s, as far as dev-ops are concerned?
- pjmlp 8y agoBecause you might want to write plugins for example. https://docs.docker.com/develop/sdk/examples/ https://docs.docker.com/develop/sdk/examples/ And you might happen to work in one of those companies that have IT defining what programming languages are available on devenv images.