2 ms·
I din't watch the Youtube video. I'll try to do it later, but the email is spot on IMHO. The point about polymorphism and inheritance is great (although I wil
by mikekchar 8y ago
I din't watch the Youtube video. I'll try to do it later, but the email is spot on IMHO. The point about polymorphism and inheritance is great (although I will argue having tried to implement OO systems from scratch before that it's very hard to implement non-inheritance based polymorphism in a dynamic language because of the difficulty of doing multiple dispatch).
The one quibble I'll make is that about the "everything is an object" issue. I think he's begging the question there. One of the things I realised having done it myself is that in OO systems message passing is essentially doing calling "bind" on a monad: the method is the function and the program state encapsulated in the object is the contents of the monad. This breaks very, very hard if the return value of your method is not an object -- you can no longer chain your operations. I honestly believe that this is the real (probably unconscious) reason why "everything is an object" OO languages are attractive.