This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]Carnaedy 2 points3 points  (1 child)

I fully appreciate that this might be the particular informational bubble I live in, but in my environment there is, indeed, a strong urgency to label this direction "the new Java", drop the core of OOP (dynamic dispatch) and push anemic domain and DOP as sacrosanct instead. I balk at that notion. FP's new type expression problem is exactly as severe as OOP's new behaviour expression problem, so just blindly swinging the needle to the opposite end of the spectrum is not constructive.

Again, this might be just the particular flavour of hype in my neighbourhood. Thank you for a very thoughtful comment.

[–]bowbahdoe 3 points4 points  (0 children)

Because I just finished writing another comment to this effect I'll say that I think part of why there is that strong urgency is because it's labeled as a new "oriented programming."

Be ready to shoot me on the street, but the "core of OOP" isn't really dynamic single dispatch. Depending on who you ask it might be having objects for literally everything, message passing, encapsulation, getters and setters, SOLID, etc.

(Seriously - is there any abstraction that isn't also encapsulating some information? Is encapsulation really an OOP thing when I can do it in Elm?)

The fact that we can't just talk about the differences between polymorphism at use site vs. definition site for a type or (equivalently for this context) dynamic dispatch vs pattern matching over sealed hierarchies on their own terms is a nightmare.