Markus Strasser

Powered by đŸŒ±Roam Garden

Highlights: LISP, Scheme and Clojure

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."

Highlights: LISP, Scheme and Clojure