I wonder if in the future, something useful with practical applications will come out from this philosophy, and we'll look back to 2022 the same way we look back to geometers who tried to prove Euclid's fifth postulate.
There is no single underlying model for mathematics either. This is a consequence of Godel incompleteness. It holds for both programming languages and math because they're all formal systems, just with different properties.
With that said, one can still adopt the programming language analogy for particular models that the various foundations capture. So you don't have to solve the multiverse problem to use the analogy.[0]
Function is helpful, but morphism is almost "invisible" in programming course. Noone tells you this is just the morphism in the category of X....
I prefer the pragmatic approach with tons of examples, tutorials, lectures first before teaching purely theoretic "foundation".
essentially, sets underlie the formalism to compute (or not, i.e. not-necessarily compute) whether some X == Y by value (i.e. with reading the content of memory-address (pointer semantics)) and by the memory address as a value (by object in memory)
But still, some programming languages are objectively better at some things. Likewise for mathematical foundations."