- Подписка на печатную версию:
- Подписка на электронную версию:
- Подшивки старых номеров журнала (печатные версии)
LXF86:Интервью
Материал из Linuxformat.
- Нат Торкингтон LXF Интервью
Толкование Торка
- Linux Format имеет эксклюзивную возможность объяснить, почему так задержался Perl 6: член совета директоров Perl Foundation Нат Торкингтон слишком занят… решением арифметических головоломок.
Когда Ной собирал всякой твари по паре, чтобы спасти от всемирного потопа, на его стороне был Бог. Когда Крысолов уводил из Гаммельна детей, у него имелись дудочка и волшебная мелодия. А вот Нат Торкингтон собирает компьютерных фанатов со всего мира на конференцию OSCon, имея только web-сайт, электронную почту и немного денег от Тима О’Рейли – а задача-то ничуть не проще. Когда Грэм Моррисон встретился с председателем программного комитета OSCon, он сперва решил поговорить с Торкингтоном о другой его колоссальной задаче: Perl.
Linux Format: Хватает ли вам времени на программирование?
Нат Торкингтон: Последнее время не хватало. Я был очень, очень занят работой [редактора] у O’Reilly, но в этом году стал уделять все больше и больше времени прошлым занятиям. Так что я освоил Ruby, и мне это нравится. Я работаю над головоломками конкурсов для программистов и снова балуюсь с кодом.
LXF: В девяностых вы учились и преподавали в Университете Виктория в Веллингтоне, Новая Зеландия. Так и произошло ваше знакомство с Perl?
НТ: Ну, типичная необходимость любого университета – виртуальный список для поиска имен. В то время единственный способ реализовать это был через web-сервер на Perl под названием Plexus. И мне пришлось выучить Perl, чтобы работать с ним. Я изучал Perl, начиная с Programming Perl, самой первой книжечки, с розовым верблюдом, и это было здорово. Я учил С по книге Кернигана и Ричи [Kernighan & Ritchie, C Programming Language], так это было гораздо проще, чем С. [Смеется.] Много, много проще, чем С.
LXF: Вы считаете, что PHP украл часть славы Perl?
НТ: Естественно. Этот язык занимался предоставлением легкого способа создания динамических web-страниц, и те, кто раньше обращались к Perl из-за динамических web-страниц, теперь обращаются к PHP. Но это нормально. Я не думаю, что эти языки до сих пор соперничают.
На вершине пищевой цепочки создатели этих языков, такие, как Гвидо [Guido van Rossum] из Python, Расмус [Rasmus Lerdorf] из PHP, Ларри [Larry Wall] из Perl, они все уважают друг друга, общаются, им нравится то, чем занимаются другие. Иногда конкуренция возникает среди пользователей, может возникнуть среди программистов, но даже это происходит все реже и реже.
LXF: Вам не кажется, что это благодаря свойствам мира Open Source?
НТ: Вы о конкуренции или о ее уменьшении?
LXF: Я об уважении и открытости. Например, вы изучаете Ruby.
НТ: Я думаю, что это характерно для мира технологии. Ребята из AT&T Bell Labs, которые изобрели Unix и C и еще многие технологии, сейчас уже воспринимаемые как нечто само собой разумеющееся, они точно так же открыты для умных людей и для умных систем, созданных IBM, или Линусом Торвальдсом, или кем-то еще. Если это – умная разработка, если она чего-то стоит, то ее уважают.
LXF: Долго ли еще ждать выхода Perl 6?
НТ: Помнится, была такая шутка, что это произойдет под Рождество. Просто мы пока не знаем, под какое именно Рождество.
LXF: Думаю, вас об этом спрашивают каждый раз при разговоре о Perl.
НТ: Точно. Могу сказать, что релиз будет готов тогда, когда он будет готов. А если я назову вам дату, то получится, что я соврал. Произойдет это раньше, или позже – в любом случае я не буду в выигрыше.
LXF: А вообще-то нужно, чтобы был релиз?
НТ: А, значит, вы считаете, что это такой идеал вдохновения – даже если мы никогда не сделаем релиза Perl 6, все равно у нас будут продолжать работать над ним.
LXF: Но он вроде неплохо работает и такой как есть – книг по нему хватает.
НТ: Ну, поиграть с Perl 6 можно уже сейчас. Можно побаловаться с системой Pugs, это интерпретатор Perl 6 на основе Haskell. Система интересная; Ларри пользуется ею как основной платформой для работы над остальной частью языка. Когда Одри [Audrey Tang] создала Pugs, Ларри мог сказать: «Все это уже сидело у меня в голове, давайте-ка напишем несколько тестов». А потом он начал осознавать: «Ого, в реальной жизни все сложнее, как бы это упростить?». А когда все это материализовалось и было проверено экспериментально, начал вырисовываться дизайн. Сейчас мы находимся в той стадии, когда некоторые портируют различные функции Perl 6 назад в Perl 5, и это по новой заставило сообщество разработки Perl 5 впрячься в работу.
LXF: Должен сказать, я ничего не знаю о Haskell. Почему выбрали его?
НТ: Я ничего не знаю о том, почему был выбран Haskell, вам, наверное, надо поговорить с Одри, но мне известно, что для данной задачи он подошел отлично. Вчера вечером я разговаривал с Одри и Максом [Max Maischein, программист Perl], и она сказала – все так здорово, что она будет пользоваться этим и для любых проектов в будущем.
LXF: Выглядит заманчиво, мне нравится эта идея.
НТ: Это похоже на Perl 6. Perl 5 был интересен, потому что перенес технологию из академической сферы в повседневную жизнь, сделал ее доступной для всех, и многие впервые столкнулись, например, с замыканиями в Perl. У Python ушло много времени на создание замкнутых выражений, которые были истинными замкнутыми выражениями. Программисты Perl могли работать с ними и изучать этот аспект программирования. Если вы программируете на Lisp, это ваш хлеб с маслом, вы выросли на всем этом. Но если вы – программист, начинающий с азов, то с неочевидными концепциями, не встроенными в язык, вы вряд ли встречались. Perl всегда много работал над обеспечением доступности концепций, стоящих как бы на шаг в стороне от языков массового применения, и Perl 6 продолжает ту же политику. Я думаю, что Haskell на данный момент как раз на шаг в стороне от Perl 6. В нем есть концепции, которых Ларри на данный момент побаивается.
LXF: Значит, не так уж важно, что Pugs использует Haskell?
НТ: Нет, нисколько. Haskell оказался очень интересной и быстрой платформой разработки для концепций Perl 6. Pugs потому и был написан очень быстро, что писался на Haskell. Если бы его писали на С, мы бы все еще пытались добраться до стадии «Hello World».
LXF: Отражает ли возрастающая популярность объектно-ориентированного программирования желание людей программировать именно таким образом, или говорит о чем-то еще – об изменении направления для Perl?
НТ: Perl включал объекты, начиная с выхода Perl 5 – думаю, это были 93, 94-й годы [Perl 5 вышел в 1994] – так что в Perl всегда была возможность создания объектов и вызова их методов.
LXF: Однако же это становится более формализованным.
НТ: Вот именно, становится более формализованным. Я изучал объектно-ориентированное программирование [ООП] на Perl. В университете я занимался объектно-ориентированным программированием, но оно не привилось.
LXF: Значит, вы не переходили с C на C++?
НТ: Нет, наш выпуск последним работал на С, а потом перепрыгнули сразу на Java. На первом курсе мы работали на Pascal, а он еще более варварский.
LXF: А мы работали на Modula-2.'
НТ: Мы тоже работали на Modula-2, на втором курсе, чудаки, правда? Мы использовали Metrowerks C Compiler, мерзкую и жуткую программу.
Perl всегда поддерживал ООП. Один из уроков, усвоенных нами, заключался в том, что все должно быть проще. ООП – концепция высшего уровня, о таких сейчас много говорят. Ее нельзя эмулировать, ее нельзя разделить на более мелкие части, чтобы потом другие собирали объекты из этих мелких частей – а это вы на данном этапе и имеете в Perl, где метод является функцией, структура данных может ассоциироваться с классом, и все это превращается в объект. Сейчас очень хорошо видно, как это работает внутри. Perl 6 говорит: «Возьмите объекты и сделайте их главными, гражданами первого класса, чтобы вы могли программировать прямо в объектах, не беспокоясь о внутренних деталях». Хотя Perl – это Perl, внутренние детали там будут, если понадобится.
LXF: Вы бы стали использовать объекты для быстрого скриптинга, или же будете использовать Perl, как вы всегда делали?
НТ: Объекты для быстрого скриптинга в Perl 5 использовать по-прежнему можно – сейчас многие функции проявляются через объекты. Например, самый быстрый и простой способ создать сетевое подключение на основе сокета TCP/IP, – это использовать класс IO::Socket. Одна строка дает вам объект, куда затем можно печатать, или откуда можно читать, как при работе с файлами. И это проще, чем делать так, как раньше делалось в Unix, старомодным способом: создать сокет, ассоциировать с ним протоколы, привязать его к порту, и… р-р-ррр.
LXF: Я хотел спросить у Элисон [Allison Randall]: а где место Ponie?
НТ: Ponie стал важным уроком по внутренним структурам Perl 5 и Perl 6, и в том, как заставить их работать вместе. Люди из Perl 5 постоянно что-то заимствовали оттуда, и люди из Perl 6 тоже, пока мы не подумали: «Какой смысл вести отдельные проекты? Надо работать над Perl 5 и Perl 6 параллельно». Так что сам Ponie больше не будет отдельным проектом, но вся проделанная работа войдет в Parrot или Perl 5. Ponie дал возможность заглянуть в будущее, увидеть разницу в мировоззрении Perl 5 и Perl 6, и понять, как они стыкуются.
LXF: Я много читал о том, что Perl 6 развивается благодаря сообществу пользователей. Кроме того, что это удлиняет процесс, как это влияет, например, на ратификацию стандартов? Важно ли то, что проект развивается благодаря идеям всего сообщества, а не одного-двух человек?
НТ: Трудно сказать. Трудно ответить, потому что другого способа разработки программ с открытым кодом нет.
LXF: Но для Perl это переход.
НТ: Большим отличием стало то, что в Perl 6 мы постарались избавиться от перебранки, осложнявшей список Perl 5 «портируйте это», в конце девяностых. Кое-кто говорит, что мы решили эту проблему, просто перетащив всех чокнутых в Perl 6. Мне нравится думать, что мы всех умиротворяем. Списки рассылок Perl 5 и Perl 6 пребывают в зрелом и здоровом состоянии. И заразы, пачкавшей список «портируйте это» в конце девяностых, больше нет.
LXF: Потому что всем хочется сыграть свою роль в Perl 6?
НТ: И им хочется увидеть, куда мы движемся, они знают, к кому обратиться, они знают, что к их мнению и к их замечаниям прислушаются и учтут. Тут как-то… [молчит] Я много думал об открытых проектах. По-моему, каждый проект Open Source сталкивается со своего рода истощением. Программисты приходят, остаются, уходят. И раньше мне казалось, что это плохо. Я помню, как я встревожился, впервые обратив внимание, что людей, изо всех сил продвигавших версию 5.004, уже не стало к релизу 5.005, они вообще не вносили своей лепты. Я думал: «Наша проблема – потребительское отношение к людям, они просто перегорают». Но потом, к 1998 году я понял, что если человек не уйдет из проекта, когда он созрел для этого – когда он уже внес посильный вклад в общее дело – то получится группа людей, которым внести просто нечего. А это куда хуже. Надо признать, что люди будут приходить, а потом уходить, и это здоровый процесс. Признак нездоровья как раз заключается в том, что никто ничего не делает, все только болтают, бьют в литавры или ворчат.
Проблема Perl 5 заключалась в том, что там, по-моему, было много «дедов», а не новичков. Open Source частенько предубежден против новичков, а нашей проблемой в Perl был перебор старичков в проекте. Я счастлив, что смог сказать: «Все, ухожу. Буду рад помочь, если потребуется, но в списке рассылки не останусь, не собираюсь лезть со своими идеями, я прекратил работу, я отошел от дел». Думаю, тогда это было нужно.
Наше сообщество сейчас куда здоровее, чем в конце девяностых. Прийти к этому было непросто, но мне нравится та энергия, которую мы видим сегодня.
LXF: Это правильно подмечено – я сам участвовал в проектах, и постепенно от них устаешь, хотя они тебе продолжают нравиться.
НТ: А худшее, что можно сделать, это продолжать навязывать свои идеи 2006 года проекту 2009. Открытый код – это разработчики, которые чешут там, где у них зудит, а если вы чешете там, где зудит не у вас, из этого ничего хорошего не выйдет, и ваши идеи будут не так интересны и своевременны, как у тех, кто чешет там, где зудит у них.
'LXF: Можно, я поспрашиваю вас об OSCon, которая начиналась как конференция по Perl – много ли усилий вы в нее вкладываете?
НТ: Много. После OSCon я беру отпуск на пару месяцев, чтобы восстановить силы, но к ноябрю мы снова начинаем отправлять запросы на участие. В феврале мы отбираем доклады, к марту…
LXF: И что, каждый может выдвинуть свою идею?
НТ: Абсолютно. Это свободный сбор докладов, каждый может представить предложение по выступлению или по семинару. У меня есть программный комитет, с которым я работаю, из специалистов по Linux, и Java, и Perl, и Apache, и Python, и по прочим темам, которые мы затрагиваем, и я предоставляю им выбирать лучшие доклады и лучшие презентации.
LXF: Значит, оценку производят равные?
НТ: Как велит мода. А потом прихожу я, злобный диктатор, чтобы сказать: «Все отлично, но мне не нужно четырех семинаров на почти одинаковые темы». На семинары, после докладов, самый большой дефицит времени, и я стараюсь обеспечить здравый баланс и разумный подбор.
LXF: А сильно ли давление спонсоров?
НТ: Очень незначительно. Мы стараемся сохранять очень четкую редакторскую границу между технической программой и спонсорской стороной дел. Например, я не вписываю спонсоров, я не работаю с ними. Если они… наши спонсоры хотят включить в программу некие продукты и услуги, то с самого начала возле них появляется пометка «продукты и услуги», и это красноречивая индикация. Если вы – спонсор высшего звена, вы получите время для выступления, но я должен сперва пообщаться с докладчиком и убедиться, что доклад будет интересным, относящимся к теме и не имеющим рекламного характера. Это – очень хорошая [в действии] политика.
Я бывал на конференциях, где время, предоставленное спонсорам, было непомерно раздуто, да и у нас была пара таких случаев в самом начале. А наша политика работает намного лучше; я могу подойти к человеку и сказать: «Давайте я помогу вам найти подход к аудитории и помогу в подготовке самого выступления, чтобы ваши 15 минут доклада не превратились в 15 минут враждебности».
LXF: Корпоративные докладчики могут жутко досаждать – как заноза в пальце!
НТ: Точно. Некоторых я отправлял назад и говорил: «Не могли бы вы прислать докладчика получше? Не хочется, чтобы зрители помирали со скуки!» LXF
Читайте больше!
По мнению Ната,свободное ПО удерживает демократию в правильном русле. Читайте полную версию интервью на http://www.linuxformat.co.uk/torkington.html.