Персона: создатель Perl Ларри Уолл — «великодушный пожизненный диктатор»
Сегодня на «Хабре» уже был пост, посвященный дню рождения создателя языка Perl. Здесь хотелось бы подробнее поговорить о биографии и взглядах Ларри Уолла, о его мотивации к созданию языка программирования, а также привести несколько фрагментов из недавнего интервью.
Ларри Уолл — американский программист, лингвист и создатель языка программирования Perl, один из лидеров движения за бесплатный доступ к программному обеспечению.
Первые шаги
Ларри родился 27 сентября 1954 года в Лос-Анджелесе в семье потомственных протестантских пасторов. Мальчик рос в небольшом городке Брементоне в штате Вашингтон и мечтал стать служителем церкви. Это желание не сбылось, но сам Ларри считается одним из немногих религиозных персон в мире именитых программистов.
Учился Ларри Уолл в христианском учебном заведении — Тихоокеанском университете Сиэтла. В 1976 году он получил диплом бакалавра по специальности «Лингвистика». Во время обучения и проявились задатки будущего автора Perl. В течение трёх лет, будучи студентом, Ларри работал в университетском компьютерном центре.
После окончания университета Ларри и его жена (Глория Борн) работали переводчиками Библии, а затем оба поступили в аспирантуру Калифорнийского университета в Беркли. Молодая семья лингвистов по-прежнему видела своё будущее на церковном поприще.
Но настал переломный момент, и работа Ларри в компьютерном центре стала одной из причин того, что, несмотря на лингвистическое образование, он решил заняться компьютерными технологиями. Ларри считал это более перспективным занятием.
Он поступил на работу в Unisys и в Лабораторию реактивного движения НАСА (JPL). Свободное время будущий гуру занимался разработкой программ для UNIX.
Perl: не за славу, не за плату
В 1987 году Ларри Уолл создал язык программирования Perl. Он тогда работал системным программистом в американской компании Unisys. Цели, которые преследовал Ларри при разработке нового языка программирования, отражены в его названии — PERL, которое позднее стало расшифровываться как Practical Extraction and Report Language, то есть «практический язык извлечения данных и создания отчетов».
С 1995 до 2002 года Ларри Уолл работал в компании O«Reilly & Associates, издателя его книг. Уход был связан с получением гранта Фонда Perl.
В 2004 году Ларри занял пост старшего научного сотрудника, а фактически «главного программиста» в NetLabs.
Сейчас Ларри Уолл продолжает развивать язык Perl под патронатом O«Reilly и живёт вместе со своей женой-писательницей и четырьмя детьми в городке Маунтин-Вью в Калифорнии.
Целью автора языка Perl никогда не было получение денег. Напротив, он внёс существенный вклад в «культуру» бесплатного распространения программ с их исходными кодами. Новый язык программирования Уолл разрабатывал для того, чтобы решить проблемы, с которыми он как программист сам сталкивался в течение рабочего дня.
Когда первая версия языка вышла в свет, Ларри Уолл обеспечил открытый доступ и к исходному коду самой программы. Любой желающий может бесплатно скачать и пользоваться Perl независимо от того, нужен ли он ему для усовершенствования собственной странички или для создания мультимилионного Интернет-проекта.
Несмотря на то, что в операционной системе Unix, для которой был создан Perl, уже имелись многочисленные и разнообразные средства для обработки текстовой информации (awk, csh, grep, sed и другие), новый язык полюбился огромному числу системных администраторов и программистов. Он был легок в изучении и применении: синтаксис похож на С, Perl-программы не требовалось предварительно компилировать, исходные тексты было легко модифицировать. А самое главное — это был действительно очень практичный язык: с его помощью легко решалось большинство повседневных задач — от самых простых до очень сложных.
Активно пользуясь языком Perl, программисты из разных стран направляли Ларри Уоллу предложения добавить в него новые возможности или улучшить имеющиеся. Постепенно Perl превратился из средства обработки текстов в среде Unix в мощную универсальную систему программирования. В середине 1990-х годов, по мере развития интернета, Perl стал излюбленным инструментом web-мастеров для создания динамических сайтов и Internet-программирования.
Благодаря языку Perl стартовал Yahoo, с его же помощью создан Amazon и миллионы других сайтов.
24 декабря 2015 года в официальном блоге, посвящённом новостям разработки Perl 6, появилась поздравительная запись. Разработчики поздравили всех с наступающим католическим Рождеством, и с тем, что так долго ожидаемое взросление языка, наконец, состоялось. Фактически, язык готов к использованию в рабочих проектах, и разработчики обещают больше ничего существенно не менять.
С момента выхода первой версии Perl прошло почти 29 лет, с момента выхода самой популярной в данное время версии Perl 5 — более 20 лет. Как шутит Ларри Уолл, создатель языка и лидер его разработки, 6-я версия, возможно, когда-нибудь и заменит 5-ю — примерно лет через 40.
Версия Perl 6 была анонсирована более 10 лет назад — на Amazon ещё можно купить книгу про этот «вскоре выходящий» язык, изданную в 2004 году. И хотя некоторые утверждают, что 6-ка отличается от 5-ки не более, чем C++ от C, всё-таки идеология в Perl 6 эволюционировала достаточно сильно для того, чтобы назвать его более современным языком.
Ларри Уолл надеется, что преподаватели в институтах смогут, наконец, используя один и тот же язык, обучать студентов разным стилям программирования — функциональному, процедурному и объектному.
Логотипом Perl 6 выбрали бабочку. Как (полушутя) пояснил Уолл на конференции в октябре этого года, это было сделано специально для того, чтобы сделать язык привлекательным для 7-летних девочек.
Вопросы есть?
Недавно Ларри Уолл дал интервью Slashdot. Приводим несколько фрагментов из беседы.
Каким компьютером вы пользуетесь? Какие приложения предпочитаете?
Уже год или два я пользуюсь Lenovo X1 Carbon2 с 4-ядерным процессором. За исключением отвратительной раскладки клавиатуры и почти бесполезной ёмкостной сенсорной полоски он практически идеален для разработки, общение и проведения презентаций. На нем установлена операционная система Linux Mint.
Что касается редакторов… я использую разные. У меня нет каких-то конкретных предпочтений.
На компьютере я пользуюсь браузером Firefox, а на моем древнем гуглфоне стоит Chrome.
В работе я бы не смог обойтись без IRC или Git.
Каковы наиболее важные вещи, которым нужно уделить внимание при разработке нового языка программирования?
Важно все. Если вы не разрабатываете DSL (Domain Specific Language), а язык общего назначения, необходимо сделать выбор: навязать миру свою парадигму или реализовать поддержку нескольких парадигм. Лично мы предпочитаем второе.
Даже если вы сможете предусмотреть все, в процессе вы все равно обнаружите что-то, что могли сделать лучше. Ведь не существует идеального языка программирования. При разработке Perl мы использовали 50–60 различных принципов, но самый важный принцип таков: «Не существует самого важного принципа».
С другой стороны, если сконцентрироваться лишь на нескольких важных вещах, в вашем языке будут хорошо сделаны только они. И это тоже не плохо. Плохо, когда люди путают понятие «язык общего назначения» и «язык, обладающий тьюринг-полнотой»
Можете ли назвать эффективные методы управления проектами помимо модели «Великодушный пожизненный диктатор»?
«Великодушный пожизненный диктатор» (англ. Benevolent Dictator For Life, сокр. BDFL) — в контексте разработки свободного ПО, полуюмористический термин, обозначающий главу или основателя проекта, который сохраняет за собой право принимать окончательные решения. Впервые термин использовался по отношению к Гвидо ван Россуму, создателю языка Python.Я знаю некоторые успешные проекты с демократическими принципами. Но большинство людей не готовы достаточно учиться, чтобы к их мнению можно было прислушиваться.
В сообществе Perl я известен как BDFL, но у меня «B» превалирует над «D». Тем не менее, я больше веду себя как верховный судья, чем как генеральный директор.
Чат IRC выполняет функцию конгресса: предлагает и обсуждает новые идеи. Многие решения я делегирую другим разработчикам и вмешиваюсь только когда вижу варианты, которые другие не видят. У меня есть право «вето», но я стараюсь использовать его как можно реже. Как бы сказала королева Елизавета, я стараюсь править, а не управлять.
Как вы относитесь к господству английского языка в ИТ-индустрии? Изменилось бы что-то, если бы место английского занял язык, не связанный с национальностью? Эсперанто например?
Если бы таким языком стал Японский, мы бы перешли на обратную польскую запись — такой принцип реализован в Forth и PostScript. Я не знал, что существуют люди, думающие по принципу ПОЛИЗ, пока не начал изучать японский.
С другой стороны, я рад, что это место занимает английский. По-моему, Эсперанто все-таки больше европейский язык, чем азиатский.
В любом случае, люди хотят изучать английский, чтобы смотреть голливудские фильмы. Как носители английского языка лучшее, что мы можем сделать, это быть более внимательными к нуждам других языковых групп.
Так, в Perl 6 мы рассматриваем каждую графему в коде (из языков других народов) как изначально определенный символ, независимо от того, использует ли его Unicode-концорциум. Время исполнения нашего алгоритма индексации строк составляет O (1).
Насколько я знаю, в Swift тоже реализована поддержка родных языков. Однако там время выполнения алгоритма оценивается только в O (n). Так что, в Perl 6 это работает быстрее.
Если вам нужны китайские символы в именах идентификаторов — без проблем. Названия модулей на тамильском языке — без проблем. Мы обработаем все символы, которые поддерживает ваша файловая система. Хотите объявить новый оператор с эмодзи в виде веселой кошки? Без проблем.