Yes, 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.
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.