http://wiki.linuxformat.ru/wiki/index.php?title=LXF74-75:%D0%92_%D0%BE%D0%B6%D0%B8%D0%B4%D0%B0%D0%BD%D0%B8%D0%B8_%D0%9B%D0%B0%D1%80%D1%80%D0%B8&feed=atom&action=historyLXF74-75:В ожидании Ларри - История изменений2024-03-29T07:16:27ZИстория изменений этой страницы в викиMediaWiki 1.19.20+dfsg-0+deb7u3http://wiki.linuxformat.ru/wiki/index.php?title=LXF74-75:%D0%92_%D0%BE%D0%B6%D0%B8%D0%B4%D0%B0%D0%BD%D0%B8%D0%B8_%D0%9B%D0%B0%D1%80%D1%80%D0%B8&diff=5019&oldid=prevLockal: Новая: {{Врезка|Ширина=300px |Заголовок=Визитка LXF |Содержание=;Ларри Уолл (Larry Wall) Лингвист по образованию, Ларри ...2008-07-11T15:45:40Z<p>Новая: {{Врезка|Ширина=300px |Заголовок=Визитка LXF |Содержание=;Ларри Уолл (Larry Wall) Лингвист по образованию, Ларри ...</p>
<p><b>Новая страница</b></p><div>{{Врезка|Ширина=300px<br />
|Заголовок=Визитка LXF<br />
|Содержание=;Ларри Уолл (Larry Wall)<br />
Лингвист по образованию, Ларри <br />
Уолл создал язык Perl в 1987 году. <br />
В 90-е Ларри работал в O’Reilly администратором сервера, однако сейчас он трудится над Perl 6.<br />
*Возраст: 44 (6 собачьих лет)<br />
*Национальность: Штатник <br />
*Использует UNIX: 22 года<br />
*Языков программирования: 35<br />
*Количество ПК: 10 <br />
*Дневная норма кофе: 1 кофейник<br />
*Пар сандалий: 1<br />
*Прямая речь: «Нам не особо интересно сообщать людям, чего они не могут сделать».}}<br />
[[Изображение:LXF74-75-Larry-1.jpg|thumb|300px|Пол демонстрирует смертельный захват, который он собирается применить, если Perl 6 не будет готов в ближайшее время.]]<br />
[[Изображение:LXF74-75-Larry-2.jpg|thumb|300px|Программа номер 6: Пол ни на минуту не прекращает сурово допрашивать Ларри…]]<br />
[[Изображение:LXF74-75-Larry-3.jpg|thumb|300px|Эти Уоллы просто без ума от своих узорчиков… (Слева направо) Льюис, Арон, Женева, Глория и Ларри.]]<br />
''Perl 6 разрабатывается уже несколько лет, и кажется, выпуска мы дождемся еще не скоро. Пол Хадсон (Paul Hudson) загнал Ларри Уолла (Larry Wall) в угол и спросил его, сколько это может продолжаться…''<br />
<br />
Что требуется для разработки языка программирования? Прежде всего, умение<br />
писать программы. Быть<br />
может, понимание лингвистики. Или хорошее<br />
владение «подстрекативностью» и<br />
«манипулячеством»?<br />
<br />
Столь экзотические термины<br />
фигурируют в лексиконе нашего<br />
сегодняшнего героя, Ларри Уолла.<br />
Который, кстати, разрабатывал программы с открытыми исходными<br />
кодами еще до того, как появилось<br />
само понятие «Open Source».<br />
Однако работа над его последним<br />
проектом (речь, конечно, идет о<br />
Perl 6), кажется, никогда не завершится. Гвидо ван Россум (Guido van<br />
Rossum), создатель языка Python,<br />
уже нарек релиз Perl 6 «тяжким крестом Perl». И правда, команда Уолла<br />
планирует серьезные перемены<br />
в языке. Мы встретились с Ларри и<br />
его семьей, чтобы разобраться в<br />
причинах задержки и понять, чего<br />
можно ожидать от Perl 6. И в конце<br />
концов он все-таки открыл нам дату<br />
выпуска шестой версии Perl…<br />
<br /><br />'''LXF:''' Организация Perl Foundation<br />
финансировала некоторых разработчиков Perl, выделяя им гранты на<br />
годовую или полугодовую работу, а кое-кто — включая Вас — написал<br />
несколько отличных книг о Perl для<br />
издательства O’Reilly. Как Вы считаете, это достаточный вклад в развитие Perl?<br />
<br />'''ЛУ:''' Проблема в том, что разработка<br />
Perl 6 — это в первую очередь большая исследовательская работа, а<br />
финансовый климат в последние<br />
несколько лет не шибко способствовал подобным исследованиям. Никто<br />
не хочет выкраивать на них деньги из<br />
достаточно жесткого бюджета. Я сам<br />
фактически был безработным около<br />
пяти лет. Денег никогда не бывает<br />
достаточно.<br />
<br /><br />'''LXF:''' Я так понимаю, что когда Вы<br />
занимаетесь консультированием, Вы<br />
не занимаетесь разработкой Perl 6,<br />
так же как и основной разработчик, Демиан Конвей (Damian Conway). Эта<br />
работа ведь отдаляет нас от долгожданного релиза?<br />
<br />'''ЛУ:''' Да, и я, и Демиан занимаемся<br />
консультациями, чтобы хоть как-то<br />
сводить концы с концами. И это действительно мешает разработке Perl 6.<br />
Мой участок работы — эмуляция<br />
Perl 5 на Perl 6, но последнее время<br />
мне некогда было этим заниматься.<br />
Солидную помощь по развитию<br />
инфраструктуры мы получили от Perl<br />
Foundation и издательства O’Reilly.<br />
O’Reilly, например, обеспечивает<br />
наши еженедельные<br />
телеконференции.<br />
<br /><br />'''LXF:''' Вы покинули O’Reilly после краха дот-комов, когда люди перестали<br />
покупать ваши книги?<br />
<br />'''ЛУ:''' Да, у O’Reilly тогда были серьезные проблемы, продажи падали -<br />
еще до теракта 11 сентября, но<br />
теракт здорово ухудшил ситуацию. Я<br />
понимал, что был тогда одним из<br />
самых бесполезных сотрудников<br />
O’Reilly, поэтому ничуть не удивился<br />
своему увольнению. Иногда люди<br />
спрашивают у меня: «Вы не держите<br />
зла на Тима О’Рейли за то, что он<br />
уволил вас?», на что я отвечаю «Нет,<br />
вы не понимаете». Работая в издательстве, я получал зарплату и занимался тем, что мне нравится. По<br />
существу, он представил мне на эти<br />
годы возможность обучения, я ему<br />
очень благодарен, и как я могу сердиться на него? Мы с Тимом в очень<br />
хороших отношениях.<br />
<br /><br />'''LXF:''' Все эти события происходили<br />
около пяти лет назад, как раз когда<br />
Вы начали работу над Perl 6?<br />
<br />'''ЛУ:''' Я принялся за Perl 6 за несколько<br />
месяцев до того, но мое расставание<br />
с O’Reilly тут ни при чем.<br />
<br /><br />'''LXF:''' Тем не менее работа над Perl 6<br />
замедлилась?<br />
<br />'''ЛУ:''' Да, но мы были терпеливы — проектирование требовало много времени. В индустрии программного обеспечения есть хорошее высказывание:<br />
«Хороший. Быстрый. Дешевый.<br />
Любой продукт может обладать только двумя из этих трех качеств». Наш<br />
проект — с открытым исходным<br />
кодом, он «дешевый» по определению. Высказывание, значит, упростилось до «Либо хороший, либо быстрый. Выбирайте». Мы выбрали<br />
«хороший», поэтому быстрая разработка исключалась.<br />
Наш неофициальный девиз -<br />
«Perl 6: синдром второй версии в<br />
хорошем смысле». ["Синдром второй<br />
версии" — это ситуация, когда разработчики программного продукта из кожи вон<br />
лезут, чтоб версия 2.0 намного превзошла версию 1.0, а в итоге просто нашпиговывают ее избыточными функциями,<br />
которые почти никому не нужны.]<br />
Единственный способ преодолеть<br />
этот синдром — потратить больше<br />
времени на обдумывание и учесть<br />
эффекты второго и третьего<br />
порядков.<br />
Еще одно правило — «хорошо сделать времени нет, есть время только<br />
угробить» — мы тоже решили побороть: сознательно потратили время<br />
на плохую работу, а потом угробили<br />
ее, чтобы сделать все правильно с<br />
самого начала, все тщательно продумать, и только после этого выпустить<br />
Perl 6 на рынок. Наша цель — оставить все существующие скриптовые<br />
языки далеко позади.<br />
Вот какие у нас планы. Вроде они<br />
работают, хотя мы, признаться, не<br />
ожидали, что начальная фаза разработки займет целых 5 лет.<br />
<br /><br />'''LXF:''' Так это только начальная фаза?!<br />
<br />'''ЛУ:''' Да, на данный момент мы завершили 80 % проектирования. Сейчас<br />
работаем над остальными 80 %!<br />
<br /><br />'''LXF:''' Касательно «синдрома второй<br />
версии»: мудрые люди утверждают,<br />
что при разработке крупного программного продукта одна из версий<br />
обязательно отправляется в мусорную корзину. Вы уверены, что Perl 6<br />
не окажется неудачной версией?<br />
<br />'''ЛУ:''' Ну, вообще-то мы надеемся, что<br />
«неудачной версией» был Perl 5;<br />
потому что я проектировал и разрабатывал его практически в одиночку.<br />
То есть эта версия ограничена моим<br />
видением того, каким должен быть<br />
язык программирования. Конечно,<br />
привлечение большего числа разработчиков способствует появлению<br />
«разбухшей версии», но зато помогает более широкому видению<br />
предмета.<br />
Чтобы не потерять это преимущество, мы решились реструктурировать переработку Perl 6, но не бросать на проект дополнительных программистов просто потому, что время поджимает.<br />
Мы в этом смысле никогда не<br />
опоздаем: продукт будет выпущен<br />
только при полной готовности. Мы<br />
просто стараемся все делать правильно, а когда видим место, где чтото идет не так — сразу его переделываем. Наша политика опирается на<br />
простой принцип: «Давайте будем<br />
здоровыми консерваторами и не<br />
будем хвататься за такие вещи, в<br />
будущем которых мы не уверены,<br />
однако предусмотрим возможность<br />
развития в другом направлении».<br />
В общем, мы не намерены сожалеть о потраченном зря времени.<br />
<br /><br />'''LXF:''' Тогда Вы должны быть<br />
жестким…<br />
<br />'''ЛУ:''' На данном этапе, наш проект<br />
охлаждается. Не замораживается,<br />
а охлаждается, чтобы стать прочнее.<br />
То есть иногда наши исполнители<br />
останавливаются и говорят:<br />
«Работает отлично, нам нравится эта<br />
часть, но мы не знаем, как ее грамотно реализовать». И мы им отвечаем:<br />
«Ладно, тогда упростим там-то и тамто». А в других случаях мы, наоборот, что-то усложняем, чтобы<br />
в конечном итоге все стало проще.<br />
Множество подобных обсуждений<br />
проходит прямо сейчас. Создается<br />
ощущение, что вся интересная работа закончена, и осталась только нудная рутина, однако мы пригласили<br />
людей, которым такая рутина, похоже, доставляет удовольствие. Я<br />
думаю, это хороший признак.<br />
<br /><br />'''LXF:''' Один человек недавно сказал<br />
мне — по-моему, это был Ваш исполнительный секретарь: «У Ларри не все<br />
хорошо со временем и датами, это<br />
легко видеть на примере Perl 6».<br />
Думали ли Вы пять лет назад, что до<br />
сих пор будете разрабатывать эту<br />
версию Perl? Может быть, Вы надеялись управиться к 2003-му году?<br />
<br />'''ЛУ:''' Выпуская Perl 5, мы думали<br />
о том, что получим штук 20 запросов<br />
с советами, как исправить Perl 5.<br />
Оказалось, что их в 15 раз больше.<br />
Через пару месяцев стало ясно, что<br />
переделок будет либо гораздо меньше, либо гораздо больше, чем мы<br />
рассчитывали, и мы приняли решение заняться большой перестройкой.<br />
Я просто на ушах стоял, пытаясь<br />
переварить полученные 361<br />
замечание.<br />
ГЛОРИЯ УОЛЛ (Gloria Wall): Ты на<br />
несколько месяцев был буквально<br />
парализован.<br />
<br />'''ЛУ:''' Но я метался в поисках решения.<br />
Причем каждый из авторов подобных<br />
запросов предлагал исправить что-то<br />
свое, а некоторые предложения были<br />
противоречивы или несовместимы.<br />
Никто не мог представить Perl 6<br />
в целом, все сфокусировались на<br />
каких-то частностях. Мне пришлось<br />
изобретать способы разгрести все эти<br />
запросы. В конечном итоге я их классифицировал по принципу, изложенному в моей [ставшей классической]<br />
книге о Perl: от мелкого к крупному. Я<br />
осознал, что описание языка и его<br />
перестройка требуют одинакового<br />
порядка действий. Пришлось немало<br />
потрудиться, но проект в общих чертах следовал данному принципу.<br />
ГУ: К тому же Ларри не ожидал, что<br />
заболеет. Год был из проекта вынут.<br />
<br />'''ЛУ:''' Да, несколько лет назад мне сделали две операции на желудке. Две,<br />
потому что первая не удалась. То<br />
есть опухоль-то мне удалили, но я<br />
не мог ни пить, ни есть почти шесть<br />
недель. Меня кормили через вену.<br />
Спустя два месяца после второй операции, я вернулся к работе, но не<br />
сказал бы, что чувствовал себя здоровым. По-моему, весь период<br />
болезни занял около года.<br />
С другой стороны, в это время<br />
люди занимались реализацией идей,<br />
которые успели придумать. Таким<br />
образом, время не прошло зря.<br />
Можно считать его частью рабочего<br />
плана…<br />
<br /><br />'''LXF:''' Вы сказали, что ожидали снижения доли Perl на рынке скриптовых<br />
языков, учитывая промежуток времени между Perl 5 и Perl 6. Но лично<br />
я никакого снижения не вижу, Perl<br />
сейчас популярен как никогда. Вас<br />
это ободряет?<br />
<br />'''ЛУ:''' Да, ободряет. Продажа книг<br />
о Perl немного уменьшилась, хотя я<br />
не знаю, насколько это показательно.<br />
Сейчас начинается новый раунд<br />
выпуска книг о Perl 5, и пока неизвестно, как их примут.<br />
<br /><br />'''LXF:''' По-моему, Тим говорил, что продажи книг о Perl увеличились за<br />
последние месяцы на 19 %, благодаря новой книге «Learning Perl»<br />
(«Изучаем Perl»).<br />
ГУ: Вы знаете, проценты как раз снизились, зато абсолютные числа продолжают расти.<br />
<br />'''ЛУ:''' Даже если продажи книг падают,<br />
причиной может быть просто хорошая документация. Это ведь open<br />
source, и многое не поддается учету.<br />
Если вы занимаетесь маркетингом<br />
и фиксируете каждую продажу, то<br />
можно посчитать, сколько народу<br />
приобрело ваш продукт — кроме<br />
пиратов, конечно…<br />
В open source никого не назовешь<br />
«пиратом», разве что в опереточнолитературном смысле этого слова,<br />
но здесь гораздо сложнее проследить, кто чем пользуется.<br />
Я вижу намного больше поддержки, особенно когда мы стали работать над компилятором Perl 6 (написанном, кстати, на Haskell). Я вижу<br />
нарастающее волнение. Год назад<br />
многим казалось: наши планы никогда не материализуются, поскольку<br />
мы разрабатывали виртуальную<br />
машину буквально с нуля. Сейчас<br />
прогресс резко ускорился — у нас<br />
уже есть виртуальная машина на<br />
функциональном языке высокого<br />
уровня, и тестовая версия компилятора, все это легко переводится на<br />
Perl 6, короче, ждать осталось<br />
недолго.<br />
<br /><br />'''LXF:''' Звучит неплохо…<br />
<br />'''ЛУ:''' Не могу предсказать, что через<br />
год мы получим окончательную реализацию, но точно будем запускаться на множестве платформ, одна из<br />
которых — Parrot (та самая виртуальная машина). Уже можно работать поверх JavaScript, Parrot, и есть<br />
даже реализация Perl 6 на движке<br />
от Perl 5. Выглядит это, конечно,<br />
безумно, и я не думаю, что это очень<br />
эффективное решение, но оно имеет<br />
право на существование, хотя бы для<br />
разнообразия.<br />
<br /><br />'''LXF:''' Мне нравятся многие вещи в<br />
Perl 6. Мне нравится суммарная суперпозиция, мне нравятся операторы свертки — это просто чудо.<br />
<br />'''ЛУ:''' Эти вещи взяты из языка APL, но<br />
в отличие APL, мы попытались оптимизировать их для удобного чтения.<br />
Посмотрите на APL, и вы поймете, что если надо разобраться в<br />
чужой программе, вы должны четко<br />
представлять себе, что делает каждый отдельно взятый оператор.<br />
Посмотрите на Perl 6, и вы удивитесь, насколько он проще и логичнее.<br />
Сразу понятно, зачем нужны квадратные скобки, и что они делают со списками, и куда прилагается оператор<br />
посередке, утверждение глотается<br />
запросто, как пилюля. Я — сторонник<br />
читаемого кода, потому что даже<br />
если он выполняет сложные вещи,<br />
но описывает их наглядно, программистам это нравится. Мы гордимся<br />
синтаксисом нашего продукта.<br />
<br /><br />'''LXF:''' Чем Вас особенно радует Perl 6?<br />
Кроме мысли, что он почти готов,<br />
конечно.<br />
<br />'''ЛУ:''' Я думаю, что в нем будут части,<br />
развивающиеся быстрее, чем Perl 5.<br />
Язык Perl всегда был расширяемым.<br />
По этой причине мы добавили символы-префиксы для обозначения<br />
переменных. Perl 5 тоже предусматривает расширяемость, и он все еще<br />
развивается, благодаря архиву исходных текстов и модулей CPAN,<br />
которым мы можем гордиться до<br />
сих пор.<br />
Однако есть множество причин,<br />
по которым пятая версия Perl уже<br />
изжила себя. У нас есть способы<br />
изменения синтаксиса языка, но они<br />
очень примитивны. У нас есть механизм, называемый source-фильтром,<br />
но с ним тоже далеко не все<br />
благополучно.<br />
В Perl 6 мы фактически даем программисту полный контроль над синтаксисом, так что вы сможете варьировать «грамматику» языка, как<br />
угодно изменять язык и экспериментировать, подчиняя язык новой семантике. Тогда путем «естественного отбора» мы сможем определить, в каком направлении развивать<br />
Perl 6.<br />
<br /><br />'''LXF:''' Наверное, в ориентации на<br />
обычного пользователя?<br />
<br />'''ЛУ:''' Отчасти развитие состоит в обеспечении взаимодействия независимых версий, например, если вы<br />
используете какие-нибудь два модуля, которые требуют разные версии<br />
другого модуля — мы должны позволить им сосуществовать. Если,<br />
конечно, эти два модуля не потребуют доступа к каким-нибудь закрытым<br />
ресурсам.<br />
<br /><br />'''LXF:''' Вы сказали, что разработка шестой версии — Ваш единственный шанс<br />
разрушить обратную совместимость.<br />
Не думаете ли Вы, что совместимость<br />
нарушит, скажем, Perl 9?<br />
ГУ: Никакой девятой версии не будет.<br />
<br />'''ЛУ:''' Я надеюсь, что мы сделаем достаточно гибкий язык, чтобы все<br />
последующие версии использовали<br />
эту гибкость. Может быть, его переименуют в Perl 7, 8 или 9, но разве<br />
что по соображениям маркетинга, а<br />
не в связи с новой идеологией.<br />
Быть может, появится модуль,<br />
который видоизменит сам язык, и<br />
кто знает, может быть, он станет<br />
настолько популярным, что мы включим его в стандартную поставку.<br />
Конечно, тогда придется изменить<br />
номер версии, поскольку этот модуль<br />
может разрушить обратную<br />
совместимость.<br />
<br /><br />'''LXF:''' Вы ведь можете оставить<br />
людей, использующих Perl 5.8,<br />
ни с чем.<br />
<br />'''ЛУ:''' Не совсем так. Perl 5 — это open<br />
source, и он никуда не денется. Пока<br />
он кому-нибудь нужен, его будут<br />
поддерживать. Это одна из причин,<br />
по которым мы затеяли столь масштабную переработку. Поскольку<br />
Perl 5 является довольно стабильной<br />
базой, многие им пользуются. В нем нелегко отыскать ошибки, поэтому<br />
он не подвержен быстрым изменениям. На примере тех, кто до сих пор<br />
работает на Perl 4, мы можем с уверенностью утверждать, что Perl 5<br />
будет актуален еще лет пять после<br />
выхода Perl 6. Нам не особо интересно сообщать людям, чего они не<br />
могут сделать.<br />
<br /><br />'''LXF:''' Вас не беспокоит, что могут найтись люди, которые отпочкуют версию Perl 5.8, добавив в него парутройку новых функций, и в конце<br />
концов превратят его в реального<br />
конкурента Perl 6?<br />
<br />'''ЛУ:''' Я бы не рассматривал это как<br />
почкование. Нет проблем, пусть<br />
делают. Perl 6 как раз и пытается<br />
облегчить создание индивидуальных<br />
версий по личному вкусу. Не думаю,<br />
что кому-то сильно захочется страдать над расширением Perl 5.<br />
<br /><br />'''LXF:''' И последнее: когда же мы увидим финальную версию Perl 6?<br />
Назовите точную дату!<br />
<br />'''ЛУ:''' Посмотрим… 30-го июля.<br />
<br /><br />'''LXF:''' Какого года?<br />
<br />'''ЛУ:''' Не скажу! LXF</div>Lockal