Возможности версии 6 становятся все шире

Канули в Лету времена, когда Perl считался чем-то вроде колдовских заклинаний Web-мастеров, - сегодня этот язык используется в самых разных целях и постоянно совершенствуется. Последняя его версия 6 основана на серьезно переработанной технологии, которая, по уверению создателей языка, сохраняет высокую производительность предшественниц при решении простых задач и вместе с тем полностью соответствует формальной спецификации. В результате, как ожидается, Perl будет лучше подходить для разработки сложных приложений и даже систем непрерывного действия. Кроме того, он может стать привлекательным инструментом для нового поколения программистов, выросших "на диете" объектных языков в многопотоковых средах.

Необходимость коренных изменений откровенно изложена на Web-сайте Perl 6 (dev.perl.org/perl6). "Структура интерпретатора версии 5 была слишком запутанной, что мешало техническому совершенствованию, не позволяло реализовывать новые функции, отпугивало потенциальных разработчиков", - говорится в опубликованном там заявлении. Что же касается Perl 6, то очередная версия сможет распознавать и выполнять коды Perl 5, вместе с тем она намного расширит возможности программистов, которые найдут здесь целый ряд новшеств, включая удобные функции ввода данных, поддержку метаданных и существенное обновление присущей этому языку способности сопоставления с образцом.

Природа и задачи языка остались прежними, но произошло то, о чем предупреждал лидер сообщества Perl Ларри Уолл. Еще в конце 2004 г. он заявил: "Наш подход к Perl 6 заключается в том, чтобы сразу сломать все, от чего рано или поздно придется отказываться". Промежуточные версии этого языка должны появиться уже в нынешнем году, а его заключительный вариант ожидается примерно весной следующего года. Так что разработчикам пора знакомиться с тем, что нового он принесет и во что обойдется.

Резкого перехода на новую версию, впрочем, не потребуется, так как Perl 5 в ближайшее время никуда не денется. Его последняя версия Perl 5.8 продолжает активно использоваться и имеет широкую поддержку. Так, в середине 2005 г. издательство O’Reilly Media в четвертый раз переиздало книгу "Изучаем Perl" Рэндэла Шварца, Тома Феникса и Брайана Фоя (Schwartz R., Phoenix T., Foy B. "Learning Perl").

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

Жемчужный блеск Perl

Участникам конференции разработчиков на Perl, которая состоялась в начале текущего года, было предложено написать программку для выбора выигрышных лотерейных билетов. Присутствовавший там создатель этого языка Дамиан Конуэй, по его собственным словам, сделал это за час. Вот как выглядела его утилита:

use List:: Util ‘shuffle’;

print and readline STDIN

foreach shuffle

12001..13000,

14001..15000,

40001..41000,

67001..68000,

96001..97000;

"Perl полностью отвечает своему девизу: делать простое еще проще, а сложное - доступным", - сказал Конуэй.

Один из активных разработчиков Perl 6 - Дамиан Конуэй, директор австралийской учебно-консультационной компании Thoughstream и адъюнкт-профессор мельбурнского университета Monash. В переписке с eWeek Labs он высказал мысль, что важным движителем развития этого языка служат структурные изменения базы его пользователей. "Первоначально Perl, похоже, создавался в расчете на системных администраторов, разработчиков инструментария, системных программистов и администраторов баз данных, - считает он. - Это хорошо видно хотя бы по набору используемых здесь команд. Не много найдется других языков, где было бы столько примитивов для управления гнездами, доступа к базам данных, обработки сигналов и сетевой работы".

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

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

Подобная гибкость хороша, когда Perl используется для решения текущих задач, но для более масштабных и долговременных проектов она требует четкой командной дисциплины. "Написать оператор выбора на Perl можно не меньше, чем двумя десятками способов, - продолжает Дамиан Конуэй. - Но использовать сразу несколько из них в одном и том же фрагменте было бы неразумно. Это ведет к путанице и намного затрудняет сопровождение программы".

Сделать Perl более полезным для будущего и при этом не потерять его нынешних сторонников - на это нацелена сегодня работа сообщества, которую трудно загнать в строгие рамки. Но при всем этом она обещает уже в ближайшее время открыть перед программистами новые увлекательные возможности.