They don’t only say static types. They add classes, inheritance,
subtyping, and virtual calls. Mind you, the difference between the last 3 is quite subtle.
So, since I’ve started nit-picking, Self is also OO and has prototype-based inheritance (as does javascript, but I’m not sure I’d want to defend the claim that javascript is an OO language).
Yeah let’s not forget the Common Lisp Object System (CLOS) which was more full-featured of an object-oriented language than most “current” languages.
The dynamism allowed both Smalltalk and CLOS to avoid a dark corner that will confound your typical OOP’er today - the circle/ellipse modeling problem; they allow an object to “become” a different type on its own accord. Take that, Java!
So Smalltalk is not object-oriented. Someone tell Alan Kay.
OOP definitely doesn’t get to claim static types for only itself either. Fuck that.
They don’t only say static types. They add classes, inheritance, subtyping, and virtual calls. Mind you, the difference between the last 3 is quite subtle.
So, since I’ve started nit-picking, Self is also OO and has prototype-based inheritance (as does javascript, but I’m not sure I’d want to defend the claim that javascript is an OO language).
Yeah let’s not forget the Common Lisp Object System (CLOS) which was more full-featured of an object-oriented language than most “current” languages.
The dynamism allowed both Smalltalk and CLOS to avoid a dark corner that will confound your typical OOP’er today - the circle/ellipse modeling problem; they allow an object to “become” a different type on its own accord. Take that, Java!
You down with OOP? 🤪