LXF155:Интервью:
|
|
|
Интервью: Дэмиан Конвей
Спустя пять лет после последнего интервью, Грэм Моррисон вновь зажал в углу «дядьку» и одного из гуру разработки Perl, задав уже риторический вопрос: «Где версия 6?»
Прошло уже пять лет со времени нашей последней встречи с Дэмианом Конвеем — одним из главных гуру языка программирования Perl. Все эти годы Perl находится в состоянии некой трансформации. Долгожданная версия 6 зависла на стадии разработки, а долгожитель Perl 5 уже перенял многие из ее функций и стал еще популярнее. К счастью, Дэмиан готов приподнять завесу над тем, почему, в чем и какие уроки были усвоены за эти годы. Даже если он все равно не скажет, когда же таки выйдет шестой релиз.
LXF: Итак, с нашего последнего разговора прошло пять лет; как вы считаете, что изменилось в Perl? Ваши слова о том, что теперь это интерфейс к CPAN, были для нас новостью.
ДК: Вот это интересно – для меня-то это не новость. Большинство уже давно думают о Perl в таких терминах. Принято считать CPAN языком программирования, а Perl – просто его транслятором. Но, отвечая на ваш вопрос, думаю, более всего за все эти годы меня поражало то, что все шло не по плану – ни с Perl 5, ни с Perl 6, ни с чем.
LXF: Из-за изменчивости языков?
ДК: Нет, полагаю, тут дело не в языках. Они-то как раз в это время были весьма стабильны. Хотя, что любопытно, Perl 5 изменился больше, чем Perl 6.
Чего мы действительно не ожидали, так это столь широкого возрождения Perl 5 – интереса к нему, его развитию, и готовности продолжать работу с ним – чего прежде не наблюдалось. Не знаю, стоит ли считать это следствием предвкушения достижений Perl 6 – хотя многими своими новшествами пятая версия обязана шестой. Многие рассуждали так: «Да, мне нравится эта функция в Perl 6, но ее же легко перенести и в Perl 5».
Множество функций – возможно, две трети из всего того нового, что появилось в Perl 5 за последние 5 лет – были ранее в Perl 6. И речь идет не только об изменениях в структуре самого языка. Это также и развитие отдельных конструкций, сыгравших важную роль в развитии Perl 5. Самое важное, пожалуй, Moose, сделавший, наконец, ОО (объектно-ориентированное программирование) действенной и очень мощной альтернативой Perl 5.
LXF: OO — одна из ваших любимых составляющих Perl 6?
ДК: Точно так. Система ОО в Perl 6 настолько хороша по сравнению с бывшей в Perl 5, что за последнюю было прямо стыдно… если не брать в расчет этот новоявленный Moose, который вобрал в себя почти все лучшие идеи шестой версии и перенес их в пятую.
Это стало поворотным моментом, подстрекнувшим развитие многих других крупных конструкций с широкими возможностями, особенно в среде web-разработки. Их можно перечислять и перечислять – Catalyst, Dancer... наверное, их наберется уже с дюжину, по-настоящему эффективных, надежных, активно набирающих популярность среди пользователей. Это главная перемена.
Некоторое время ходил такой мем, что Perl умирает. Ничего подобного. Последние пять лет Perl был и остается одним из самых интенсивно развивающихся языков, будь то Perl 5 или Perl 6. От абсолютно статичной позиции в стиле «ну, мы будем выпускать основные релизы раз в 5–6 лет» мы пришли к динамичной системе ежегодного обновления. В итоге, вы получаете значительно улучшенную, готовую к работе версию Perl каждые 12 месяцев. И эта динамика позволила нам внести в язык массу новых функций.
Также большое внимание уделено обратной совместимости. Это всегда была сильная сторона Perl, и нам хотелось это сохранить. Мы постарались перенять лучший опыт эволюции без потерь у других языков. В частности, хороший пример подает Python. У нас несколько другой механизм развития, но мы оценили его плюсы и минусы. И мы изменяем культуру Perl, уходя от прежнего «это устоявшийся язык, довольно стабильный и по сей день» к новому «мы можем достичь гораздо большего и можем развиваться гораздо быстрее».
LXF: Такое мало кто проделывал. ДК: Но это тот подход или, по крайней мере, девиз, который явно набирает популярность среди сообществ. Люди осознали, что постоянное развитие вовсе не влечет за собой кучу проблем – вроде сплошной текучести и нестабильности – а дает глоток свежего воздуха.
А кроме того, еще и выигрышно смотрится. Это удачный маркетинговый ход. Создается ощущение жизни, энергии, увлеченности. Наше техническое сообщество в целом уже обрело стремление к новому, лучшему. И по факту, это идет на пользу как сообществу, так и продукту. Большинство людей, особенно в корпоративной среде, боятся перемен, но ничего ужасного в них нет.
LXF: Это не совсем то, чего ожидали от Perl 6 десять лет назад.
ДК: Согласен. Хотя неизвестно, что было на уме у Ларри Уолла [Larry Wall]: никогда не догадаешься, куда заходят его планы, в этом ему нет равных. Но для большинства все выглядело примерно так: «Вот Perl 5, у него есть достоинства и недостатки. Нужно устранить вторые и приумножить первые, и тогда мы получим другой готовый продукт». А сейчас мы и в Perl 5, и в Perl 6 видим, что процесс развития стал более органичным: признано, что любой продукт, сообщество или организм либо эволюционирует и развивается, либо отмирает.
LXF: Но не значит ли продление жизни Perl 5 оттока сил от продвижения в пользовательской среде Perl 6?
ДК: Я считаю это серьезной проблемой, требующей решения. Perl 6 еще предстоит найти свое место и свою аудиторию. Об этом я говорил в своем выступлении на OSCON-2011. Я пытался довести такую мысль: «OK, Perl 5 – это круто, и будет еще круче, ведь мы устраняем реальные проблемы в языке и улучшаем его. Но Perl 6 – это принципиально иной уровень».
LXF: Программистами на Perl — рождаются?
ДК: Не думаю. Мне кажется, в Perl либо обращают, либо становятся сами. Это все равно что спросить: как вы заставляете людей всегда писать работающий и поддерживаемый код Java? Вам ответят: «Да никак». А поискав ответ в реальной ситуации, на реальном Java, вы зачастую увидите самый ужасный код; самые безумные решения никак не влияют на стабильность языка.
Мы нечасто говорим, что 90 % всего написанного на Java жутко неэффективно. Но зато охотно спишем Perl со счетов за то, что слишком мало программистов грамотно на нем пишут? Это действительно так, но причина в том, что грамотных программистов вообще мало, причем в любом языке.
Такую репутацию Perl заработал, когда был еще новым и «модным» и когда у него было больше энтузиастов, чем знатоков. Вот к нему и прилип ярлык языка «для шабашников».