3 ms·
Oddly, most programming seems to lack good models at intermediate levels of complexity. (In physics, those levels are called things like "chemistry" or "cellula
by javajosh 5y ago
Oddly, most programming seems to lack good models at intermediate levels of complexity. (In physics, those levels are called things like "chemistry" or "cellular biology"). Relational databases have a rigorous model; but what about OOP? What is it? It feels like some sort of weird, misbehaved algebra. I've been doing it a long time, but properly characterizing it escapes me. I'd pay $50 if I thought someone had the answer, but I suspect they don't. (Or if they do, it's more of an opinion).
- sterlind 5y agoon the other hand, you can (sorta) go from lambda calculus up through all the sugar of a nice Lisp. or start with types and evolve dependent types and get all the way to ZFC and theorem proving. there's ways of reasoning about imperative code mathematically too, though I know less about them. OOP itself is more of a style, imo. you can boil it down into the things above if you want to think of it as such. I'm just not sure there's much there mathematically.
- graycat 5y agoYes, on OOP, once I got into a big battle: We had developed an OOP repository (cache, scoreboard, etc.), then along came CMIS/CMIP, and I was asked to modify our repository to handle CMIS/CMIP. So, off I went, got copies of as many of the CMIS/CMIP documents as I could, read and studied, learned about the registration hierarchy, etc. Finally I concluded the CMIS/CMIP OOP was just for data definitions and was not programming at all. E.g., a CMIS/CMIP object could not do even 1 + 2 = 3, if-then-else, read, write, do while, etc. So, just for storing CMIS/CMIP data, and data is all it was about, the repository we had was already up to the task. So, CMIS/CMIP was OOP only in the sense of inheriting definitions of data. So could define an object for a computer, i.e., list all the data were going to keep on a computer, and then inherit (borrow, copy) from that definition to define a laptop computer.
- Banana699 5y agohttp://lucacardelli.name/TheoryOfObjects.html http://lucacardelli.name/TheoryOfObjects.html https://mitpress.mit.edu/books/theoretical-aspects-object-oriented-programming https://mitpress.mit.edu/books/theoretical-aspects-object-or... I'm not any of the ones who wrote those, so I will just accept 10% of your reward :).