News for hackers. Stuff that matters.
Re:Why OO Sucks by Joe Armstrong (2000) by TomSwirly on Friday March 26, 2021 @11:57AM (#26593600)
> I'm not sure I understand you. `is_blocked(user, other_user)` seems like it’s still object-oriented to me.

In OO, the object exposes what services it offers.

But in your code fragment, there is no way for a new implementation of `user` to override `is_blocked` - in most languages.

(C++ has ADL/Koenig resolution https://en.wikipedia.org/wiki/Argument-dependent_name_lookup which actually does let you do this generically at compile time.)

Re:Why OO Sucks by Joe Armstrong (2000) by dragonwriter on Friday March 26, 2021 @12:22PM (#26593922)
> In OO, the object exposes what services it offers.

In modular, especially statically typed, functional programming, modules identify what services they offer, and what data items those services consume, and the concerns of specification of data types and provision of services are decoupled.

Re:Why OO Sucks by Joe Armstrong (2000) by nybble41 on Friday March 26, 2021 @10:28PM (#26599338)
> in most languages

I'm pretty sure the language being referenced was Common Lisp, which supports multiple dispatch (in CLOS). In a multiple-dispatch OOP system methods can be specialized based on any argument—this is somewhat like ADL in C++ but more generalized. Ergo, a new implementation of 'user' can override or extend more generic versions of 'is_blocked'.