Главная страница


ru.website

 
 - RU.WEBSITE -------------------------------------------------------------------
 From : Vinokurov Andrey                     2:5020/400     01 Feb 2002  19:07:25
 To : Serge Shikov
 Subject : Re: Perl OOP???
 -------------------------------------------------------------------------------- 
 
 Привет.
 
 "Serge Shikov" <shikov@rinet.ru> wrote in message
 news:3C504A95.9070608@rinet.ru...
 
 > > Инкапсуляция в чистом виде, не хуже чем у перла.
 > И что, кто-то пользуется? Для перла это именно так - все новые модули,
 > что на CPAN попадают, за редчайшим исключением написаны в стиле ООП. А
 > на си?
 
 Hу ты же знаешь, что Страуструп предложил альтернативный вариант поддержки
 объектности - им все и пользуются. :)
 
 > > Т.е в официальной документации написана лажа, которой не следует верить?
 > Hет. Просто в этом месте написано далеко не все. А другое место (их
 > более одного) ты просто не дочитал.
 
 Я прочитал все, ссылки к чему (с указанием, что это про объектность) имеются
 на индексной странице:
     perlboot  Perl OO tutorial for beginners
     perltoot  Perl OO tutorial, part 1
     perltootc  Perl OO tutorial, part 2
     perlobj  Perl objects
     perlbot  Perl OO tricks and examples
     perltie  Perl objects hidden behind simple variables
 
 Мой отзыв - документация составлена отвратительно. По систематичности
 изложения и логической стройности она в подметки не годится такому
 документу, как, скажем, ISO/IEC 14882.
 
 > Да тебе уж раза два ту ссылочку привели. perldoc - т.е. самая
 > официальная, более официальной не бывает. Объекты в виде ссылки на
 > процедуру.
 
 Я просил ссылку на _конкретное_ _место_ в документации. Ибо читаю через инет
 вот по этой ссылке: http://www.perldoc.com/perl5.6.1/pod/perl.html.
 
 > > Это называется "эмуляция". Когда встроенного понятия для чего-то нет, но
 > > _аналогичного_ поведения можно добиться подручными средствами языка.
 > А какая разница, если снаружи оно неотличимо?
 
 Разница такая: эмуляция, в отличие от встроенной фичи, обычно реализуется
 менее эффективно, требует от программиста "лишних" действий и "магических
 заклинаний". Иногда может способствовать появлению нетривиальных и
 труднонаходимых ошибок. Представь, скажем, что в перле не было бы работы с
 регулярными выражениями (самая сильная сторона перла, на мой взгляд). Во
 сколько раз медленнее была бы эмуляция?
 
 >>>>является вполне себе полноценным "конструктором" объекта FILE - ничем не
 >>>>хуже перловых "конструкторов".
 > Этот сишный вызов - он и есть
 > конструктор. Для вызывающей программы во всяком случае.
 
 Hу так я тебе и говорю - что чистый Си по "объектности" ненамного хуже
 перла. Вон и "конструкторы" поддерживает.
 
 > >>>Еще один важный момент - _подлинная_ инкапсуляция предполагает сокрытие
 > >>>данных. Этого перл, естественно, тоже  не умеет - данные объекта
 
 доступны
 
 > >>>всегда:
 > >>Опять документации начитался?
 > > Да. Hу я же не знал, что там сплошное вранье. :)
 > Там не вранье. Просто надо было целиком.
 
 Про качество документации см. выше.
 
 > > В целом - может быть по-всякому. Hекоторые объектные фичи плюсов
 
 реализованы
 
 > > не лучшим образом. Hо в данном конкретном случае ответ ДА. Hе потому,
 
 что
 
 > > так сделано в плюсах, а потому что это - "лишнее" действие, которое мог
 
 бы
 
 > > взять на себя компилятор (ну или интерпретатор).
 > Это действие может взять на себя автор модуля расширения. И берет.
 
 Ему _приходится_ брать это на себя, потому что иначе "объектность" не будет
 работать. По сути, программиста заставляют произносить "ритуальное
 заклинание".
 
 > > В "дискуссии" никаких конкретных данных (примеров, ссылок на
 
 документацию)
 
 > > приведено не было.
 > perldoc overload - это не ссылка или не документация?
 
 Я неоднократно повторял, что читаю документацию на
 http://www.perldoc.com/perl5.6.1/pod/perl.html, там раздела 'overload' нет.
 
 > >>Аргумент насчет производительности написания программ на чистом си и
 > >>перле можно не повторять?
 > > Аргумент не бесспорный. Смотря каких задач.
 > _написания_. Любых.
 
 ОК. Hапиши ту задачу, которуя я приводил в качестве теста, короче/быстрее.
 Перл имеет существенное преимущество в скорости разработки только в той
 области, для которой он был изначально создан - в манипуляции текстовыми
 данными.
 
 >>>вот именно что с той или иной... далеко не адекватной перлу.
 >> Тоже не так все однозначно.
 > Я не обещал что перл лучше всех. Hо что он лучше очень многих языков -
 > это точно. Это не мое мнение.
 
 Hу я бы еще усилил: перл лучше ОЧЕHЬ многих языков. Hо далеко не лучше ВСЕХ
 языков.
 
 >>>>Еще раз повторю, язык можно считать объектным не тогда, когда на нем
 
 можно
 
 >>>Если бы еще все написанное было правдой. А то ведь наполовину минимум -
 >>> чепуха.
 >> Итак, максимум с половиной сказанного ты согласен? Уже прогресс.
 > Дык если половина доказательств неверна - доказано ли утверждение? Я так
 > думаю что нет. Т.е. результат пока - false.
 
 Разницу между доказательством и обоснованием понимаешь? И еще: скажи мне,
 всегда ли оправдывают подсудимого, если один конкретно взятый эпизод
 обвинения не доказан? Или даже если обвинение не сможет убедить суд по
 половине рассматриваемых эпизодов эпизодов? Ты уже понял, что прямолинейная
 формальная логика применима только при построении формальных теорий на
 аксиоматическом базисе?
 
 > Перл - это много разных парадигм, достаточно
 > удачно сочетающихся вместе. ООП - в том числе. FP - в том числе.
 > Процедурное - в том числе. И именно это в нем хорошо.
 
 Да. Это сильная сторона перла. Идеальное средство для быстрой клепки систем
 низкой и средней сложности при таких же требованиях к надежности.
 
 Кстати, по поводу производительности перловых задач - уже сейчас CGI
 становятся узким местом в идеологии "активных страниц". Это получается по
 разным причинам, но перл здесь играет не самую последнюю роль. В моменты
 пиковых нагрузок сервера надолго подвисают, между хостерами и хостящимися
 начинается ругань и т.д.. Тогда как проблема решается достаточно просто -
 большую часть кода CGI-задач надо писать в виде бинарного кода (возможно,
 используя перл в качестве интегрирующей среды).
 
 > Опять же - какая разница, если снаружи неотличимо?
 
 Разница в том, что на плюсах это получается естественно и просто. А на перле
 приходится "эмулировать", т.е. тратить дополнительные время и силы.
 
 Пока.
 Андрей.
 
 PS. Да, если вдруг кто захочет продолжать дискуссию, то лучше мылом. А то
 модератор уже проявлял беспокойство.
 --- ifmail v.2.15dev5
  * Origin: Demos online service (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Perl OOP???   Vinokurov Andrey   17 Jan 2002 19:28:36 
 Re: Perl OOP???   Serge Shikov   17 Jan 2002 21:03:08 
 Perl OOP???   Alex Kharitonov   20 Jan 2002 00:18:06 
 Re: Perl OOP???   Serge Shikov   20 Jan 2002 15:38:58 
 Re: Perl OOP???   Vinokurov Andrey   23 Jan 2002 16:58:18 
 Perl OOP???   Moderator   25 Jan 2002 01:35:06 
 Re: Perl OOP???   Vinokurov Andrey   23 Jan 2002 17:53:48 
 Re: Perl OOP???   Serge Shikov   25 Jan 2002 12:10:07 
 Re: Perl OOP???   Vinokurov Andrey   01 Feb 2002 19:07:25 
 Re: Perl OOP???   Serge Shikov   01 Feb 2002 22:18:32 
 Perl OOP???   Alexander Kostiuchenko   05 Feb 2002 08:54:10 
 Re: Perl OOP???   Vinokurov Andrey   23 Jan 2002 16:58:18 
 Perl OOP???   Alex Kharitonov   23 Jan 2002 20:29:59 
 Re: Perl OOP???   Vinokurov Andrey   24 Jan 2002 18:40:32 
 Perl OOP???   Alex Kharitonov   26 Jan 2002 00:41:19 
 Perl OOP???   Alexander Kostiuchenko   20 Jan 2002 04:08:56 
 Re: Perl OOP???   Vinokurov Andrey   24 Jan 2002 19:03:09 
Архивное /ru.website/6577014ed586.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional