извлечения и отчетов", или pathologically eclectic rubbish lister, то есть "патологически эклектичный сборник хлама"), он превратился в один из самых популярных языков в Internet. С 18 августа компания O'Reilly & Associates, в которой сейчас работает Уолл, проводила первую ежегодную конференцию по языку Perl и в течение недели доказывала, что этот язык вполне достоин быть единственной темой такого солидного мероприятия. Публикуемое ниже эксклюзивное интервью было взято Робертом МакМилланом, редактором журнала SunWorld, у Уолла и его босса, исполнительного директора O'Reilly & Associates Тима О'Рейли, накануне этого знаменательного события. В разговоре коллеги обсудили нынешнее положение, определили состояние Perl и стратегию компании по защите Perl от тех ловушек, жертвой которых становится другой популярный язык Internet: Java.

Считаете ли вы, что компьютерный мир действительно до конца понимает Perl? Иногда его воспринимают как некий простой и непритязательный язык. Справедлива ли такая оценка?

Ларри Уолл (ЛУ): Пожалуй... Да.

Тим О'Рейли (ТР): Я бы охарактеризовал Perl как "Intel информационной революции". Знаете, на многих информационных узлах Web можно поставить штамп "Perl inside", подобно тому, как все ПК имеют штамп "Intel inside". И я думаю, это не случайно. Мне кажется, так происходит потому, что Perl действительно необходим тем продуктам, которые создаются на данном этапе компьютерной революции. Это сложные информационные системы; в них, как правило, есть текст - а Perl очень хорошо подходит для работы с текстами; эти продукты обычно собирают в единое целое непрограммисты, а Perl, несмотря на свои богатые возможности, очень удобен для начинающих.

На сегодняшний день у вас функционирует версия 5.004. Планируется ли шестая версия Perl?

ЛУ: Думаю, Perl по аналогии с Unix можно остановить на системе номер пять. Есть версия 5.005, над которой работает наш друг Малькольм Бэтти. В ней будет поддержка многопоточности и внутренний интерфейс компилятора, который очень легко расширять.

Имеются ли сегодня какие-либо серьезные технические проблемы?

ЛУ: Технические проблемы существует всегда. Говоря о Perl, неважно, о какой версии идет речь, вы имеете в виду прежде всего то, что воспринимается как ядро Perl. В этом смысле - да, язык во многом стабилизируется. Но если брать язык Perl в целом, то здесь мы буквально сидим на вулкане. И я считаю, что это естественно. Одна из причин такого взрывного развития Perl как раз в том, что мы стабилизируем его ядро.

Нечто подобное произошло когда-то и с Unix. В настоящее время ядро Unix не подвергается значительным изменениям. То, что сегодня подразумевается под Unix, достаточно стабильно.

ТР: Возможно, сравнение с Unix не совсем удачно. Может, лучше сравнивать с С, например? Какая у нас сейчас версия С?

ЛУ: Да, подобно этому языку Perl выступает как стабильная платформа. Но в структуру Perl 5 включен механизм расширения, так что, фактически, мы смогли децентрализовать дальнейшее развитие языка. И сделали это умышленно. Многие сильные качества Perl-культуры зиждутся на идеях децентрализации. Общественное мнение - это страшная сила. А я, как разработчик языка, не хочу нести ответственность за те или иные решения. Я верю в федеральное правительство, но все решения, которые могут быть реализованы на локальном уровне, должны приниматься на местах.

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

Каков механизм децентрализации развития Perl?

ЛУ: Большая часть работы над Perl на данном этапе строится с учетом мнений от большой группы людей, которых мы называем "проводники Perl 5". Они стали присылать свои рекомендации, когда начался перенос Perl на другие платформы. Около 200 человек активно участвуют в расширении возможностей Perl.

ТР: Вы затронули действительно интересную тему. Здесь централизованному подходу противопоставляется модель разработки через сотрудничество. Совместная разработка свободного программного обеспечения действительно имеет ряд преимуществ, которым, на мой взгляд, не уделяется достаточного внимания. Возьмите последние 10-15 лет компьютерной истории и посмотрите, какие из действительно, подчеркиваю, действительно значительных разработок составили универсальную основу для других проектов? И вы увидите С, например. Конечно, нельзя сказать, что он в точности соответствует характеристикам свободного ПО, но этот язык разрабатывался в академической среде и не рассматривался как коммерческий продукт. Unix в значительной степени является плодом совместных усилий многих разработчиков. Теоретически являясь собственностью AT&Т, реально эта операционная система разрабатывалась сотнями, может быть даже тысячами разбросанных по разным организациям программистов. А Internet? Это же несомненный продукт совместного творчества. Ни одна из этих систем не создавалась какой-то одной компанией. Большинство действительно серьезных систем, которые занимают сейчас ведущие позиции, возникли как результат объединения совместных усилий многих разработчиков.

Кому принадлежит торговая марка Perl?

ЛУ: Торговой марки Perl нет.

Но есть хотя бы общественное признание?

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

Сегодня это актуально для другого языка.

ТР: Совершенно верно.

Повлиял ли Java на развитие Perl?

ЛУ: Наверное, не секрет, что Perl свободно заимствовал идеи из других языков, а Java почерпнул хорошие идеи из Perl. В данный момент я работаю над гибридным языком Java/Perl, как раз для того, чтобы посмотреть, как они могут сосуществовать друг с другом.

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

Войдут ли в конце концов эти возможности в Perl?

ЛУ: Смотря что вы понимаете под Perl. Они без сомнения станут частью общей Perl-культуры. Войдут они в состав стандартного дистрибутива Perl или нет, зависит от многих факторов.

Каким образом идеи Java появились в Perl?

ЛУ: Надо отметить, что Java имеет очень жесткую структуру классов. А классы Perl задаются довольно расплывчато. Java можно классифицировать как универсальный ассемблер Сети, и в этом его сила. Я рассматриваю это как своего рода "экологическую нишу", которую могут заполнить языки более высокого уровня - Java на самом деле к таковым я не отношу. А вот Perl, мне кажется, может стать одним из таких языков.

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

Разрабатывает ли O'Reilly что-нибудь новое для Perl?

ТР: Частично мы решаем проблемы коммерциализации Perl. Ларри пришел работать в O'Reilly полтора года назад, отчасти в надежде найти подходящий способ коммерциализации открытого программного обеспечения. Можно, например, сказать: "О, Perl - такой классный продукт, давайте привлечем капитал и попытаемся создать компанию по разработке языка Perl".

Но, как показывает опыт Borland, строить компании вокруг языка сложно. И мы стали рассуждать: "Perl - это свободное ПО. Мы хотим, чтобы он таковым и оставался. Существует ли способ его коммерциализации?" Для нас это довольно интересная задача, и наш издательский опыт дает нам некоторые основания надеяться на успех.

Продукт, которому мы сейчас уделяем максимум внимания, это семейство комплектов ресурсов Perl, аналогичных комплектам ресурсов Windows NT, выпущенных Microsoft. Мы намерены создать набор платных дополнительных элементов: утилит, дополнительной документации и всяких других вещей, которые позволят вам гораздо эффективнее применять то, что у вас уже есть.

Вместо того чтобы утверждать: это авторизованный Perl. Извините, но на использование данного ПО есть определенные ограничения,- мы говорим: нет, свободный продукт - это вполне полноценный продукт, но с помощью этих комплектов ресурсов мы предоставим вам дополнительные возможности за дополнительную плату.

Такова наша стратегия, с помощью которой мы надеемся нынешней осенью выпустить первый комплект ресурсов Perl.

Можете ли Вы что-нибудь посоветовать разработчикам из JavaSoft?

ТР: Я знаю, что когда Эрик (Эрик Шмидт, прежний директор Sun Microsystems по технологиям - Прим. ред.) начал сотрудничать с Microsoft, с тем чтобы официально перенести Java на Windows-платформы, многие подумали: "О боже, это опасное, чрезвычайно опасное дело". И оказались правы. Желание Sun сохранить кросс-платформенность Java и планы Microsoft по привязке этого языка к Windows противоречат друг другу. Sun - прежде всего компания по производству аппаратного обеспечения, и она должна обладать достаточным запасом прочности, чтобы держаться в этой игре наравне с Microsoft. Интересно посмотреть, чем все закончится; будет у нас Sun Java, Microsoft Java или конкурирующие языки Java.

ЛУ: Я, как разработчик языка, тоже считаю: нельзя допустить появления сильно расходящихся реализаций. Надо делать все, чтобы этого не произошло.

ТР: В мире Perl это началось, когда здесь объявилась Microsoft и поручила портировать Perl для Win32. Отчасти это произошло из-за особенностей реализации, но в основном, как мне кажется, из-за полного отсутствия нормальной координации. Есть определенное расхождение в реализациях для двух разных платформ, и сейчас мы предпринимаем ряд действий, чтобы снова привести их к общему знаменателю. Эта одна из тем, которые были вынесены на обсуждение конференции. В конечном итоге, у нас будет единая реализация Perl и для Win32 , и для Unix.

