[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Несколько вопросов вразброс



Артём Н. -> debian-russian@lists.debian.org  @ Thu, 05 Jul 2012 20:09:51 +0400:

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

Существенно здесь то, что направлений улучшения возможно более одного, и
естественный эволюционный процесс обычно более одного и задействует.  В
результате получается разнообразие видов, а не одна накачанная амеба.

 >>  >> В такой интерпретации ясно, что если в неком языке императивный
 >>  >> вычислитель явно не просматривается, то и от ОО-модели этот язык не
 >>  >> особо выиграет.
 >>  АН> Почему не выиграет?
 >> Потому что их приткнуть либо некуда, либо незачем.
 АН> Для функциональных, опять же, понятно: есть функция. Объекты не
 АН> требуются.  Инкапсуляция обеспечивается функцией. Наследование
 АН> заменяется агрегацией.  Полиморфизм... Тоже может быть. Я очень
 АН> плохо знаком с функциональной парадигмой.

Полиморфизм поведенческий, а агрегация плюс полиморфизм - это уже
больше, чем наследование.  Наследование оказывается как-то не очень
нужным.

 >>  АН> Объекты могут быть независимыми сущностями (собственно, так и есть,
 >>  АН> если они строго через интерфейсы взаимодействуют). Как объект
 >>  АН> реализован внутри - не важно (например, это может быть
 >>  АН> функциональная программа), порядок их взаимодействия тоже не очень
 >>  АН> важен (или он регулируется самими объектами).  Ну, возможно назвать
 >>  АН> это какой-нибудь сопрограммой, например, а не объектом. Но суть от
 >>  АН> этого разве поменяется?
 >> 
 >> Все это можно сделать.  Увеличение пользы где?  Если у тебя
 >> функциональная программа уже есть, то зачем тебе объект в виде
 >> функциональной программы?  Чего тебе в языке до введения объектов не
 >> хватало?
 АН> Хз. Просто я толком не знаю других парадигм. Объект мне кажется
 АН> достаточно простым и ясным. Например, функция не хранит данные, как
 АН> объект...

Тоже может.  Слово closure (в русском переводе - замыкание) тебе не
встречалось?  Нет, функция на C такого не умеет, а на нормальных языках
с функциями - умеют.

 >> И так далее.  В итоге ты начинаешь вносить в язык, обладающий
 >> достаточной выразительной силой, парадигму, которая выразительную силу
 >> языка не увеличивает, а при неаккуратном употреблении и уменьшает.  А
 >> смысл?
 АН> Сейчас вы говорите так. А если вспомнить про Perl..? :-)

Там это удалось сделать достаточно аккуратно, и главное, не в
обязательном порядке.  Но это довольно редкий случай.


Reply to: