Xpoint
   [напомнить пароль]

Критический анализ языка perl

спустя 2 часа 22 минуты [обр] Alexander O [досье]
спустя 43 минуты [обр] Дмитрий Котеров [досье]

Вообще говоря, то, что автор написал так много, определенно заслуживает уважения. То, что в глаза не бросаются орфографические ошибки (я пока не видел, хотя прочитал еще не все) — заслуживает вдвойне.

Наверное, могу выразить общее мнение: первое впечатление — негативное. Однако, думаю, не все так просто. Попробуйте перед прочтением чуть помедитировать и забыть свое истинное отношение к Perl. Представьте, что вы к нему равнодушны. Встаньте, наконец, на точку зрения автора. Попробуйте. Просто для эксперимента. Помогает.

Многое, что там написано, правильно. Многое правильно лишь идеологически (но не практически). Многое неправильно вовсе. Но... многие аспекты «правильности» часто при более детальном рассмотрении превращается просто в не очень хорошую осведомленность автора. Тем не менее, то, что он все-таки при таком уровне знания Perl решил написать столь объемный труд, очень похвально. На ошибках учатся. Не все же такие Перл-гуру, как arto (-;

Читая (а я решил прочитать это все), буду здесь помечать моменты, которые автору следовало бы чуть подучить.

спустя 2 часа 6 минут [обр] Дмитрий Котеров [досье]

Ну вот, что я бы сделал на месте автора той статьи...

http://ivtcom.newmail.ru/perl170102/token.htm
Комментарии. «Апокалипсисы» Ларри о том, что, даже используя многострочные комментарии, в 99% случаях применяют их так же, как многострочные. С неудобством POD (нужно везде расставлять пустые строки) я лично согласен.

Идентификаторы. Числа. Изучить, что такое perl -w и use strict (правда, ради справедливости надо сказать, что в конце автор ссылается на эти директивы; однако утверждать, что «они не спасают от самых главных недостатков perl», — все равно, что обвинять Паскаль в том, что программы на нем можно набирать по cat >prog.pas; это лишь вопрос удобства). Большинство описанных в этом разделе проблемы надуманы (по указанной только что причине).

Строки. Ошибочные рассуждения о неудобстве интерполяции переменных (вероятно, просто недостаток опыта). Ошибочное преувеличение замедления от регулярных выражений (это не самое узкое место в Perl, на практике экономия на спичках в большинстве случаев). Прочитать MRE.

#3
Скаляры. Почитать про sprintf и проблему Y2K (-;

Массивы. Медлительность массивов — не самое узкое место (как правило). Путаница понятий «массив» и «список» (это очень существенный недочет).

#4
Операции и выражения. Много провокаций, но, в общем-то, много и справедливой критики. Чрезмерно объемное и однобокое рассмотрение деления с остатком (нужно смотреть на практическую применимость этой операции — например, «наложение текстуры черепицы», — а не на математическую).

Операции сравнения. Неверные (с практической точки зрения) рассуждения о приоритетах и скобках (сравните Си и Паскаль).

Прочие операции. Болезненная боязнь большого числа уровней приоритетов (честно говоря, мне не удается понять, почему много приоритетов — это плохо, ведь в случае сомнений всегда можно использовать скобки). В теории правильно про ?:, однако на практике Perl (когда нужно обязательно указывать фигурные скобки) действительность несколько искажается.

Операторы безусловного перехода. Почитать, как работают next и last (ошибка в тексте). Я также не согласен с неправомерностью использования break/continue (между прочим, Кнут писал только про «плохость» goto с меткой). Про goto &subroutine — явная нехватка квалификации (бывают ситуации, когда без этого оператора просто не обойтись, никак).

Область видимости идентификаторов. Просто ошибочные рассуждения (с практической точки зрения). local чаще всего используют вовсе не так, как пишет автор, а для сохранения чего-либо (например, элемента хэша) с гарантированным восстановлением (даже в случае исключения или ошибки). Вложенность областей видимости как ничто другое полезно для вызова деструкторов объектов (чем Perl славен, как и C++).

#8
Тут я буквально порадовался конструктивности критики.


Вообще, мне кажется, что все-таки (и в бОльшей, нежели в меньшей, степени) автор прав. Конечно, ему не мешало бы еще чуть поработать, чтобы окончательно разделить помидоры и пирамиды.

P.S.
Друкса только к нему не подпускайте — разорвет (-;

спустя 10 часов [обр] romane [досье]
уфф... извините, но мне кажется, что большая часть "критики" фуфло...
очень похоже, что человек мало писал в свое время на Си и толком не может привыкнуть к некой "оригинальности" Перл... ну и о чем тогда говорить ?? не нравится ему, ну и пусть гребет по своей реке :-)
спустя 10 часов [обр] Дмитрий Котеров [досье]
Я же говорю — не все так просто. Человек разбирается в теории, мне кажется, даже слишком хорошо (я бы, например, просто не смог так легко цитировать Вирта и Кнута). Вопрос тут не в «нравится — не нравится», а в объективной оценке.
спустя 2 дня 14 часов [обр] arto [досье]
да, про oop написано неплохо. только одна беда - в perl нет oop, а только поддежка oo стиля программирования. автор сражается со своими ветряными мельницами. зачем это ему?
спустя 4 часа 34 минуты [обр] Пелих Александр [досье]
До конца читать не стал. Скучно и притянуто за уши. Не удивлюсь, если апофиозом статьи будет крик "А еще очень раздражает отсутствие функции распознования речи для голосового ввода программ!".
спустя 3 часа 5 минут [обр] Дмитрий Котеров [досье]
arto: хорошо сказано.
Powered by POEM™ Engine Copyright © 2002-2005