5 ms·
This is such a lazy form of "argument". If you have knowledge, share it, or at least share concrete references to concrete resources where one might learn what
by tom_mellior 6y ago
This is such a lazy form of "argument". If you have knowledge, share it, or at least share concrete references to concrete resources where one might learn what you think should be learned. If you put it in this nebulous way, people might look up the meaning of OOP in some source you don't approve of, which wouldn't help communicate what you think should be communicated.
- pjmlp 6y agoStart here, "Object-oriented programming: Some history, and challenges for the next fifty years" https://www.sciencedirect.com/science/article/pii/S0890540113000795 https://www.sciencedirect.com/science/article/pii/S089054011... Than read on BETA design for example, https://beta.cs.au.dk/ https://beta.cs.au.dk/ Follow up with "The Art of the Metaobject Protocol", https://mitpress.mit.edu/books/art-metaobject-protocol https://mitpress.mit.edu/books/art-metaobject-protocol and "Xerox LOOPS" http://www.softwarepreservation.org/projects/LISP/interlisp_family/ http://www.softwarepreservation.org/projects/LISP/interlisp_... Then "Component Software: Beyond Object-Oriented Programming" (the 1st edition with Component Pascal) https://www.amazon.com/Component-Software-Beyond-Object-Oriented-Programming-dp-0201178885/dp/0201178885 https://www.amazon.com/Component-Software-Beyond-Object-Orie... "Applying Traits to the Smalltalk Collection Classes" https://rmod.inria.fr/archives/papers/Blac03a-OOSPLA03-TraitsHierarchy.pdf https://rmod.inria.fr/archives/papers/Blac03a-OOSPLA03-Trait... "Self – The Power of Simplicity" http://media.cichon.com/talks/Introduction_Self_Language_OOP-1-23-2003.pdf http://media.cichon.com/talks/Introduction_Self_Language_OOP... https://blog.rfox.eu/en/Programming/Series_about_Self/index.html https://blog.rfox.eu/en/Programming/Series_about_Self/index.... How about this for starters?
- discreteevent 6y agoAlan Kay https://news.ycombinator.com/item?id=11940050 https://news.ycombinator.com/item?id=11940050 On Understanding Data Abstraction Revisited https://www.cs.utexas.edu/~wcook/Drafts/2009/essay.pdf https://www.cs.utexas.edu/~wcook/Drafts/2009/essay.pdf The Power of Interoperability: why objects are inevitable https://www.cs.cmu.edu/~aldrich/papers/objects-essay.pdf https://www.cs.cmu.edu/~aldrich/papers/objects-essay.pdf A closure is a poor man's object http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg03277.html http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/m...
- tom_mellior 6y agoThis is pretty good for starters! It makes it clear that you're not interested in a real discussion. Requiring that people read The Art of the Metaobject Protocol before you'll engage with their arguments on whether C++ programmers write OOP code is clearly just evasion on your part. This isn't knocking the book, I've read it and agree that it's edifying. This list is a good resource on OOP in general. It's just not helpful in the context of this thread.
- pjmlp 6y ago> If you have knowledge, share it, or at least share concrete references to concrete resources where one might learn what you think should be learned. Your own words, documentation and knowledge was shared, apparently you are the one not interested.
- tom_mellior 6y agoYou missed the "concrete" part. Which of these sources, concretely, should one read to evaluate the claim that "Modern C++ generally doesn’t use OOP all that much anyways.", which is what you seemed to criticise in this subthread? Again: Does one really, concretely, have to read The Art of the Metaobject Protocol, a book about Lisp, to evaluate this claim about C++? Having read the book, I would say no. Which is why I say that you are evading a real discussion. (And for that matter, it would be interesting if you fleshed out your counter-claim -- "Other than the classes used to implement all those STL concepts." -- in a bit more detail. Are you saying that all uses of C++ classes are OOP? Or that only certain uses are, but that the way classes are used to implement the STL fall into this category? Will I find the answer to these concrete questions in The Art of the Metaobject Protocol?)
- pjmlp 6y ago> Are you saying that all uses of C++ classes are OOP? Definitely, any use of class constructs with data members and member functions is OOP. Any use of data members inside class constructs represents aggregation and if any member function on a data member happens to be called, as means to help a member function to do their work, that is delegation. Any template implemented as class that uses its type parameters to decide at compile time what gets called, makes use of dynamic dispatch decided at compile time. If you prefer we can pick any random STL type and dissect all their uses of OOP features, lets start with something like std::set?