Какие шаги вы предпринимаете?

ТР: Мы очень тесно сотрудничаем с ActiveWare, группой людей, разработавших исходную реализацию Win32, и привлекаем их к совместной работе с сообществом свободного ПО Perl, для того чтобы свести вместе две реализации.

Когда, по Вашему мнению, это произойдет?

ЛУ: Это должно осуществиться в версии 5.005.

А когда ожидается ее выпуск?

ЛУ: В зависимости от того, какое определение 5.005 вы имеете в виду. Но в любом случае в течение этого года.

Расскажите о конференции Perl.

ТР: Мы организовали встречу, на которую пригласили группу людей, которых, как мы знаем, интересует будущее Perl. Собралось около двадцати человек. И там мы решили, что нам действительно стоит провести конференцию.

Несколько недель спустя, Ларри проводил встречу в Computer Literacy Bookshop, и один из ее участников спросил: "Я побывал в JavaOne. Не понимаю, почему до сих пор нет PerlOne?" Люди уже начинают понимать, что пользователей Perl много. Но почему этого не видно? Еще один важный вопрос, ответ на который мы ищем. Мы располагаем языком, который очень широко используется в Internet, но поскольку за ним не стоят большие деньги (на фондовом рынке им никто не интересуется), у Perl нет хорошей прессы. По-моему, это несправедливо, поэтому мы вознамерились повысить авторитет Perl. К нам съедутся около 1000 гостей. Это будет не торговое шоу только конференция и учебная программа.

Не боится ли Perl стать жертвой собственных достижений?

ТР: Я не исключаю, что в случае успеха Perl может явиться Microsoft и сказать: "Мы сделаем Microsoft Perl, который будет несколько иным. Попробуйте наш вариант". И начнет ту игру, которую она ведет с Java. Но пока ничего подобного замечено не было. Microsoft всегда действует предусмотрительно. Но вряд ли такое случится.

ЛУ: Совсем недавно Perl находился у подножья вершины. В данный момент мы дошли где-то до середины пути. Надеюсь, нам удастся в конце концов покорить вершину.

ТР: Совершенно очевидно, что если растет популярность системы, то обязательно появляются люди, готорвые на этом нагреть руки, и начинаются коллизии. Например, две компании, заявляют, что у обеих есть нечто под названием PerlScript, но это совсем не одно и то же.

ЛУ: Фактически, подобную раздробленность мы наблюдаем на рынке Linux. Я же пошел несколько иным путем, чем Линус Торвальд (создатель Linux - Прим. ред.). Он начал работать на производителя микропроцессоров, так как хочет полностью отгородиться от всяких коллизий. Я же считаю, что развитие должно идти как в коммерческой области, так и по линии свободного программного обеспечения. Поэтому хочу находиться в непосредственной близости от этого процесса, чтобы иметь возможность поддерживать одни его аспекты и не поддерживать другие.

Это главная причина моего прихода в O'Reilly год назад. Я хотел стать непосредственным участником проекта и в определенной мере способствовать тому, чтобы коммерческие аспекты держались под контролем. В целом, до сих пор мне это, кажется, вполне удавалось.

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

Оглядываясь на без малого десятилетнее развитие Perl, не хочется ли Вам подкорректировать те или иные события в его истории?

ЛУ: Это трудный вопрос. Я настолько верю в эволюционный характер развития Perl, что мне трудно даже усомниться в правомерности каких-то прошлых решений.

Конечно, кое-что я сделал бы по-другому. Если взять перечень модернизаций для Perl 5, то тут есть вещи, которые позднее я вынужден был признать ошибочными. Раньше Perl мог выполнять множество магических действий на расстоянии. Знаете, эдакие волшебные переменные, которые влияют на поведение всей программы. Значительная часть подобных вещей утрачена в Perl 5. Это, возможно, самая большая потеря.

Если говорить о синтаксисе языка, то здесь мне почти не в чем раскаиваться.

ТР: Но это как раз один из моментов, которые вызывают нарекания.

ЛУ: Да, но несмотря на первое впечатление, я разрабатывал синтаксис, больше похожий на естественный язык. С одной стороны, я лингвист, а с другой - компьютерщик, и с точки зрения лингвиста я чист: зачем извиняться за то, что, по моему мнению, удобно для человека.

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


Разработчики Web-узлов предпочитают Perl

Таблица показывает распределение предпочтений более чем 2500 разработчиков для WWW по языку программирования CGI-скриптов

Perl38,7%
Apple Script14,4%
C++8,7%
C8,6%
Visuar Basic7,6%
Java7,1%
Другие18,9%