Недавно натолкнулся на пост Actor Thinking об использовании акторов в стиле Erlang для «естественной» реализации параллельности. В посте поясняются уже знакомые слова Joe Armstrong об аналогии между акторами и объектами ООП.
Мне кажется, в этих рассуждениях в очередной раз допускается ошибка классического объектно-ориентированного подхода, будто почти все задачи естественно решать в стиле взаимодействующих объектов с локальным изменяемым состоянием. Наиболее ярко преимущества ООП выражаются как раз на системах без общей памяти, т. е. на взаимодействующих процессах. Тогда действительно люди при разработке думают об интерфейсах, инкапсуляции и пр.
При решении задач не нужно придумывать объекты. Сама задача уже говорит о том, какие есть объекты, если они вообще есть. Мелкие многочисленные объекты, как и мелкие параллельные процессы — это скорее недостаток, от которого следует избавляться, а не расхваливать.