I still like this one from Meyer (Eiffel and DbC guy) who covers all the important concepts modeled in basic, set theory. What’s interesting is how some of them look similar. Also, how succinct it is despite the size of programming textbooks that teach implementations of these concepts. That’s natural with it being abstract. I think a good chunk, though, is incidental vs essential complexity that many languages add.

I say we start with something foundational like that, survey how different languages handle each concept, evaluate the rationales/pros/cons, and go from there.

I still like this one from Meyer (Eiffel and DbC guy) who covers all the important concepts modeled in basic, set theory. What’s interesting is how some of them look similar. Also, how succinct it is despite the size of programming textbooks that teach implementations of these concepts. That’s natural with it being abstract. I think a good chunk, though, is incidental vs essential complexity that many languages add.

I say we start with something foundational like that, survey how different languages handle each concept, evaluate the rationales/pros/cons, and go from there.

These expressions from early in the paper are cryptic. What do they mean?

Seems to exclude the identity function?

Sorry about the sloppy copy/paste from the pdf. On mobile. The paper is necessary context, though.

Nice idea, although I was a bit puzzled by the particular focus on Java.