Live data from Hacker News

Computers Can Be Understood (2020)

blog.nelhage.com

11–20 of 21 posts

Re: Computers Can Be Understood (2020)

#12

Strive to know as much as possible but delivery is different from achieving understanding. If your goal is to deliver knowledge is just another tool; it is not some magic answer to everything. You have to find a balance where you know enough to know you have delivered.

It's an important tool however as it will drastically influence how your solution looks like.

If you have to modify behaviour of a system without understanding it, the approach is usually to apply even more complexity as a band-aid. This will work in the immediate term, but will make your system more brittle and ironically even harder to understand in its entirety.

Also note that black boxes are rigid. If you don't understand what happens inside a blackbox, you can only build around it. However, for a lot of exciting features, you need to modify the black box itself - which you can't do if you have no idea what it does.

Re: Computers Can Be Understood (2020)

#14
post #10

I tried very hard to steer an old colleague away from their "magical" view of computers, because at some point I aggregated enough experiences and insights to agree with the article's thesis. When working closely with hardware, there's no way around breaking that magic. I would even flavor that how it all "actually" works physically is cool and magical (in a we can compose magic way). It was interesting to connect so…

If an abstraction is good enough and fit for a particular problem, you can mostly treat it as magic, solve your problem at an upper layer and be done with it. Only when there is a mismatch between the problem domain and the available abstractions, you need to start jiggling through the layers and understand what problems each layer is trying to address.

Re: Computers Can Be Understood (2020)

#16

At a fundamental level I understand that doping silicon turns rock into transistors upon which a computer is built. I still think it's magic though.

It’s magic because it’s awesome. There’s other tech like that. Reading for example: you look at tiny signs in succession and hallucinate what the writer intended for you to experience, understand. Extremely awesome and magical.

Re: Computers Can Be Understood (2020)

#17
I had an experience similar to their Lambda one not that long ago. Needed somewhere to host a static Hugo site, went with Netlify, who marketed some vaguely specified special support and functionality for Hugo, and "sync-to-git-repo" functionality.

Ended up spending several hours digging through their docs and scattered code until it became clear to me that the hugo-stuff was just out-of-date and poorly stitched together tooling around hugo build that was made to run in CI, and there was no actual git functionality, just web hook APIs specific for GitHub/GitLab/Bitbucket.

Even leaving that aside and figuring out how to properly upload the ready-made static directory, which I got to in the process, would have taken its own fair share of detective work.

Whereas if I had treated it like magic, I could have just zipped it up and drag-and-dropped it in their web UI and be done in 2 minutes.

It still bothers me how they go to such great extents to make it as appealing and smooth as possible for the majority happy-path use case but end up making it extremely confusing to do what in the end turns out to be trivial. Even deliberately using technically incorrect terminology in documentation (which act as misdirection) just to align with common misconceptions.

I can't seem to properly verbalize the eerie feeling I have but it relates to a trend leading to devs only using ready-made tools and APIs precisely on their abstraction level, dumbing down, total centralization of internet infrastructure, and an eventual ban on or unavailability of general computing for individuals.

Re: Computers Can Be Understood (2020)

#18
post #17

I had an experience similar to their Lambda one not that long ago. Needed somewhere to host a static Hugo site, went with Netlify, who marketed some vaguely specified special support and functionality for Hugo, and "sync-to-git-repo" functionality. Ended up spending several hours digging through their docs and scattered code until it became clear to me that the hugo-stuff was just out-of-date and poorly stitched toge…

This quote feels oddly relevant:

    Almost anything in software can be implemented, sold, and even used given enough determination. There is nothing a mere scientist can say that will stand against the flood of a hundred million dollars. But there is one quality that cannot be purchased in this way—and that is reliability. The price of reliability is the pursuit of the utmost simplicity. It is a price which the very rich find most hard to pay.
- C.A.R. Hoare

Re: Computers Can Be Understood (2020)

#19
post #2

"At core, computers are built on a set of (mostly) deterministic foundations, which follow strict rules at each tick of the clock. We built layers upon layers of abstractions upon those foundations, each of which, as well, behaves in a (mostly) reproducible and deterministic way based on the abstractions at the previous level. There is no magic. There is no layer beyond which we leave the realm of logic and executing…

Very relevant, when a system built on deterministic foundations becomes complex enough it's as indistinguishable from an indeterministic one. In principle you can understand it, but in practice there might be just massive & prohibitive cognitive overload.

Re: Computers Can Be Understood (2020)

#20
post #17

I had an experience similar to their Lambda one not that long ago. Needed somewhere to host a static Hugo site, went with Netlify, who marketed some vaguely specified special support and functionality for Hugo, and "sync-to-git-repo" functionality. Ended up spending several hours digging through their docs and scattered code until it became clear to me that the hugo-stuff was just out-of-date and poorly stitched toge…

This quote feels oddly relevant: Almost anything in software can be implemented, sold, and even used given enough determination. There is nothing a mere scientist can say that will stand against the flood of a hundred million dollars. But there is one quality that cannot be purchased in this way—and that is reliability. The price of reliability is the pursuit of the utmost simplicity. It is a price which the very ric…

Well, it's valid for security too. Any kind of engineering (science and arts too) has those qualities that come from competence and simplicity. Those are always rare.
Post reply on HN