Языку Perl исполнилось 23 года. По традиции с 1 по 24 декабря разработчики языка Perl организовали марафон, в рамках которого на страницах блога perl6advent.wordpress.com (http://perl6advent.wordpress.com) каждый день один из разработчиков делился какими-то практическими навыками, демонстрирующими те или иные возможности Perl 6 (http://perl6.org/). Завершила марафон статья (http://perl6advent.wordpress.com/2010/12/24/day-24-yule-the-.../) Ларри Уолла (Larry Wall), в которой он подвел итоги 23-летней истории языка Perl, рассказал об особенностях сообщества разработчиков и сформировавшихся традициях (например, добродушный троллинг или словесное айкидо).
По мнению Ларри Уолла Perl не просто технология, а целая культура. При формировании Perl было сделано несколько нестандартных решений ("культурных хаков"), из которых первым "хаком" стала сама идея создания нового языка программирования, поддерживаемого только силами сообщества энтузиастов. Вторым "хаком" стала д...URL: http://twitter.com/TimToady/status/18358836465246208
Новость: http://www.opennet.me/opennews/art.shtml?num=29124
Новость хорошо подана. Однако у перла весьма туманное будущее - из дистров его потихоньку выпиливают, любителей на нем писать все меньше.
Потому что питон рулит
Это точно. Синтаксис весьма хорош и код читабелен, даже не зная питона можно понять что написано. А разбирать чужой код на перле то еще удовольствие
питонщика видно из далека, перл так и не дает покоя... :)
у меня обратная ситуация код на перле читабелен полностью, патчи пишутся на раз. А вот с питоном беда, особенно там где нужно его к апачу прикрутить.
Да действительно нужно много мозгов, чтобы к апачу python прикрутить:$sudo apt-get mod_python
$cat /etc/apache2/sites-availabe
<Location "/myproject/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE mysite.settings
PythonOption django.root /myproject/
PythonDebug On
PythonPath "sys.path + ['/var/www/']"
</Location>
<Location "/media/">
SetHandler None
</Location>
^D
$sudo /etc/init.d/apache2 restart
mod_python мёртв
+1, это тормозное чудо я даже не имел ввиду
поставил я сдуру в качестве корп. вики moinmoin написанный на этом подобии компилируемого языка. К апачу оно прикручивалось с матюками, теперь каждое обновление этого вареза тоже сопровождается матюками, разборками с инстансами, и какой-то прочей левотой. Почему к примеру phpMyAdmin обновляеся одной командой? а тут надо др0чить консоль дабы отловить все глюки/баги, понять что там в конфиге и почему это не хочет создаваться .pyc файл. бред же ну.
>Почему к примеру phpMyAdmin обновляеся одной командой?Соберите пакет и ваш "варез" тоже будет устанавливаться одной командой. Остальное нытье.
> Это точно. Синтаксис весьма хорош и код читабелен, даже не зная питона
> можно понять что написано. А разбирать чужой код на перле то
> еще удовольствиеСинтаксис убог, ибо заставляет писать в одном стиле, который не для всех кажется удобным. Т.е. это хорошо для ограниченных, "ведомых" людей, кому сказал как делать и он рад слушаться. А для креативных людей, "творцов", такой подход кажется неприемлимым. Им чем больше свободы, тем лучше. И перл тут подходит куда лучше с его дивизом "есть больше одного способа сделать что-то".
Ага-ага. И когда к вам присоединяется вот такой вот "творец", остальные долго матерятся.
Так что python просто принуждает писать читабельно - иначе не заработает.
> просто принуждает писать читабельноНужно наносить пользу и причинять добро? :)
> - иначе не заработает.
Это почему же? Есть еще вариант что заработает, но неправильно :)
И у меня есть вопрос: где же, блин, нормальные продукты написаные на питоне, если там все так замечательно?
> И у меня есть вопрос: где же, блин, нормальные продукты написаные на
> питоне, если там все так замечательно?Странные вопросы задаете товарищ, актуальный был вопрос бы такой в начале 90-х.
Продуктов написанных на python и работающих в продакшене слишком много чтобы их перечислять.Если говорить допустим про веб, то майнстримом выделяются такие вещи как django и tornado, хотя на них список далеко не ограничивается. На python работает часть гугла, часть яндекса, ютубе полностью, фейсбук использует tornado в качестве веб-сервера, собственно это его разработка, точнее купленой им компании. Видеоблог президента РФ, то же на python написан.
В сетевой разработке рулит twisted, позволяет легко делать любые асинхронные сетевые приложения.
В научной среде особым интересом пользуется scipy, которая ничем не уступает матлабу, ну кроме визуальных средств, у генетиков стандартом является biopython
Множество GUI-приложений, особенно под Linux, особенно в Ubuntu, мейнстрим PyGTK,PyQt.
Утилит и скриптов по администрированию систем, просто море.
> Множество GUI-приложений, особенно под Linux, особенно в Ubuntu, мейнстрим PyGTK,PyQt.А у меня сложилось впечатление, что в Убунту мейнстрим --- МОНО, но не Питон.
>А у меня сложилось впечатление, что в Убунту мейнстрим --- МОНО, но не Питон.Там из моно остался только томбой, и то только потому что идет с гномом, проделки Мигелюшки Де Иказы. Хотят вроде еще плеер на моно туда вставить, но опять же не показатель.
> В научной среде особым интересом пользуется scipy, которая ничем не уступает матлабу,
> ну кроме визуальных средств, у генетиков стандартом является biopythonа я всё на фортране проги для квантовой механики использовал (дописывал). :D
>хорошо для ограниченных
>"ведомых" людей
>креативных людей
>"творцов"
>больше свободы
>тут подходит куда лучшеi want to believe
зы. это такой демонстрационный пример хода мыслей перловика, или мне показалось (написать столько букв и не сказать ничего)?
Вы что на самом деле считаете программистов творцами? Я сам программист с 10-летним стажем и то так не считаю. Есть даже анекдот на эту тему.Perl на самом деле сложно применять в командной разработке если заранее не оговорен стандарт кодирования, с помощью неявных переменных можно таких выкрутасов написать, что другие потом неделю разбираться будут. Python на самом деле для командной разработки будет получше, особенно Python + Django + TDD.
Я вобще уже года 2 апач не использую, nginx + FastCGI. По этой схеме работают PHP, Perl, Python и.т.д. + масшабируемо. Так что если ты не хостер, то нафиг апач не уперся.
и в чём отличие?
nginx+Apache от nginx+FastCGI ?
поточнее выражайтесь:
nginx+apache+mod_xxx от nginx+FastCGI
Объясните, зачем ЛИШНЯЯ тормозная прокладка с дубляжом функционала и более скукоженным местом входа (какие-то там хэндлеры для mod_xxx писать на каждый чих и тп)?
Чтобы мысли головного мозга текли исключительно по проторенной массами тропе?
расскажите, как/чем заменить libapreq ? :)
Потому что есть Ruby.
>Однако у перла весьма туманное будущееУ перла весьма ясное и светлое будущее, оно называется perl6.
> - из дистров его потихоньку выпиливают,
Гон, ниоткуда его не выпиливают.
>любителей на нем писать все меньше.
Неправда. В прошлом - да, перл испытал сильный отток разработчиков - это те, кто писал говнокод и не осилили нормально изучить язык. Сейчас они все перелезли на более простые языки типа PHP/Python. Но для перла это только позитив - как для человека избавление от мерзкой гнойной опухоли.
Сейчас же у него всё стабилизировалось, и язык продолжает активно развиваться. CPAN, например, тому подтверждение.
>> - из дистров его потихоньку выпиливают,
>Гон, ниоткуда его не выпиливают.выпиливают, выпиливают - из freebsd например :))
он им там, сильно мешает писать на sed&awk
Там не совпадали циклы выпуска релизов и жизненные циклы.
Т.е. причина совсем в другом.
И хорошо что выпилили, в голом дистрибутиве вообще должно быть лишнего кода по минимуму, что бы в системе было меньше мест где она может сломаться. И совсем другой компот, что перл все равно всегда ставится...
Статистика например вот:
http://www.indeed.com/jobtrends?q=perl+%22software+engi...,+python+%22software+engineer%22&l=>можете пояснить, что же вы имеет ввиду под "простыми" и как это характеризуете и почему?
Если ты считаешь, что PHP сложнее Perl - мне остаётся только посочувствовать. Разжёвывать что такое хорошо что плохо у меня нет времени.
>p5 почти не развивается
Бредятина, активно развивается, посмотри хотя бы на changelog прежде чем писать такую ересь. Многие фишки из 6го переносят в 5й. Или если они не инкрементят мажорную версию каждые полгода как принято в каком-ть гугле, значит и развития нет?
>p6 старожилам привить не удаётся
Что ещё за прививание? Perl-разработчики не какие-ть бездомные собаки, которых нужно прививать. Кто хочет - берёт и использует 6ку, уже давно.
там есть miniperl (RTFM?)
> выпиливают, выпиливают - из freebsd например :))
> он им там, сильно мешает писать на sed&awkА почему выпилили не говорим?
Потому-что таким образом во freebsd избавилиь от лишних базовых зависимостей, т.е. переписали все стартовые и установочные скрипты на shell+awk+sed, читай на том, что есть в базовой системе. Т.о. если бы на месте перла был питон, то его бы точно также бы и выпилили из базовой системы. Но в самой системе perl остался.
>>Однако у перла весьма туманное будущее
> У перла весьма ясное и светлое будущее, оно называется perl6.Ну да последние 10 лет раз в месяц появляются новые статьи о perl6, и еще 10 лет таким статьям обеспечен стабильный выход. А потом двояко либо он наконец появится, либо про него забудут.
Товарищ, Perl6 сначала появился на бумаге, в виде спецификации, его очень долго проектировали, так как язык планируется вводить на жизненный цикл 20 лет, и он очень сильно отличается от перл5, это по сути другой язык.
А вот Python3 это прямое продолжение Python2, не так ли? И пилят его уже тоже около 10 лет.
А для Perl6 уже вышел интерпретатор, качай Rakudo Star и радуйся жизни.
> из дистров его потихоньку выпиливаютPerl входит в LSB, фантазёр.
в LSB небось просто написанн путь ("/usr/bin/perl") по которому должен находиться perl в случае если perl установлен
> Языку Perl исполнилось 23 года. По традиции с 1 по 24 декабря разработчики языка Perl организовали марафон, в рамках которого на страницах блога perl6advent.wordpress.comВранье.
Язык perl 6 несколько месяцев как вылупился из яйца.
23 года другому языку, которому никакого марафона не посвящали.По моим наблюдениям regexp в perl5 хоть и сильно быстрее чем в питоне, и на одном уровне с javascript в Firefox, но медленнее в 10 раз чем Chromium/v8.
Шайтан! Как ты запустил питон и перл в браузерах для сравнения regexp?
я запустил одинаковые непростые регекспы в javascipt'e в браузере и в перле не в браузере занимаясь оптимизациями на прошлой неделе.А перл vs питон я год или два назад сравнивал
> я запустил одинаковые непростые регекспы в javascipt'e в браузере и в перле
> не в браузере занимаясь оптимизациями на прошлой неделе.когда в javascript появится поддержка \w,\W,\s,\S,\d,\D,\b и прочих вкусностей, вот тогда поговорим.
> когда в javascript появится поддержка \w,\W,\s,\S,\d,\D,\b и прочих вкусностей, вот тогда поговорим.Доброе утро! Это есть.
var x="aa Aa bb cc 09 2a";
console.log(x.match(/\b\S\S\s\w\w\s\d\w\b/))
console.log(x.match(/\b\S\S\s\w\w\s\d\D\b/))ответы firefox: "bb cc 09" и "cc 09 2a" вас устроят ? Поговорим ? :)
Спасибо, был неправ. беру свои слова обратно :)Касательно perl тогда - http://www.opennet.me/opennews/art.shtml?num=28625
Не javascript ведь все же на серверную часть ставить. Да и от движка все зависит - вон в хроме быстро, а ишак достоин смерти.
Да и не переносить же вычисления и проверки на клиента - одного такого любителя gwt я полгода назад сломал - мальчик был сильно обижен, что циферки в базе не те, что нужно.
> RE2к перлу еще не прикрутили
> PIRE
по описанию слишком мало чего поддерживает
Pire does not have any Perlish conditional regexps, lookaheads & backtrackings, greedy/nongreedy matches; neither has it any capturing facilities.
и я так понимаю к перлу не прикручен
> Да и не переносить же вычисления и проверки на клиентая именно это недавно и сделал, только результаты регекспов не записываются в базу а только показываются пользователю, кроме того я поддерживаю только Firefox 3.6+ и Chrome.
А любителю gwt возможно нехватало на лету тестировать правильность вычислений браузера, плюс дополнительно проверять на сервере разумность результатов
>> RE2
> к перлу еще не прикрутили
>> PIRE
> и я так понимаю к перлу не прикрученнет в жизни щастья!
>> Да и не переносить же вычисления и проверки на клиента
> я именно это недавно и сделал, только результаты регекспов не записываются в
> базу а только показываются пользователю,Все зависит от специфики приложения.
> кроме того я поддерживаю только Firefox 3.6+ и Chrome.
Я тоже ишака не умею и не люблю готовить :) А safari==chrome, кстати
> А любителю gwt возможно нехватало на лету тестировать правильность вычислений браузера,
на лету тестировать - часто означает дублировать код на серверной стороне. То есть, здравствуй, perl regexp (если на клиенте regexp-ы).
Там "многа букафф", но я очень рекомендую.http://swtch.com/~rsc/regexp/regexp1.html
http://swtch.com/~rsc/regexp/regexp2.html
http://swtch.com/~rsc/regexp/regexp3.html
Спасибо.1) бекреференсы не использовал, а теперь и подавно использовать не буду, простейший тест показал на ~30% медленее
foreach(1..1000000) {
my $x = "aa vdf as1354df a2aa aa a ajrowfg q30f b b bb qwrw cb bb";
$x =~ s/(aa).*?\1/$1x/;
}чем тоже самое с s/(aa).*?aa/$1x/
2) Regexp::Optimizer там упоминается, он работает наоборот с бекреференсом быстрее чем без; причем время тоже самое, но наоборотP.S.
http://blog.chromium.org/2009/02/irregexp-google-chromes-new...
http://code.google.com/p/re2/
> Спасибо.
> 1) бекреференсы не использовал, а теперь и подавно использовать не буду,
> простейшийПроблема не только в том, используются backreferences или нет, а в том,
как реализован обычный match в регекспах.> тест показал на ~30% медленее
На таких грохотных регекспах проблема может быть незаметна.
> 2) Regexp::Optimizer там упоминается, он работает наоборот с бекреференсом быстрее чем
> без; причем время тоже самое, но наоборот
> P.S.
> http://blog.chromium.org/2009/02/irregexp-google-chromes-new...
> http://code.google.com/p/re2/Да, я в курсе.
> По моим наблюдениям regexp в perl5 хоть и сильно быстрее чем в
> питонеучитывая что у них общая библиотека regexp написанная на С, весьма странное заявление.
>и на одном уровне с javascript в Firefox, но медленнее в 10 раз чем Chromium/v8.
про эксперементы с python в браузере я слышал, но чтобы perl...
>> По моим наблюдениям regexp в perl5 хоть и сильно быстрее чем в
>> питоне
> учитывая что у них общая библиотека regexp написанная на С, весьма странное
> заявление.Нет у них никакой общей библиотеки регулярных выражений, не вводите в заблуждение.
>>и на одном уровне с javascript в Firefox, но медленнее в 10 раз чем Chromium/v8.
> про эксперементы с python в браузере я слышал, но чтобы perl...
>>> По моим наблюдениям regexp в perl5 хоть и сильно быстрее чем в
>>> питоне
>> учитывая что у них общая библиотека regexp написанная на С, весьма странное
>> заявление.
> Нет у них никакой общей библиотеки регулярных выражений, не вводите в заблуждение.Я Вас огорчу http://www.pcre.org/
Блажен кто верует :)[lonerr@dev2 ~]% ldd /usr/local/bin/python | grep pcre | wc -l
0
[lonerr@dev2 ~]% ldd /usr/local/bin/perl | grep pcre | wc -l
0Ну это просто для сравнения:
[lonerr@dev2 ~]% ldd /usr/local/sbin/nginx | grep pcre | wc -l
1Регулярные выражения python и perl имеют даже синтаксические отличия, не говоря о внутренней реализации и отличиях в скорости работы.
Вот это реализация regexp python:
http://svn.python.org/view/python/trunk/Modules/_sre.c?revis...Вот это часть реализации perl:
http://perl5.git.perl.org/perl.git/blob_plain/HEAD:/regcomp.cЭто совершенно разный код, pcre это третья реализация, не более того.
Вариант pcre, несмотря на свое название (perl compatible) не имеет отношения к перловой реализации и восходит к exim.
Снимаю перед вами шляпу, вы правы.
Мои поздравления! Perl прекрасный язык, пожелаю ему чтоб он и дальше был и продолжал развиваться.
Параолимпиада
Perl и Python по возможностям ничем не отличаются. Выбрал первый из-за синтаксиса - взгляд цепляется за %, $, @ - очень облегчает восприятие кода. Но все-таки порою не хватает вещи вроде PyQt.
хм... а у меня взгляд цепляется за __ :-)
> Perl и Python по возможностям ничем не отличаются. Выбрал первый из-за синтаксиса
> - взгляд цепляется за %, $, @ - очень облегчает восприятие
> кода. Но все-таки порою не хватает вещи вроде PyQt.По той же причиние причине выбрал Perl, но еще мне понравились ограничители блоков - { }.
Честно говоря, когда выбирал ЯП для себя, начитался фанатских бредней на форумах, про то какой Питон крутой, а Перл отстойный, и уже склонялся к выбору первого, но когда сел сравнить синтаксисы, возможности языков, почитав перед этим несколько вводных статей в Perl и Python, все-таки выбрал Perl.