5 ms·
Types are being used to create those things. But it's not OOP as many people understand it. (Inheritance, everything via method calls etc.)
by johannes1234321 6y ago
Types are being used to create those things. But it's not OOP as many people understand it. (Inheritance, everything via method calls etc.)
- pjmlp 6y agoPeople should spend more time learning what OOP actually is all about, hint it isn't just MFC and Qt.
- gpderetta 6y agoif STL is OO then everything is OO.
- pjmlp 6y agoThen remove the classes, static inheritance via template arguments, method dispatch via type parameters (very CLOS like), class member functions, iostreams, ..... Plenty of SIGPLAN papers to one educate themselves about what OOP is all about. OOP is not MFC alone, apparently those that learn languages on the trenches without referring to them, never get to appreciate the wealth of information we have available. Not surprising, given how many misunderstand "whatever my compiler does" for what ISO actually says.
- gpderetta 6y agoOO is a very nebulously defined term and if you ask two people you'll get three different definitions. But I would say that most people will agree that at the very least late binding is a fundamental component.
- pjmlp 6y agoHence why having a proper CS education is an very important pillar for any good engineering degree. Back to STL, it makes heavy use at compile time method dispatch via template metaprogramming and lambdas (which are implemented as classes actually by the compiler.
- gpderetta 6y agoStepanov has forgotten more about CS than I'll ever learn in an hundreds lifetimes and he is pretty adamant that STL is no OO [1]. I know this is an argumentum ab auctoritate, but you didn't really provide an argument either :) [1] http://www.stlport.org/resources/StepanovUSA.html http://www.stlport.org/resources/StepanovUSA.html
- pjmlp 6y agoHe also thinks that Artificial Intelligence is an hoax, so take your pick.
- gpderetta 6y agoFWIW, he is referring to the AI Winter, the interview was written well before the current AI renaissance.
- msla 6y agoDid he say that about GOFAI or Deep Learning?
- Jtsummers 6y agoIn the context of the interview, it would've been GOFAI. Deep learning hadn't taken off yet.
- MiroF 6y agoWell then it was a hoax?
- Jtsummers 6y agoFor context, the relevant answer: > Yes. STL is not object oriented. I think that object orientedness is almost as much of a hoax as Artificial Intelligence. I have yet to see an interesting piece of code that comes from these OO people. In a sense, I am unfair to AI: I learned a lot of stuff from the MIT AI Lab crowd, they have done some really fundamental work: Bill Gosper's Hakmem is one of the best things for a programmer to read. AI might not have had a serious foundation, but it produced Gosper and Stallman (Emacs), Moses (Macsyma) and Sussman (Scheme, together with Guy Steele). I find OOP technically unsound. It attempts to decompose the world in terms of interfaces that vary on a single type. To deal with the real problems you need multisorted algebras - families of interfaces that span multiple types. I find OOP philosophically unsound. It claims that everything is an object. Even if it is true it is not very interesting - saying that everything is an object is saying nothing at all. I find OOP methodologically wrong. It starts with classes. It is as if mathematicians would start with axioms. You do not start with axioms - you start with proofs. Only when you have found a bunch of related proofs, can you come up with axioms. You end with axioms. The same thing is true in programming: you have to start with interesting algorithms. Only when you understand them well, can you come up with an interface that will let them work. I have seen this a few times and have felt that "hoax" is the wrong word each time. Later he talks about OOP being "philosophically unsound", which adds some clarity to the statement. It's not that OOP or AI are made up (true hoaxes), it's that they will not accomplish (in his view) what they set out to do because they are founded on unsound bases.
- jcelerier 6y ago> if STL is OO then everything is OO. I mean... in the sense in which most people use "OO language" (which is, "a language with constructs which associates a data specification with procedures"), yes. Only hardcore pure-functional algorithms written in Haskell / ML without typeclasses, or things like Prolog, Esterel (though thinking about it), and similar research languages aren't. Once upon a time programming looked like this. https://github.com/chrislgarry/Apollo-11/blob/master/Luminary099/FRESH_START_AND_RESTART.agc https://github.com/chrislgarry/Apollo-11/blob/master/Luminar...
- tom_mellior 6y agoThis 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...