Re:Why Static Languages Suffer from Complexity (2022)
by smarterclayton on Wednesday August 09, 2023 @06:47PM
(#37069418)
That’s fair - as the perpetrator of much of that abstraction I believe that highlighting the type system aspect of this code obscures the real problem we were solving for, which Go is spectacularly good at: letting you get within inches of C performance with reasonable effort for serialization and mapping versions of structs.
I find it amusing that the runtime registry code is cited as an example for anything other than it’s possible to overcomplicate a problem in any language. We thought we’d need more flexibility than we needed in practice, because humans involved (myself included) couldn’t anticipate the future.
Re:Why Static Languages Suffer from Complexity (2022)
by throwawaymaths on Wednesday August 09, 2023 @06:57PM
(#37069504)
But do you really need "near c" performance for a container orchestrator? I would think your bottleneck will be talking to etcd
Re:Why Static Languages Suffer from Complexity (2022)
by smarterclayton on Wednesday August 09, 2023 @09:04PM
(#37070526)
Our bottleneck was serialization of objects to bytes to send to etcd. Etcd cpu should be about 0.01-0.001 control plane CPU, and control plane apiserver CPU has been dominated by serialization since day 1 (except for brief periods around when we introduced inefficient custom resource code, because of the generic nature of that code).
Re:Why Static Languages Suffer from Complexity (2022)
by throwawaymaths on Thursday August 10, 2023 @01:30PM
(#37079069)
Huh, I'd have guessed that distributed synchronization of etcd (which goes over the network and has multiple events, and uses raft, which has unbounded worst case latency) would be the limiting step.
> Golang] Kubernetes, one of the largest codebases in Golang, has its own object-oriented type system implemented in the runtime package.
I would agree that Golang is overall a great language well-suited for solving a large class of problems. The same is true for the other languages I cited. This isn't about immutable properties of languages so much as it is about languages and problems fitting or not fitting well together.