🦾 IT-Раздевалка 💪
2022-09-11 12:43
4ront
Прошу прощения. Не уточнил.
Я к этому предложению спросил: "А еще, поразительно и крайне смешно то, что практически единственным языком, который на максимум использует ООП архитектуру – Erlang один из самых каноничных функциональных языков программирования…"
Ruby — язык с сильным уклоном в объектно-ориентированное программирование. В языке много функций для работы с объектами: их создания, изменения, защиты и других действий с ними. Все возможности выстроены так, чтобы реализовывать ООП и работать с этим подходом было удобнее.
Понял
Как я описываю в статье, у нас есть 2 ООП: ООП синтаксис и ООП архитектура
Ruby полностью поддерживает синтаксис ООП
НО с точки зрения архитектуры полноценно отвечает именно Erlang: каждая функция Erlang представляет собой миниприложение, которое может принимать сообщения из внутренней очереди сообщений (механизм самого языка) и отправлять сообщения в другие функции (это сообщение тоже встанет в очередь)
Каждая функция полностью инкапсулированна, функции общаются сериализуемыми сообщения (об это редко говорят, но этот маленький аспект является крайне важной частью ООП и ни одним ООП язык не накладывает запрет на несирализиуемые аргументы в методах класса, что уже нарушение архитектуры ООП; тема очень большая и я думаю напишу отдельную статью посвящённую именно «сериализованным сообщениям в ООП»), каждая функция связана с набором других, с которыми она общается, выстраивая граф
Поэтому Erlang с точки зрения своего внутреннего устройства полностью отвечает архитектуре ООП, а Ruby (как и Java, C#, etc.) лишь даёт возможность использовать синтаксические конструкции ООП и самостоятельно реализовать архитектуру уже на уровне кода