Персона. Создатель 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 это работает быстрее.

    Если вам нужны китайские символы в именах идентификаторов – без проблем. Названия модулей на тамильском языке – без проблем. Мы обработаем все символы, которые поддерживает ваша файловая система. Хотите объявить новый оператор с эмодзи в виде веселой кошки? Без проблем.



    Это Юникод, детка!

    • +30
    • 11,6k
    • 8
    Поделиться публикацией

    Комментарии 8

      +2
      «великодушный пожизненный диктатор» — эта же фраза обычно к Гвидо?
      +1
      Если зачесать ему волосы назад, то получится практически Нед Фландерс. Совпадение?

      Фландерс
      image
        +1
        Перл крут! Для работы со строками (читай, для веба) он бесподобен. Правда, не всегда получалось прочитать чужой код. Да и свой, бывало, тоже ;-) Но 1996 году для меня это было откровение, после всяких там Си и Бейсика с Паскалем.
          0
          I know some projects have been successfully democratized out to the level of a committee, but I suspect it's very difficult to democratize much beyond that, simply because most people wouldn't have time to learn enough to cast meaningful votes.
          Не переводится как
          «Я знаю некоторые успешные проекты с демократическими принципами. Но большинство людей не готовы достаточно учиться, чтобы к их мнению можно было прислушиваться.»
            0
            Да, Ваш вариант перевода гораздо лучше.
            0
            Великий человек

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

            Самое читаемое