четверг
Золотое правило админа

Если кто-то еще не знает, это правило звучит так:
Работает - не трожь!
Теперь собственно сама история. Когда-то у меня стояла OpenSUSE 10.3, в которой был Perl 5.8.8. С выходом OpenSUSE 11 я решил сделать апгрейд, который на первый взгляд прошел удачно. Все было хорошо, пока я не попробовал запустить несколько своих ботов.
Выяснилось, что в 11-й версии Perl проапгрейдился до версии 5.8.10, и основные модули по работе тоже подвергались апгрейду. Все товарищи, кто прямо или косвенно пользовался модулем HTTP::Message скорее всего в логах увидили нечто подобное:
HTTP::Message content not bytes
и после этого долго ломали голову над своим кодом. А на самом деле бага в коде была на стороне мантайнера HTTP::Message, версия libwww-perl-5.810 оказалась глючной до безобразия. И самое интересное, эта версия оказалась в дистрибутиве OpenSUSE 11, поэтому совсем безболезненно апгрейд не прошел.
Да, эта проблема решается апгрейдом libwww-perl до более свежей версии, что собственно я и сделал. Сейчас это libwww-perl-5.814, и пока багов в ней не заметил.
Вот и думай после этого, а нужен ли был апгрейд, если он принес столько геморроя?
Ярлыки: Linux, Программирование
воскресенье
Про отдых в Черногории
среда
PHP или Perl?
Инструмент нужен под задачу, и сравнение этих двух языков программирования сведется к обычной демагогии.
PHP более легкий, и изначально он заточен для того, чтобы отрисовывать динамически создаваемые веб-странички. Все остальное, что написано на php и запускается из командной строки или по крону, зачастую сделано нерационально.
Perl же изначально задуман для обработки текстовой информации. Сейчас это очень мощный язык программирования, с нормально реализованной многопоточностью. На нем тоже можно писать веб-приложения (и весьма успешно), но при прочих равных условиях на php это сделать проще.
Подход к программированию на этих языках отличается. Если проводить аналогии со строительством, то написание программ на Perl это в основном сборка уже готовых блоков (модулей) с последующей небольшой доработкой; разработка же на PHP - это как правило, разработка с нуля.
Благодаря Comprehensive Perl Archive Network (CPAN) каждый разработчик может пользоваться уже готовыми решениями для многих случаев жизни.
Например, я уже забыл, когда извлекал линки из HTML-страниц с помощью регулярных выражений; для этих целей есть модуль HTML::LinkExtor. Понадобилось вытащить настройки из конфигурационного файла в XML? Раз плюнуть, пользуйтесь XML::Simple. Надо написать поискового бота? Тоже несложно, LWP::RobotUA в помощь.
Зачастую задача программиста на Perl в сводится к тому, чтобы собрать в кучу все необходимые уже готовые модули и подружить их со своим кодом; он экономит кучу времени, пользуясь результатами труда других разработчиков.
Но надо отдать должное php, синтаксис там интуитивно понятный в основной своей массе. Одни только специальные переменные Perl могут вызвать отвращение с первого взгляда на них. Ну разве можно новичку самому догадаться о том, что хранится в переменных $`, $&, $_ или $/ ? Без стакана и чтения документации разобраться сложно. А вот с документацией у Perl все в порядке, команда perldoc позволит быстро найти все, что надо.
PHP более легкий, и изначально он заточен для того, чтобы отрисовывать динамически создаваемые веб-странички. Все остальное, что написано на php и запускается из командной строки или по крону, зачастую сделано нерационально.
Perl же изначально задуман для обработки текстовой информации. Сейчас это очень мощный язык программирования, с нормально реализованной многопоточностью. На нем тоже можно писать веб-приложения (и весьма успешно), но при прочих равных условиях на php это сделать проще.
Подход к программированию на этих языках отличается. Если проводить аналогии со строительством, то написание программ на Perl это в основном сборка уже готовых блоков (модулей) с последующей небольшой доработкой; разработка же на PHP - это как правило, разработка с нуля.
Благодаря Comprehensive Perl Archive Network (CPAN) каждый разработчик может пользоваться уже готовыми решениями для многих случаев жизни.
Например, я уже забыл, когда извлекал линки из HTML-страниц с помощью регулярных выражений; для этих целей есть модуль HTML::LinkExtor. Понадобилось вытащить настройки из конфигурационного файла в XML? Раз плюнуть, пользуйтесь XML::Simple. Надо написать поискового бота? Тоже несложно, LWP::RobotUA в помощь.
Зачастую задача программиста на Perl в сводится к тому, чтобы собрать в кучу все необходимые уже готовые модули и подружить их со своим кодом; он экономит кучу времени, пользуясь результатами труда других разработчиков.
Но надо отдать должное php, синтаксис там интуитивно понятный в основной своей массе. Одни только специальные переменные Perl могут вызвать отвращение с первого взгляда на них. Ну разве можно новичку самому догадаться о том, что хранится в переменных $`, $&, $_ или $/ ? Без стакана и чтения документации разобраться сложно. А вот с документацией у Perl все в порядке, команда perldoc позволит быстро найти все, что надо.
Ярлыки: Программирование
