Language as a programming medium
Last edited 28th October 2020Social Change Communication of Technology code architecture evolution of technology
The problem of software is fundamentally one of language and its ability to effectively communicate information. The reason "clean" APIs feel that way is they effectively communicate or symbolize the underlying actions of the code. We live in a world of symbols, so the most human-friendly (and arguable the most effective) APIs are able to symbolize the underlying abstractions through language in a way that is easy to understand and build mental models upon.
Words create worlds, in software we can drastically accelerate this process through the mass dissemination of words and symbols. Each symbol is meaningless on its own, but out ability to attach meaning to them is why we can use symbols for computing and mathematics. We use abstractions constantly, and abstractions are probably the only way you can exist in the modern world. Many of these abstractions come in the form of the mental models we use to construct our reality, others are stories which we use to weave our internal narrative, and some are the had wavy explanations used to for understanding technology enough to use it.