On Fri, May 15, 2020 at 08:55:46AM +0100, Dr Iain Maoileoin wrote:
My question is:
What is that line? I dont understand it? Effort input vs output?
Complexity measure, debugging complexity in a 3rd party program?
I think you are asking precisely the right question. There is a line
where one side is good enough and good enough is just that. The other
side is just too much, too much to get tangled up in.
I think Rob and Ken and the rest of the Go team are not lauded enough
for having the restraint to stay on the right side of the line. It's
so easy to be seduced into yet another feature, "it's not that bad,
we can do it." It is far harder to say "Nope, not gonna do that".
The Go team reminds me a bit of the original QNX team. QNX was/is
a message passing microkernel, it's the only microkernel that is
actually micro (in my experience, I hear that L4 is good but haven't
looked). They had a core team of 3 people that were allowed to touch
the actual microkernel. All of which fit into a 4K instruction cache
on x86. Every commit went through the filter of "does this add to
the cache?"
That sort of discipline is really rare. Far more common is "I benchmarked
it and it only slows down by 1%" - that's death by a thousand paper cuts.