This note is niche to programming language theory
In math you can swap any isomorphism for another.
In programming you get fired for that: swapping bubble sort with heap sort
IDE autcomplete is not worth all these objects and types and getters/setters/maps
Types and tests are means, not ends
They don't talk about the problem
You tell children to not put their hand on the stove, but you can't trust SWE to use a raw data struct
Yes, you could catch some errors with a type system but the most important errors are the ones your type check and tests can't catch
Languages and Programs are too big
ORM is a problem with objects. Sending objects over wire is terrible idea
Objects are not the way the world works; not how physics works; it's entirely a software construct
OO conflates processes constructs and information constructs
The program talks more about itself than the data
Programs are increasingly about code and not about data
Data in your face. Plain.
Why data > code? It’s tangible, interchangeable, inspectable, composable
On Scheme via Quora:
The thing I liked most about taking this course in Scheme was that I knew that I was learning something. Every concept I had ever tried and failed to understand comprehensively in my Pascal class ---searching and sorting procedures, recursion, processing binary trees---was made clear when I studied them in Scheme.
These things occur so naturally in Scheme that I couldn't help but understand. After mastering the concept, I could then go back into my Pascal class and master the code.
LISP outtakes
"Lisp ... made me aware that software could be close to executable mathematics."