
Computers Can Be Understood - miked85
https://blog.nelhage.com/post/computers-can-be-understood/
======
eandre
I share Nelson's belief that we can conquer the rampant complexity in modern
software applications. I'm generally in favor of the approach he's advocating
for -- working to understand the layers of the stack rather than treating them
as a black box.

That said I can't help but feel that the problem is a missing abstraction. As
computers and the internet grew we did a lot of experimentation, learned from
it, and came up with abstractions to help us conquer higher-order complexity
through chunking.

But for cloud-based software today, creating a "simple" (in terms of business
logic) backend API requires an insane amount of moving parts and complexity to
have it up and running, but there is no underlying abstraction that offloads
this complexity from the engineer writing the business logic. It's as if the
people writing business logic were hand-crafting IP packets, but instead of
juggling bits we're juggling build pipeline definitions and Kubernetes yaml
files.

We need higher-order primitives for writing software.

