Персона. Гвидо Ван Россум — создатель Python
Гвидо ван Россум известен как создатель языка Python. С момента создания языка Гвидо многократно награждался различными премиями. В 2001 году он получил награду за вклад в развитие свободного программного обеспечения от 'Free Software Foundation', а в мае 2003-го удостоился премии 'NLUUG Award'. В 2006 году ему присвоили звание Выдающегося Инженера.
Свободное от работы время Гвидо уделяет семье и самообразованию. Он большой фанат сериала 'Летающий цирк Монти Пайтона' (Monty Python’s Flying Circus), именно в честь этого шоу и был назван язык программирования Python.
Гвидо ван Россум родился 31 января 1956 года в Нидерландах. С детства мальчик увлекался компьютерными технологиями. Однако поначалу его больше интересовало железо, нежели программное обеспечение.
Он признается, что уже не может вспомнить, почему и как начал увлекаться этим.
Но такой выбор был непопулярным среди его одноклассников. Поэтому в классе не понимали его увлечение «железками». Когда Гвидо принес в школу собственный проект, никому до этого не было дела. «Это неприятное воспоминание», — рассказывает Ван Россум. Однако вопреки непониманию и неодобрению со стороны сверстников мальчик продолжил заниматься своим делом.
«У меня была большая мечта — создать свой собственный электронный калькулятор из дискретных компонентов. Я так и не сделал калькулятор, но я сделал несколько цифровых часов. И как же это удивительно, сделать что-то сложное и увидеть, как это работает».
После окончания школы поступил в Университет Амстердама (University of Amsterdam).
Гвидо учился на математическом факультете. Но среди прочих предметов было и программирование. В рамках обучения студенты посещали компьютерные лаборатории, в которых тогда еще работали мейнфреймы. Юноша быстро понял, что работа с компьютерами была для него не просто частью учебной программы, а по-настоящему приятным времяпрепровождением.
Если раньше его ум целиком и полностью занимала электроника, аналоговые и цифровые интегральные схемы, то теперь за ресурсы его головного мозга начало активно конкурировать программирование. Гвидо набирал программы на перфокартах.
«Это был очень медленный и утомительный процесс, но было жутко интересно разобраться, как оно работает», — вспоминает он.
Со временем любознательный студент забросил электронику и полностью погрузился в премудрости программирования, так как оно в итоге показалось ему более интересным. На втором году обучения Ван Россум понял, что математика ему дается не слишком легко. Затруднения вызывали даже такие базовые дисциплины, как алгебра и интегральное исчисление. Тогда он решил, что «серьезная математика» — не его конек.
Гвидо попросил изменить его программу обучения в сторону программирования, и ему пошли навстречу. Он стал изучать все дисциплины, которые хоть как-то были связаны с компьютерными науками.
Затянувшаяся подработка
Ван Россум не мог упустить возможность устроиться в университетский дата-центр на частичную занятость. Там было совсем мало мест для студентов. Более того, они принимали на работу только самых талантливых из них. Гвидо удалось получить место. Он проработал там более пяти лет, пока был студентом. Правда, его успеваемость начала падать. Собственно, этого следовало ожидать.
Работа настолько доставляла ему удовольствие, что он просто забывал про учебу. Так подающий надежды студент оказался на грани отчисления. К счастью, его начальник, и по совместительству профессор университета, вовремя уберег юношу от опрометчивых поступков. Он убедил Гвидо продолжить обучение, объяснив, что без диплома он не сможет оставаться на любимой работе.
В 1982-м году Гвидо Ван Россум получил степень магистра в математике и компьютерных науках. После этого он работал в различных университетах и компьютерных лабораториях — как в Европе, так и в Соединенных Штатах.
Python
«В декабре 1989-го года я искал проект, который бы стал хобби на рождественские каникулы. Офис со всем оборудованием не работал и, не имея необходимых ресурсов, я начал дорабатывать ABC, но на протяжении работы я и не думал, что может получиться что-то серьезное», — вспоминает Гвидо.
Именно тогда у него возникла идея создания нового языка программирования. Язык Python был задуман как потомок языка программирования ABC, способный к обработке исключений и взаимодействию с операционной системой Amoeba.
Amoeba — открытая микроядерная распределённая операционная система, разработанная группой во главе с Эндрю Таненбаумом в Амстердамском свободном университете. Amoeba не основана ни на одной из существующих операционных систем, так как разрабатывалась «с нуля».
От других языков программирования Python отличался простотой, открытым кодом, предоставляющим любому пользователю возможность вносить свои коррективы, и упрощенным использованием английского. Несмотря на то, что команды несколько отличались от популярных на тот момент языков, программисты легко осваивали язык и уже через несколько дней могли свободно использовать его в своей работе. Среди корпораций, которые сейчас используют этот язык программирования, — Google, Yahoo!, CERN, NASA и многие другие.
Python поддерживает несколько парадигм программирования, в том числе процедурную, объектно-ориентированную, императивную и функциональную.
На Python также написаны многие популярные приложения, например, бесплатный офисный пакет LibreOffice. На базе Python были созданы еще несколько языков программирования, не получивших большого распространения.
Гвидо придерживался нескольких правил, которые во многом повлияли на развитие отрасли: использование открытого кода, использование упрощенного английского, что позволяло программистам из других стран не тратить время на глубокое изучение языка, и лаконичность кода, его удобство для ежедневного использования.
Ван Россум был одним из первых разработчиков и программистов, выступавших за развитие свободного программного обеспечения и популяризацию открытого кода.
Именно Гвидо впервые употребил к себе юмористический титул — «Великодушный пожизненный диктатор» (Benevolent Dictator For Life).
Под его руководством находятся другие пользователи, нужды которых он должен удовлетворять. Однако при условии, что количество пользователей, мнение которых расходится с мнением диктатора, постоянно увеличивается, они имеют право отделиться и начать собственные разработки.
На сегодняшний день Python является одним из самых используемых языков программирования в мире.
Дальнейшее развитие карьеры
С 2005 года Гвидо ван Россум работал в Google в качестве разработчика (продолжая посвящать языку Python половину рабочего времени). В компании он занимался созданием системы Mondrian, написанной, как несложно догадаться, почти полностью на языке Python.
Через 7 лет, в 2012 году, Гвидо покинул Google для того, чтобы присоединиться к облачному сервису хранения данных Dropbox.
В интервью Гвидо прокомментировал ситуацию так:
После семи лет работы в Google я был готов к каким-либо изменениям в окружающей обстановке, и тут поступило предложение от Dropbox. По большому счету моя работа не сильно изменилась. Я всё ещё:• трачу 50% времени на то, что я обычно делаю согласно своей роли Великодушного Пожизненного Диктатора;
• я обычный инженер в этой организации (не менеджер и даже не руковожу группой — не Team Leader;
• часто делаю инспекцию кода (code review), разрабатываю архитектуру и дизайн;
• разбираю много электронных писем;
• пишу код на Python.Детали работы конечно отличаются. Фактически в Google я делал две вещи: поначалу два года я работал над первым online-инструментом инспекции кода (code review) Mondrian, который хоть и не был open source, но породил Rietveld. Сейчас Rietveld используется в проектах Python, Go и Chromium. После этого я присоединился к Google App Engine, где занимался множеством разных вещей, в основном касающихся Python. Моим последним большим проектом был новый Python API для базы данных, NDB.
В компании Dropbox моим первым проектом был дизайн Dropbox Datastore API. По иронии судьбы (я не виноват), здесь тоже присутствует слово «datastore». Есть общие черты у Dropbox Datastore и Google App Engine Datastore.
Python компания Dropbox использует для разработки своих приложений. Он был выбран Dropbox не случайно, а по той причине, что позволяет существенно упростить процесс разработки.
«С самого своего основания мы в Dropbox поддерживали все наиболее популярные операционные системы. Но такая задача всегда представляет большую сложность для разработчиков: каждая платформа базируется на собственных средствах и языках программирования, поэтому приходится писать один и тот же код несколько раз», — рассказывал один из основателей Dropbox Дрю Хьюстон.
«У нас нет времени на это, и к счастью Python пришел на помощь, — продолжил Хьюстон. — Особенности этого языка позволили нам писать код один раз и затем запускать его в любой среде».
Критика Python
Гвидо Ван Россум не согласился с критиками, утверждавшими, что Python слишком медлителен. Он заявил, что его приложения, написанные на этом языке, всегда получались достаточно быстрыми.
Люди берут инструмент и пишут что-то невероятное, и делают нечто безумное в ходе написания этих невероятных штуковин. Иногда такое безумие связано с кучей вычислений, обходом графа с миллиардом социальных связей или анализом триллиона сообщений электронной почты или чем-то таким.Рано или поздно дело кончается тем, что одним небольшим куском всей создаваемой системы поглощаются все ресурсы. Если вы простодушно оформите его как простой пайтоновский цикл, вы увидите в конце концов, что он и станет узким местом вашей системы. Обычно гораздо быстрее взять этот кусок и переписать его в виде функции или модуля на C или C++, чем переписывать всю систему на более быстром языке, поскольку для большей части того, что вы делаете, скорость языка не имеет значения.
Python-сообщество и его перспективы
В одном из интервью Гвидо Ван Россум рассказывал о своих отношениях с экосистемой Python.
Как вы выдерживаете баланс между пожеланиями пользователей, поступающих ежедневно, и долгосрочными планами по доработке языка?
В сообществе Python достаточно много ключевых разработчиков, которые выполняют огромный объем работы по написанию и проверке кода. В этой группе разработчиков налажены свои процессы по доработке языка. За более чем 20 лет работы мы выяснили для себя некоторые ограничения, направляющие эти процессы.
Если мы вносим изменения в язык слишком быстро, пользователи начинают «отставать» и жаловаться, что с каждой новой версией Python их программы ломаются. Если изменения происходят слишком медленно, пользователи жалуются, что баги своевременно не исправляются, а их пожелания по доработке никогда не будут учтены с такими темпами.
Так что, баланс этот очень шаткий, потому что одному человеку скорость покажется чрезмерно высокой, а другому — чрезмерно низкой.
Со временем выработался целостный взгляд на то, что нужно добавить в основной проект или в библиотеку, а что лучше оставить в качестве сторонних open source проектов, которые люди могут использовать по мере необходимости.
Разобравшись во всем этом, я получил огромный опыт. Сейчас мы достигли такого уровня, что в случае моего ухода сообщество продолжит функционировать в обычном режиме. Разработчики понимают, что и почему мы делаем, как мы принимаем решения. Кроме того, эти решения будут приняты за разумное время.
И что будете делать, если покинете сообщество?
Хороший вопрос… Я думаю об уходе, думаю, какие последствия это будет иметь для меня, для моей семьи. Но пока я еще размышляю над ответом на этот вопрос.
Вас когда-нибудь беспокоило появление очередного перспективного языка программирования, который привлекает всеобщее внимание?
Меня это не беспокоит. Я вижу циклы, по которым изменяется популярность систем, языков программирования и ПО в целом. Она приходит и уходит. Я не знаю, что будет с Python через 5 или 15 лет, но я уверен в одном: Python не исчезнет в одночасье. Я надеюсь, что язык до сих пор имеет большие перспективы, он вбирает в себя новые идеи и адаптируется к новому окружению.
Возможно, на каком-то этапе появится какой-то проект, который позаимствует ряд идей у Python и других языков программирования, переработав их в каком-то другом ключе.
Как изменились перспективы Python после того, как вы отрастили бороду? Насколько успех языка коррелирует с длиной бороды?
Борода абсолютно необходима. Посмотрите на судьбу Perl — всё дело в идеальном выбритом подбородке Ларри Уолла.