Re: Несколько вопросов вразброс
Артём Н. -> debian-russian@lists.debian.org @ Thu, 05 Jul 2012 20:09:51 +0400:
>> >> Я бы ещё добавил, что ОО-парадигма рождается из желания перейти от
>> >> классической модели императивного вычислителя, как единого конечного
>> >> автомата, к модели многих изолированных конечных автоматов, взаимодействующих
>> >> через чётко ограниченные интерфейсы. Точно так же в электронике от "паука"
>> >> на рассыпухе, пришли сначала к модульным схемам, а потом к ИС.
>> АН> Ну и? Это естественный, эволюционный процесс. Разве должно быть иначе?
>> Естественный эволюционный процесс развивается параллельно по нескольким
>> веткам. В данном случае это существенно.
АН> По каким? Я не очень понял, что здесь существенно...
Существенно здесь то, что направлений улучшения возможно более одного, и
естественный эволюционный процесс обычно более одного и задействует. В
результате получается разнообразие видов, а не одна накачанная амеба.
>> >> В такой интерпретации ясно, что если в неком языке императивный
>> >> вычислитель явно не просматривается, то и от ОО-модели этот язык не
>> >> особо выиграет.
>> АН> Почему не выиграет?
>> Потому что их приткнуть либо некуда, либо незачем.
АН> Для функциональных, опять же, понятно: есть функция. Объекты не
АН> требуются. Инкапсуляция обеспечивается функцией. Наследование
АН> заменяется агрегацией. Полиморфизм... Тоже может быть. Я очень
АН> плохо знаком с функциональной парадигмой.
Полиморфизм поведенческий, а агрегация плюс полиморфизм - это уже
больше, чем наследование. Наследование оказывается как-то не очень
нужным.
>> АН> Объекты могут быть независимыми сущностями (собственно, так и есть,
>> АН> если они строго через интерфейсы взаимодействуют). Как объект
>> АН> реализован внутри - не важно (например, это может быть
>> АН> функциональная программа), порядок их взаимодействия тоже не очень
>> АН> важен (или он регулируется самими объектами). Ну, возможно назвать
>> АН> это какой-нибудь сопрограммой, например, а не объектом. Но суть от
>> АН> этого разве поменяется?
>>
>> Все это можно сделать. Увеличение пользы где? Если у тебя
>> функциональная программа уже есть, то зачем тебе объект в виде
>> функциональной программы? Чего тебе в языке до введения объектов не
>> хватало?
АН> Хз. Просто я толком не знаю других парадигм. Объект мне кажется
АН> достаточно простым и ясным. Например, функция не хранит данные, как
АН> объект...
Тоже может. Слово closure (в русском переводе - замыкание) тебе не
встречалось? Нет, функция на C такого не умеет, а на нормальных языках
с функциями - умеют.
>> И так далее. В итоге ты начинаешь вносить в язык, обладающий
>> достаточной выразительной силой, парадигму, которая выразительную силу
>> языка не увеличивает, а при неаккуратном употреблении и уменьшает. А
>> смысл?
АН> Сейчас вы говорите так. А если вспомнить про Perl..? :-)
Там это удалось сделать достаточно аккуратно, и главное, не в
обязательном порядке. Но это довольно редкий случай.
Reply to: