Не так давно наткнулся на опус "Dear Python" http://www.zideck.com/blog/article.php?id=5

топ 100 блогов Dan Kruchinin (dk) - Juick12.02.2010 Не так давно наткнулся на опус "Dear Python" zideck.com
Вкратце, писатель сего опуса всячески ругает python за(в основном) отсутвие привычного ему(писателю) синтаксического сахара, что по его мнению ведёт к синтаксической избыточности. Помимо этого писатель опуса пытается доказать читателям опуса, что в python де не правильный OOP, так как в python якобы нет честной инкапсуляции. Я кинул сей опус на "поржать" нескольким товарищам из ростера, на что получил ответы виды "чевак прав, всё правильно сделал, батя одобряет", и стало мне грустно и обидно, как из ушата окатили. В представлении многих людей, вылезших из c++/java world инкапсуляция — это такая штука, которая явно(ключевым словом) позволяет сказать компиляторы какие методы/переменные внешний мир может видеть, а какие нет. А если внешний мир попробует их ронуть, компилятор ударит по рукам. Поэтому, как оказалось, бытоет мнение, что языки типа perl, python, lisp, etc не полностью поддерживают OOP парадигму, не давая возможности компилятору/интерпретатору бить юзера по лапам(в лиспе кстати методы/переменные класа можно защитить с помощью asdf, но это не относится к стандарту языка).
Хочется процитировать Буча: "Инкапсуляция, таким образом, определяет четкие границы между различными абстракциями. Возьмем для примера структуру растения: чтобы понять на верхнем уровне действие фотосинтеза, вполне допустимо игнорировать такие подробности, как функции корней растения или химию клеточных стенок. Аналогичным образом при проектировании базы данных принято писать программы так, чтобы они не зависели от физического представления данных; вместо этого сосредотачиваются на схеме, отражающей логическое строение данных [52]. В обоих случаях объекты защищены от деталей реализации объектов более низкого уровня." и
"Инкапсуляция — это процесс отделения друг от друга элементов объекта, определяющих его устройство и поведение; инкапсуляция служит для того, чтобы изолировать контрактные обязательства абстракции от их реализации."

Ещё раз: инкапсуляция — это всего лишь одна из парадигм дизайна архитектуры приложения, не более. Архитектор должен гарантировать, что в разработанной им моделе сокрытые данные инстансов классов не могут быть изменены извне. А уж как эти сокрытые данные обозначаются для облегчения чтения и отладки: через private/protected, через __ илл любое другое соглашение — это дело десятое.
Так что пожалуйста перестаньте говорить, что языки, в которых нет private/protected — "не полностью объектно-ориентированные".

Оставить комментарий

Архив записей в блогах:
Выдающийся доктор Майкл Дебейки совсем чуть-чуть не дожил до своего столетия. Сын ливанского эмигранта, перебравшегося в США, стал величайшим хирургом современности. Ведущий американский кардиохирург, директор кардиологического центра, активный участник создания самой крупной в мире ...
В этот день 125 лет назад по инициативе известного хирурга, профессора Императорской Военно-медицинской академии Николая Вельяминова была открыта первая в России и Петербурге станция Скорой помощи. Велокарета скорой помощи. Российская империя 1900-е ...
В соцсети в группе в СНТ мужчина позволил себе поправить председателя которая обратилась за помощью в группе к мужчинам: "мужики". Сказал, что мужиков нет, но есть мужчины. И предложил, чтоб "бабы" тоже помогли. Однако это вызвало подгорание пятой точки и негодование в его сторону от ...
Пончики, эти восхитительные кольца счастья, стали популярным лакомством. Теперь, с появлением онлайн-служб доставки пончиков, получить свою порцию сладкого еще никогда не было так просто. Если вас интересуют пончики москва то оформить заказ не составит проблем. Появление ...
Эли Фрей "Ты убит, Стас Шутов" После успеха книги "Мой лучший враг" на вопрос читателей о продолжении писательница отвечала, что его не будет. И всё-таки продолжение появилось. Правда, продолжением в полном смысле слова написанное назвать трудно - это, скорее, недостающие кусочки ...