Re[24]: Будущее Perl. Каким вы себе его видите?
От: anonymous Россия http://denis.ibaev.name/
Дата: 16.08.07 13:48
Оценка:
Здравствуйте, YК, Вы писали:

a>>>> Теперь сравним Java с PHP и придём к выводу, что Java нафиг

a>>>> никому не сдалась. Ущербность подхода не чувствуешь?
YК>>> А ты не чуствуешь различия между причинами и следствиями? Объем
YК>>> разработки — это уже следствие.
a>> А что причина?
YК>Я уже написал, и не один раз. Устал повторять одно и тоже, честно.

Значит непонятно написал.

YК>>> Сравнивать PHP и Java это вообще нонсенс, учитывая количество

YК>>> говностраничек и говносайтов, написанных на PHP.
a>> На Perl тоже много говностраничек. С Java не будем сравнивать?
YК>Будем, ты ж его для больших проектов прочишь.

Значит и с PHP можно сравнивать, на нём тоже большие проекты пишут.
Re[26]: Будущее Perl. Каким вы себе его видите?
От: anonymous Россия http://denis.ibaev.name/
Дата: 16.08.07 13:50
Оценка:
Здравствуйте, YК, Вы писали:

YК>Ну вот, а я считаю, что своей относительной популярностью Perl обязан CGI.

YК>На этом и закончим.

Ну ладно, веруй.
Re[25]: Будущее Perl. Каким вы себе его видите?
От: Left2 Украина  
Дата: 16.08.07 14:31
Оценка:
A>А потом оказалось, что веб — это текст, а язык для обработки текста — это Perl, и Perl знают большинство unixоидов. Не CGI сделал Perl.

Что-то мне это утверждение кажется до крайности спорным. То что Web основан на текстовых протоколах вовсе не говорит о том что веб-это текст. Или до сих пор кто-то протокол HTTP ручками парсит? Или XML? Хотя, я видел ручной парсинг XML на перле — в системе автобилда ACE/TAO — но назвать такое решение удачным у меня язык не повернётся.
... << RSDN@Home 1.2.0 alpha rev. 717>>
Re[26]: Будущее Perl. Каким вы себе его видите?
От: anonymous Россия http://denis.ibaev.name/
Дата: 16.08.07 18:17
Оценка:
Здравствуйте, Left2, Вы писали:

A>>А потом оказалось, что веб — это текст, а язык для обработки текста — это Perl, и Perl знают большинство unixоидов. Не CGI сделал Perl.

L>То что Web основан на текстовых протоколах вовсе не говорит о том что веб-это текст.

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

L>Или до сих пор кто-то протокол HTTP ручками парсит? Или XML?


Для этого давно написаны библиотеки на том же Perl, но если очень хочется, то можно и "ручками". В конце концов есть веб-сервера на Perl, а у них обязанность такая — парсить HTTP.

Из описания Perl 1.000:

DESCRIPTION
     Perl is a interpreted language optimized for scanning  arbi-
     trary  text  files,  extracting  information from those text
     files, and printing reports based on that information.

Что такое HTTP-запрос/ответ как не текстовый файл? То же и с остальным.

L>Хотя, я видел ручной парсинг XML на перле — в системе автобилда ACE/TAO — но назвать такое решение удачным у меня язык не повернётся.


Всё зависит от задачи. Если формат XML заранее известен и жёстко задан, то часто лучшим решением будет как раз такой ручной разбор вместо использования полноценного всеядного XML-парсера.
Re[27]: Будущее Perl. Каким вы себе его видите?
От: Left2 Украина  
Дата: 17.08.07 04:45
Оценка:
A>Для этого давно написаны библиотеки на том же Perl, но если очень хочется, то можно и "ручками". В конце концов есть веб-сервера на Perl, а у них обязанность такая — парсить HTTP.

в том-то и дело что библиотеки написаны не только для перл, а для практически всех известных языков. и якобы "заточеность" перла под работу с текстом (кстати — в чём она выражена?) тут становится преимуществом сомнительным.

A>Всё зависит от задачи. Если формат XML заранее известен и жёстко задан, то часто лучшим решением будет как раз такой ручной разбор вместо использования полноценного всеядного XML-парсера.


