# The Law of Leaky Abstractions - Joel Spolsky
Synced: [[2023_11_30]] 6:03 AM
Last Highlighted: [[2023_07_24]]
Tags: [[software]]

## Highlights
[[2023_07_24]] [View Highlight](https://read.readwise.io/read/01h64t3hg0b0t3jar8erq12xjr)
> That is, approximately, the magic of TCP. It is what computer scientists like to call an *abstraction*: a simplification of something much more complicated that is going on under the covers. As it turns out, a lot of computer programming consists of building abstractions. What is a string library? It’s a way to pretend that computers can manipulate strings just as easily as they can manipulate numbers. What is a file system? It’s a way to pretend that a hard drive isn’t really a bunch of spinning magnetic platters that can store bits at certain locations, but rather a hierarchical system of folders-within-folders containing individual files that in turn consist of one or more strings of bytes.
[[2023_07_24]] [View Highlight](https://read.readwise.io/read/01h64tkjyv7952z4n09c621tn0)
> Abstractions fail. Sometimes a little, sometimes a lot. There’s leakage. Things go wrong. It happens all over the place when you have abstractions.
[[2023_07_24]] [View Highlight](https://read.readwise.io/read/01h64vtgzxbtgg0d6jqwxmcmgr)
> The abstraction of “remote file is the same as local file” [leaks](https://www.joelonsoftware.com/articles/fog0000000041.html).
Even better are the restrictions like no hardlinks, symlinks and other FS abstractions
[[2023_07_24]] [View Highlight](https://read.readwise.io/read/01h64vvx67tgw06wp8fsk4nx3g)
> One reason the law of leaky abstractions is problematic is that it means that abstractions do not really simplify our lives as much as they were meant to.