Лидер проекта Parrot представил заметку с анализом 5 возможностей, в которых нуждается Perl 5.
Оригинал:
broadcast.oreilly.com/2008/12/five-features-perl-5-needs-now.html
Языку программирования Perl 5 уже исполнилось 14 лет. Несмотря на то, что язык претерпел много изменений с 1994, он не может остановиться в развитии. Perl 5.10 добавил много нового, и Perl 6 сильно изменит язык программирования, но каково видение Perl 5? Как язык может остаться востребованным?
Можно предположить, что лучший способ это сделать — добавить возможности, которые избавят разработку от скуки, разочарований и возможных ошибок.Также сделать программы проще, быстрее, производительне, и более интересными при написании.
В Perl 5 следует добавить:
Регулярные релизы.
Parrot собирается выпустить свой 24-й stable месячный релиз. Если только одно решение изменило судьбу этого проекта, то это то что надо. Ежемесячная релизы позволили найти нужный ритм развития, демонстрируют о том, что мы можем выполнить обязательства, а также осуждение, которое позволило исправлять неизбежные ошибки дизайна. Трехмесячный цикл для выпуска следующей версии Perl 5 может быть труднодостижим (нужно упростить процесс выхода релиза), поэтому нужно избавится от неопределенностей и беспорядка, сдерживать развитие функционала, поскольку следующие релизы обеспечат и стабильность и надежность.
Perl 5 система объектов, заимствованная Питоном, достаточно гибка, но является не удобной в использовании. Moose и Mouse улучшают использование ситемы объектов для Perl 5, и это перевешивает, если нужна большая мощность. Если включить эти модули в ядро, то все используя 5.12 будут извлекать выгоду, а также это смягчит переход на объектную модель Perl 6, для тех кто собирается это делать. Точно также autobox добававляет одну из излюбленных вещей Ruby – возможность вызывать методы для примитивов как если бы они являлись объектами. Такое использование может сильно упростить код.
ctypes.
Система расширений Perl является очень сложной. Для того чтобы писать расширения для Perl необходимо иметь много знаний о том как устроен Perl внутри, о том, какие значения возвращает и принимает shared библиотека. Мой
P5NCI является попыткой упростить использование, но у меня не было ни времени, ни сил чтобы работать над такой системой. Библиотека Питона ctype умнее, имеет более разумный подход, чем заставлять людей писать и компилировать C код только для того чтобы совпадали правила вызова Perl 5 и C. Здесь есть пространство для улучшения ctypes API, но концепция непременно нужна perl 5.
Улучшение CPAN интеграции.
Это звучит странно, но CPAN представляет собой целую последовательность установок. Для примера, чтобы установить модуль с CPAN, сперва необходимо ответить на несколько вопросов для конфигурирования CPAN клиента. Потом скачается пакет, который запустит небольшую программу, которая сгенерирует Makefile, который выполнит настройку, соберется, протестирует а затем проинсталирует модуль, если всё корректно.
Так же я хотел упомянуть о том, что если Вы автор, то вы должны написать программу, которая сгенерирует Makefile.
Если у Вас нету доступа к серверу, или Вы не имеете доступа к C компилятору, или Вы не имеете доступа к сети, то у Вас скорее всего будут проблемы при установке расширения.
Я не говорю о том, что процесс не работает, но я думаю, что разные манеры и разный опыт делают процесс не таким простым, каким он должен быть во многих случаях. Если CPAN это звезда которая очень важна при использования Perl 5, то почему бы не сделать возможным более простое использование простых вещей, но при этом не препятствовать более сложным но менее необходимым.
mod_perlite.
mod_perlite, эквивалент mod_php, но для Perl.mod_perl – это замечательная технология, но она требует более детального администрирования, и поэтому редко применима на web серверах. Perl 5 в сети может иметь преимущество над системами, которые позволяют дешёвым хостинг-провайдерам говорить «Просто закачайте несколько файлов в эту директорию, и всё будет работать автоматически» без беспокойства за других пользователей в плане дискового пространства (или пространства имён, или памяти, или...). Для более серьезных разработок можно использовать mod_perl, но новички, и остальная часть, кто не обрабатывает больше хита в секунду в пиковое время, должны иметь что-то более легкое и менее требовательное к ресурсам чем CGI.
Perl 5 разработчики (perl 5 porters list) иногда обсуждают много новых хороших особенностей. Недавние дебаты рассмотрели 5.12. Особенности перечисленные сдесь, за исключением Moose, Mouse и autobox, не получили должного внимания. Понятно, что вопросы связанные с CPAN и mod_perlite могут оказаться вне поле зрения основных разработчиков, но рассматривать мир Perl 5 следует целиком, а не как состаящий из отдельных кусков.