Единственное место где я бы посчитал такой подход оправданным — это какой-то жуткопроизводительный код, где тем не менее от XML никак не избавиться. Но как только речь заходит о производительности, не только Perl но и разбор на основе регулярных выражений в любом другом языке нервно курят в сторонке. Во всех остальных случаях — я не найду слов сочувствия для того программиста который это написАл
Re[28]: Будущее Perl. Каким вы себе его видите?
От: anonymous Россия http://denis.ibaev.name/
Дата: 17.08.07 12:27
Оценка:
Здравствуйте, Left2, Вы писали:

A>>Всё зависит от задачи. Если формат XML заранее известен и жёстко задан, то часто лучшим решением будет как раз такой ручной разбор вместо использования полноценного всеядного XML-парсера.

L>Единственное место где я бы посчитал такой подход оправданным — это какой-то жуткопроизводительный код, где тем не менее от XML никак не избавиться. Но как только речь заходит о производительности, не только Perl но и разбор на основе регулярных выражений в любом другом языке нервно курят в сторонке. Во всех остальных случаях — я не найду слов сочувствия для того программиста который это написАл

Простой пример:
<person>
  <first-name>John</first-name>
  <last-name>Smith</last-name>
</person>

Нам нужно только имя:
my $xml = get('/path/to/xml');
$xml =~ /<first-name>(.*?)<\/first-name>/;
my $name = $1;

И это будет работать быстрее, чем разбор XML в парсере, и ресурсов потребует меньше. Для наглядности приведу результаты тестов:
use Benchmark;
use XML::Simple qw(XMLin);
use XML::Parser;

my $xml = '<person><first-name>John</first-name><last-name>Smith</last-name></person>';
my $parser = XML::Parser->new('Style' => 'Objects');

Benchmark::cmpthese(
    100000,
    {
        'XML::Parser' => sub
        {
            my $data = $parser->parse($xml);
            my $name = $data->[0]->{'Kids'}->[0]->{'Kids'}->[0]->{'Text'};
        },
        'XML::Simple' => sub
        {
            my $data = XMLin($xml);
            my $name = $data->{'first-name'};
        },
        'RegExp' => sub
        {
            $xml =~ /<first-name>(.*?)<\/first-name>/;
            my $name = $1;
        },
    }
);

Даст разницу минимум на 2 порядка при том, что XML::Parser написан на Си:
                Rate XML::Simple XML::Parser      RegExp
XML::Simple    565/s          --        -82%       -100%
XML::Parser   3133/s        455%          --        -99%
RegExp      375940/s      66489%      11901%          --

Поэтому, если хочется красиво и всё, то выбираешь парсер, если же хочется быстро, то делаешь всё "ручками".
Re[29]: Будущее Perl. Каким вы себе его видите?
От: Left2 Украина  
Дата: 17.08.07 12:55
Оценка: +3
A>Поэтому, если хочется красиво и всё, то выбираешь парсер, если же хочется быстро, то делаешь всё "ручками".

Ага, только мы забыли про:
1. Encodings
2. CDATA
3. то что first-name может иметь атрибуты
4. про то что &amp;, &quot; и т.п. внутри first-name нам ещё надо преобразовать в соотв. символы
5. знатоки XML поправят — может, я ещё что-то забыл?

в итоге — решение настолько ограниченное и изобилующее подводными камнями что я не рискнул бы с ним связываться практически нигде. Поскольку это уже не XML — это свой собственный проприетарный формат ПОХОЖИЙ на XML.
... << RSDN@Home 1.2.0 alpha rev. 717>>
Re[30]: Будущее Perl. Каким вы себе его видите?
От: anonymous Россия http://denis.ibaev.name/
Дата: 17.08.07 13:05
Оценка:
Здравствуйте, Left2, Вы писали:

A>>Поэтому, если хочется красиво и всё, то выбираешь парсер, если же хочется быстро, то делаешь всё "ручками".

L>Ага, только мы забыли про:

Мы не забыли, у нас частный случай, т. е. по определению ограниченный, и эти ограничения нам известны.
Re[31]: Будущее Perl. Каким вы себе его видите?
От: Left2 Украина  
Дата: 17.08.07 13:30
Оценка:
A>>>Поэтому, если хочется красиво и всё, то выбираешь парсер, если же хочется быстро, то делаешь всё "ручками".
L>>Ага, только мы забыли про:

A>Мы не забыли, у нас частный случай, т. е. по определению ограниченный, и эти ограничения нам известны.


А где мы пропишем эти ограничения? В XML? В код программы? И туда и туда? А то эти "нам известные" ограничения уж слишком смахивают на спрятанные в траве грабельки.
... << RSDN@Home 1.2.0 alpha rev. 717>>
Re[30]: Будущее Perl. Каким вы себе его видите?
От: palm mute  
Дата: 17.08.07 13:38
Оценка: +3
Здравствуйте, Left2, Вы писали:

L>5. знатоки XML поправят — может, я ещё что-то забыл?

Я ни разу не знаток, но забыли еще и про элементарную обработку ошибок.
Т.к. быстрое и неправильное решение на регеэкспах съест любую ерунду, в которой встречается искомая строка.
Re[28]: Будущее Perl. Каким вы себе его видите?
От: anonymous Россия http://denis.ibaev.name/
Дата: 17.08.07 14:00
Оценка:
Здравствуйте, Left2, Вы писали:

A>>Для этого давно написаны библиотеки на том же Perl, но если очень хочется, то можно и "ручками". В конце концов есть веб-сервера на Perl, а у них обязанность такая — парсить HTTP.

L>в том-то и дело что библиотеки написаны не только для перл, а для практически всех известных языков. и якобы "заточеность" перла под работу с текстом тут становится преимуществом сомнительным.

Про частные решения частных задач я уже написал.

L>"заточеность" перла под работу с текстом (кстати — в чём она выражена?)


Встроенные в язык регулярные выражения, синтаксис которых считается наиболее удачным.

В качестве примера: http://www.lghost.ru/lib/samag/content/2002/samag_01_1/samag1(1)-34-41.pdf
Re[31]: Будущее Perl. Каким вы себе его видите?
От: anonymous Россия http://denis.ibaev.name/
Дата: 17.08.07 14:01
Оценка:
Здравствуйте, palm mute, Вы писали:

L>>5. знатоки XML поправят — может, я ещё что-то забыл?

PM>Я ни разу не знаток, но забыли еще и про элементарную обработку ошибок.
PM>Т.к. быстрое и неправильное решение на регеэкспах съест любую ерунду, в которой встречается искомая строка.

Ключевая фраза: "неправильное решение". (:
Re[32]: Будущее Perl. Каким вы себе его видите?
От: anonymous Россия http://denis.ibaev.name/
Дата: 17.08.07 14:09
Оценка: :)
Здравствуйте, Left2, Вы писали:

A>>>>Поэтому, если хочется красиво и всё, то выбираешь парсер, если же хочется быстро, то делаешь всё "ручками".

L>>>Ага, только мы забыли про:
A>>Мы не забыли, у нас частный случай, т. е. по определению ограниченный, и эти ограничения нам известны.
L>А где мы пропишем эти ограничения?

В техническом задании. Если в ТЗ написано, что входные данные такие-то, а приходит нечто иное, то программа не обязана это корректно обрабатывать.

L>А то эти "нам известные" ограничения уж слишком смахивают на спрятанные в траве грабельки.


Тебе о проектировании что-нибудь известно?
Re[33]: Будущее Perl. Каким вы себе его видите?
От: Left2 Украина  
Дата: 17.08.07 14:21
Оценка: +2
L>>А то эти "нам известные" ограничения уж слишком смахивают на спрятанные в траве грабельки.
A>Тебе о проектировании что-нибудь известно?
Я наверное не слишком большой гуру в проектировании, но всегда считал что:

L>>А где мы пропишем эти ограничения?

