Interesting article, thanks for doing the digging. You reminded me I still need to dive into Erlang some time.
What’s probably more interesting though is this. I teach Domain Driven Design, which is – in my approach and view – all about objects and events (which serve as messages). The first thing I explain in my lessons on this is: the world is made up of objects, and in software we would like to represent those objects. However, all these stupid programming languages we have are class oriented instead of object oriented. Throughout the case I use as an exercise the trainees learn that they hardly ever need to use generalization/inheritance, and that in real life handling events or messages makes more sense than calling methods – even in a monolithic application architecture.
People like Adam Dimytruk even switched to event modeling instead of object modeling for similar reasons.
The upside: you can, if you want, still implement your much more flexible objects or services in Java or any other language you want. That’s what Java got almost right: you don’t need multiple inheritance. You don’t need it at all if you do things right. And what younger perfectly right here is implied as well: OO is not about the language.