Re:Ask HN: OOP in Functional Programming Language
by mollerhoj on Wednesday January 19, 2022 @12:25PM
(#29996696)
AKA python style OOP ;-)
Re:Ask HN: OOP in Functional Programming Language
by PaulHoule on Wednesday January 19, 2022 @12:41PM
(#29997014)
Even in a language like Java which pushes objects pretty hard the mental model that "a method is just a function where the first parameter is this" is pretty useful, particularly if you are trying to break out of the OO box and write Java code that looks like LISP, ML, COBOL, FORTRAN, etc. (Super Fun IMHO, particularly in JDK 17!)
The tricky thing with this model is "how do you implement polymorphism?" The most sublime methods dispatch not just on this but also on the other methods but you do get extra complexity just as you would with multiple inheritance, or the C++/C# polymorphism models other than Java's "all-virtual" approach, etc.
This is not too different from how many real object-oriented systems are implemented.
There is a quite a bit of overlap between "using functional programming techniques to implement an object-oriented style" and "using object-oriented techniques to implement a functional programming style."
There's nothing more annoying in the lower teachings of programming that circulate than the "FUNCT10NS RULE, 0BJECTS DR001" sentiment you see so much of.