A>В техническом задании. Если в ТЗ написано, что входные данные такие-то, а приходит нечто иное, то программа не обязана это корректно обрабатывать.
если программе пришли некорректные данные — то программа должна выдать ошибку о том что данные некорректны. А работать с некорректными данными "как Бог на душу положит" (а именно так будет работать кусок с regexp-ом, и тебе уже об этом сказали) — это как-то не пахнет профессионализмом.
... << RSDN@Home 1.2.0 alpha rev. 717>>
Re[34]: Будущее Perl. Каким вы себе его видите?
От: anonymous Россия http://denis.ibaev.name/
Дата: 17.08.07 18:25
Оценка:
Здравствуйте, Left2, Вы писали:

L>>>А где мы пропишем эти ограничения?

A>>В техническом задании. Если в ТЗ написано, что входные данные такие-то, а приходит нечто иное, то программа не обязана это корректно обрабатывать.
L>если программе пришли некорректные данные — то программа должна выдать ошибку о том что данные некорректны. А работать с некорректными данными "как Бог на душу положит" (а именно так будет работать кусок с regexp-ом, и тебе уже об этом сказали) — это как-то не пахнет профессионализмом.

Под "не обязана это корректно обрабатывать" я имел в виду, что ты не получишь корректных выходных данных. А уж должна программа просто выдать сообщение об ошибке или аварийно завершиться, обговаривается отдельно.

Тот "кусок с regexp-ом" всего лишь пример, так что не надо о профессионализме. И он не работает "как Бог на душу положит", мы либо получим в $name нужное значение, либо $name будет пуст, и в реальном проекте проверка будет произведена.
Re[4]: Будущее Perl. Каким вы себе его видите?
От: sch  
Дата: 17.08.07 19:29
Оценка: +1
Здравствуйте, Mamut, Вы писали:

M>Интересно, что когда я переходил на Линукс, я думал, что, мол, надо будет подучиься Perl'у, скриптики писать. Как оказалось, каждое второе приложение расширяемо Питоном, а в качестве скриптового языка Питон ввобще руль. Perl в линуксе я пока так и не видел (правда, и не искал)


Первое что приходит в голову -- autotools, dh_* скрипты и кусочки dpkg в Debian.

M>Он не умер, он просто так пахнет (с) про Лисп


В оригинале: "jazz is not dead, it just smells funny", классическая цитата Френка Заппы.

А теперь коротенькая история про Perl. Однажды мы с одним Java-программистом делали регрессионные тесты некой системы. Данных было много, их надо было загрузить, подготовить и сравнить со старыми данными. Так получилось, что мы одновременно, не зная друг о друге, стали писать эту самую сравнивалку. Через 30 минут у меня были результаты, а сотоварищ только научился разбирать файлы с дампом. При том, что я очень плохой программист на Perl, а мой товарищ -- очень хороший программист на Java.

К чему это я?

К тому, что Perl вполе себе хорош для своих целей. Он быстрый, достаточно бесшабашный и еще больше tricky. Он незаменим, когда надо нарисовать скриптик по-быстрому и что-нибудь посчитать. Не уверен насчет больших программ, но для скриптов Perl -- самое оно. Единственно что мне прямо сейчас не хватает на Perl -- нормальной и поддерживаемой реализации CORBA.

И самое главное, на Perl приятно писать

P.S. А сейчас я пойду и поставлю минусы всем, кто постил картинки с гробами и говорил что Perl -- говно. Доброжелательнее и терпимее надо быть, товарищи.
Re[2]: Будущее Perl. Каким вы себе его видите?
От: sch  
Дата: 17.08.07 19:34
Оценка:
BZ>я надеюсь, что его вытеснит руби — это "perl done right"

Я думаю, что только Larry Wall знает, каким должен быть Perl, и вряд ли Larry Wall хотел сделать что-то типа Ruby -- это становится ясно если прочитать пару глав из Programming Perl.
"Perl done right" -- всего лишь не очень удачный рекламный слоган.
Re[30]: Будущее Perl. Каким вы себе его видите?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 17.08.07 19:59
Оценка:
Здравствуйте, Left2, Вы писали:

L>5. знатоки XML поправят — может, я ещё что-то забыл?


Как минимум еще кастомные entity, проверку схемы и неймспейсы.
... << RSDN@Home 1.2.0 alpha rev. 719 on Windows Vista 6.0.6000.0>>
AVK Blog
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.