The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

5 возможностей, в которых нуждается Perl 5. 18 декабря Perl5 исполнится 14 лет

14.12.2008 20:24

"Five Features Perl 5 Needs Now" - лидер проекта Parrot представил заметку с анализом 5 возможностей, в которых нуждается Perl 5:

  • Регулярный выпуск релизов;
  • Улучшение возможностей в сфере объектно-ориентированного программирования (в качестве примеров приводятся модули Moose, Mouse, autobox);
  • Метод разработки расширений на языке Си в стиле Python ctype. Текущая система XS излишне усложнена. В качестве прототипа возможного решения приводится модуль P5NCI, позволяющий импортировать функции из любых разделяемых библиотек;
  • Улучшение интеграции с CPAN, особенно в плане возможности установки модулей для индивидуального использования в ограниченных окружениях ( например, без make/gcc или заголовочных файлов Perl в системе);
  • Упрощенный универсальный модуль со встроенным Perl для apache, по возможностям похожий на mod_php. mod_perl больше ориентирован для специализированных проектов, а не для массового хостинга. В качестве примера приводится модуль mod_perlite, суть которого лишь во встраивании Perl интерпретатора в apache, не более.


  1. Главная ссылка к новости (http://broadcast.oreilly.com/2...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/19386-perl
Ключевые слова: perl
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (16) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 20:56, 14/12/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну просто смешно.

    Почему C-расширения перла такие корявые? Да потому, что в перле жутко коряво сделана работа с памятью! Python так просто и красиво расширяется только потому, что он изначально хорошо сдизайнен и в нём нет никакой мартализации и прочих перловых изврещений. И перл не может отказаться от изврещений потому, что в нём есть дофига мехнизмов, которых нет в нормальных языках (на пример, чувствительность к контексту). Чтобы перлу стать нормальным языком, ему надо перестать быть перлом, а стать питоном :-)

    Далее, ну смешно говорить о mod_perl и mod_perlite или ещё о чём-то (как ни называй), пока перл не научится возвращать системе неиспользованную память (я уж молчу о том, что найтив алокатор памяти ещё и подтекает, под линуксом это кое-как залатали, а под той же фрёй всё так и осталось). MaxRequestsPerChild, конечно позволяет на сколько-то решить эту проблему, но это же не дело для массового хостера...

     
     
  • 2.2, w (?), 04:16, 15/12/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Почему C-расширения перла такие корявые? Да потому, что в перле жутко коряво
    >сделана работа с памятью! Python так просто и красиво расширяется только
    >потому, что он изначально хорошо сдизайнен и в нём нет никакой
    >мартализации и прочих перловых изврещений. И перл не может отказаться от
    >изврещений потому, что в нём есть дофига мехнизмов, которых нет в
    >нормальных языках (на пример, чувствительность к контексту). Чтобы перлу стать нормальным
    >языком, ему надо перестать быть перлом, а стать питоном :-)

    По-вашему, нормальным является язык с бейсикоподобным синтаксисом, forced indentation и тормозными регулярными выражениями, реализованными в виде библиотеки. Все, что выходит за эти рамки, вроде контекстов, объявляется извращениями. Функциональные языки, вроде Haskell или Lisp, тоже должны быть похожими на Python? Так пользуйтесь всегда только Python, и будьте счастливы, никто же не запрещает.

    >
    >Далее, ну смешно говорить о mod_perl и mod_perlite или ещё о чём-то
    >(как ни называй), пока перл не научится возвращать системе неиспользованную память
    >(я уж молчу о том, что найтив алокатор памяти ещё и
    >подтекает, под линуксом это кое-как залатали, а под той же фрёй
    >всё так и осталось). MaxRequestsPerChild, конечно позволяет на сколько-то решить эту
    >проблему, но это же не дело для массового хостера...

    Простой сборщик мусора (счетчик ссылок) там всегда был, для нормально написанных программ его достаточно.

     
     
  • 3.4, Аноним (4), 10:44, 15/12/2008 [^] [^^] [^^^] [ответить]  
  • +/
    gt оверквотинг удален В хаскель и лисп совсем другой подход к контесту Почита... большой текст свёрнут, показать
     
     
  • 4.5, SHRDLU (ok), 11:58, 15/12/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >1) Сборщик мусора в Perl не возвращает память в систему. Никогда.

    Не курите больше эту траву. Куда ж он эту память тогда девает-то, потрудитесь объяснить... Продает налево, что ли?

     
     
  • 5.6, Stanislauz (?), 12:29, 15/12/2008 [^] [^^] [^^^] [ответить]  
  • +/
    К сожалению, есть такой грешок за Perl... Это можно заметить в mod_perl приложениях и процедурах, написанных на PLPERL... Память утекает нещадно, как бы тщательно код не был вылизан. Память "освобождается" его системой подсчета ссылок для использования самим Перлом, но в систему не возвращается...

    Если кто знает, как это обойти, жду совета....

     
     
  • 6.10, SHRDLU (ok), 16:39, 15/12/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >К сожалению, есть такой грешок за Perl... Это можно заметить в mod_perl

    Это грехи mod_perl (и, вероятно, PLPERL), но не самого perl

     
  • 6.16, Stanislauz (?), 17:14, 17/12/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Собсно, сам немного поковырялся и нашел все ответы.

    1. perldoc -q "program shrinks" видимо устарел. Написал тестовую программку, которая успешно освобождала память.

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

    http://www.opennet.me/base/dev/perl_memory_leak.txt.html
    http://www.opennet.me/base/dev/perl_memory.txt.html

    3. Хотя, хотелось бы видеть в Perl более продвинутые интерфейсы очистки, подобные gc в Python.

     
  • 5.8, Аноним (4), 15:32, 15/12/2008 [^] [^^] [^^^] [ответить]  
  • +/
    я вам советую почитать документацию на перл
    perldoc -q "program shrinks"
    и впредь, умеренней демонстрировать своё невежество :-)
     
     
  • 6.9, SHRDLU (ok), 16:36, 15/12/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >и впредь, умеренней демонстрировать своё невежество :-)

    Улыбнуло :) Особенно после ваших пассажей о красоте Python'а.
    Не надо переносить недостатки отдельных модулей на всю систему, конкретно - не путайте mod_perl и собственно perl.

     
     
  • 7.11, Аноним (4), 19:36, 15/12/2008 [^] [^^] [^^^] [ответить]  
  • +/
    perldoc не имеет никакого отношения к mod_perl
     
     
  • 8.12, SHRDLU (ok), 20:45, 15/12/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Равно как mod_perl не имеет никакаго отношения к Five Features Perl 5 Needs N... текст свёрнут, показать
     
     
  • 9.13, Andrew Kolchoogin (?), 02:17, 16/12/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Претензии он адресовал совершенно правильно Это ужасная кривость Перловки, кото... текст свёрнут, показать
     
     
  • 10.14, w (?), 05:37, 17/12/2008 [^] [^^] [^^^] [ответить]  
  • +/
    gt оверквотинг удален Ты хоть сам читал то, что ты цитируешь Выделение освобо... текст свёрнут, показать
     
  • 2.3, SHRDLU (ok), 07:43, 15/12/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Ну просто смешно.

    Действительно, смешно...

    >Почему C-расширения перла такие корявые? Да потому, что в перле жутко коряво

    Значит, пишем - еще один Ононим "ниасилил" Perl...

     
     
  • 3.7, WinLin (??), 14:04, 15/12/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Значит, пишем - еще один Ононим "ниасилил" Perl...

    Apache 2.2.8/mod_perl 2.0.3
    Запущено на разных портах (8100, 8102) два приложения.
    Используется template::toolkit.
    При обращении к одному из приложений в логах валились ошибки:
    - не найдена переменная XXX, которая упоминается в другом приложении;
    - вызовы функций почему-то вызывались из другого приложения;
    - нормально работало только одно приложение, к которому было первое
    обращение клиента.

    Путем научного изыскания нашел, что нужны такие настройки:
    PerlOptions +Clone
    PerlInterpStart 2
    PerlInterpMax 2

    Подскажите, что это может быть.
    Что делать, если будет 3 и более приложений.

     
     
  • 4.15, w (?), 05:52, 17/12/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >[оверквотинг удален]
    >- нормально работало только одно приложение, к которому было первое
    >обращение клиента.
    >
    >Путем научного изыскания нашел, что нужны такие настройки:
    >PerlOptions +Clone
    >PerlInterpStart 2
    >PerlInterpMax 2
    >
    >Подскажите, что это может быть.
    >Что делать, если будет 3 и более приложений.

    Увеличить число PerlInterpMax до максимально возможного числа одновременных HTTP-сессий. См. это число в настройках Апача.

     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру