med ∩ ml
These are my notes on the talks “Simple Made Easy” by Rich Hickey.
Simplicity is a prerequisite for reliability - Dijkstra
Simple:
Easy:
We can only make reliable those things we can understand.
We can only consider a few things at a time. If a piece is intertwined with another we already have to keep both in mind. It’s combinatorial.
Complexity undermines understanding.
Ignoring complexity slows you in the long haul.
The simple route is slower at the beginning because it requires thought.
Benefits of simplicity:
Complect = interleave, entwine, braid.
Compose = place together.
Modularity != simplicity. Partition and stratification (modularity) != simplicity.
Modularity = simplicity; when we limit what those modules are allowed to think about.
Programming, when stripped of all its circumstantial irrelevancies, boils down to no more and no less than very effective thinking so as to avoid unmastered complexity, to very vigorous separation of your many different concerns - Dijkstra
Simplicity is the ultimate sophistication - Da Vinci
Construct | Get via |
---|---|
Values | final, persistent collections… |
Functions | stateless methods |
Namespace | language support |
Data | Maps, arrays, sets, JSON… |
Polymorphism a la carte | Protocols, type classes |
Set functions | Libraries |
Queues | Libraries |
Declarative manipulation | SQL, Prolog |
Rules | Libraries, Prolog |
Consistency | Transactions, values… |
This used to be a box promoting a newsletter, but I think we already have enough newsletters. Everybody wants to get a spot in your mailbox.
Instead of that, subscribing to my RSS feed will be a lot better, and less intrusive in your life.
If you are looking for a newsletter to subscribe to, click here.