The ability to freely combine smaller programmed artifacts into larger ones, to accomplish larger goals
There exist building blocks which span a range of useful combinations. Composability is, in a sense, key to the notion of “programmability” and every programmable system will have some level of composability
See also: emergent behaviour
Mediums versus Tools
Linus Lee on Browsers as Tools of Thought
A tool is something that takes an existing workflow, and makes it more efficient. A nail is an efficient way of holding pieces of wood together; a to-do app is an efficient way of remembering your responsibilities. A medium, on the other hand, gives us new agency or power by which we can do something we couldn’t do before.
The best mediums are instead collections of generic, multi-purpose components that mesh together well
On compositionality
Compositionality is the principle that a system should be designed by composing together smaller subsystems, and reasoning about the system should be done recursively on its structure.
As in software, each component has an ‘interface’, which is a high level understanding of its behaviour, with unnecessary details being intentionally forgotten.
Compositionality is not just the ability to compose objects, but the ability to work with an object after intentionally forgetting how it was built