«Всё фигня, давай по новой»: почему Гвидо ван Россум создал Python
Он начал с набора юного электроника, выучил двенадцать языков программирования и за три недели накодил Python.
Кадр: Guido van Rossum | Creator of Python / TFiR / YouTube
Гвидо ван Россум
об авторе
Голландский программист и автор Python, самого популярного языка программирования по рейтингу TIOBE. До 2018 года его звали великодушным пожизненным диктатором, потому что он полностью контролировал развитие Python.
Гвидо ван Россум работал в Google и Dropbox, в 2019 году вышел на пенсию, заскучал и устроился в Microsoft.
В интервью для Oxford Union Гвидо ван Россум рассказал, как пришёл в программирование, почему ему не нравились готовые языки и как он создал Python. Он рассуждает, комфортно ли работать в Google и Dropbox, в чём роль опенсорсных проектов и как IT-сообщество должно измениться, чтобы туда пришло больше женщин. Мы послушали и решили пересказать вам :)
Как я стал программистом
Примерно в 1966 году, когда мне было десять лет, родители подарили мне набор юного электроника. Я был в восторге, но сверстники не понимали, что в этом интересного.
Уже к концу школы я стал настоящим ботаником. В моём классе было ещё двое таких ребят. Физика казалась нам увлекательной и лёгкой, поэтому мы не ждали остальных и читали учебник наперёд, сидели на последней парте и говорили про свои проекты.
Тогда я интересовался только цифровой электроникой и не разбирался в аналоговых схемах. В принципе, я и до сих пор боюсь паять.
В 1974 году, когда мне было 18 лет, я разработал свою схему и написал о ней статью для голландского журнала любителей электроники. Как ни странно, текст напечатали — это была моя первая публикация.
В том же году я поступил в Амстердамский университет. Между математикой и физикой я выбрал первое, но продолжал увлекаться цифровой электроникой. Магазинные калькуляторы казались мне примитивными, поэтому я проектировал свой.
Когда я учился, в подвале математического факультета стоял мейнфрейм. Вернее, это была куча проводов, которую подключили к чужому мейнфрейму, — университет выделял студентам машинное время, чтобы они учили программирование. Стоило заглянуть в подвал один раз, и я начал проводить там много времени.
Я хотел изобрести калькулятор, но мейнфрейм был самым идеальным калькулятором из всех. У меня бы не получилось придумать машину лучше, поэтому я решил стать программистом и устроился на работу. Мне там так нравилось, что я чуть не бросил учёбу.
Затем я освоил все языки, которые были в то время: сначала Algol 60 и Fortran, а после них Pascal, Algol 68 и пару других, о которых мало кто слышал. Это было очень увлекательно — я уволился с первой работы только в 1982 году.
Как я создал свой язык программирования
Следующие двенадцать лет я работал в Центре математики и информатики (CWI) в Амстердаме. Первые четыре года мы с коллегами улучшали язык ABC.
Здесь очень пригодились университетские знания и двенадцать языков программирования, которые я выучил сам. Это помогало разобраться в каждой проблеме: как сделать язык эффективным и удобным для пользователя, как реализовать интерпретаторы, компиляторы и парсеры.
Но ABC не стал популярным, поэтому проект свернули, а всех программистов перебросили на другие задачи. Так я попал в новую команду и начал разрабатывать распределённую операционную систему Amoeba.
Amoeba мы писали на C и Shell-скриптах с нуля — там был примитивный эмулятор UNIX, но копировать её исходный код мы не могли, потому что в то время UNIX ещё не была опенсорсной.
На разработку приложений уходило много времени — спустя несколько лет я подумал, что мог бы писать код быстрее, если бы у меня был новый язык программирования. Я понял, что нам нужен язык, который будет где-то между Unix shell и C. Он был бы похож на ABC, но с доработками.
В 1989 году на Рождество нам дали две недели выходных, и я решил заняться своим проектом. Днём я работал в CWI, а утром и вечером садился за домашний Macintosh с компилятором С.
За три месяца я с нуля создал Python: разработал синтаксический анализатор, компилятор байт-кода, внедрил ООП, длинные целые числа, кортежи и строки.
Некоторые вещи в Python я сделал точно как в ABC, что-то реализовал по-другому или заимствовал у С и Pascal.
Когда я закончил рабочую версию, я показал её коллегам из офиса. Им понравилось, и они целый год помогали мне улучшить интерпретатор языка. Хоть я и не ожидал, но во второй половине 1990 года многие учёные и программисты из CWI писали скрипты на Python.
Почему я всё делал не ради денег
Деньги никогда не были для меня главными, я просто наслаждался работой. В научном центре не унижали сотрудников и давали им много свободы. Если ты трудишься над операционной системой, неважно, создал ты для неё новый язык программирования или написал утилиту резервного копирования — все говорили, что это круто. Пока ты делал свою работу, начальство всё устраивало.
А к открытому исходному коду я привык, ещё когда учился программировать в подвале Амстердамского университета. Я был счастлив от того, что мой код приносил кому-то пользу. У меня даже получилось написать несколько программ, которые часто пригождались другим пользователям мейнфрейма.
Многие не подозревают, что постоянно сталкиваются с открытым исходным кодом, когда пользуются смартфоном или сидят в интернете. Он нужен, чтобы программное обеспечение развивалось. Когда есть возможность, своим кодом делятся даже разработчики таких консервативных компаний, как Apple и Microsoft.
В чём преимущества Python и каким он станет в будущем
Если взять для примера Java или Swift, то они подойдут разработчикам, которые учили информатику и уже умеют писать программы. А Python могут освоить даже двенадцатилетние дети. Он пригодится тем, кому нужно обрабатывать много данных.
Некоторые языки быстро развиваются только в первые годы, а потом их никто не обновляет. Я считаю, что Python развивается стабильно, и мы прислушиваемся к пользователям.
В 2008 году мы поменяли синтаксис языка и предложили пользователям перейти с Python 2 на Python 3 до 2015 года, но мы даже не думали, что будет столько недовольных. Казалось, люди просто перепишут свой код, но его было очень много. Нам пришлось сделать версии обратно совместимыми, а потом продлевать поддержку Python 2.7 до 1 января 2020 года.
Нравится ли мне культура корпораций
В крупных компаниях атмосфера не та, что в маленьких. Я проработал в Google семь лет и ушёл в Dropbox, потому что в то время он был гораздо меньше.
Google очень большой. Бывало, что над одной проблемой работали две команды, которые даже никогда друг о друге не слышали, пока на них не обращал внимание вице-президент. А потом они начинали спорить, чьё решение самое правильное.
Еда и медстраховка в Google были лучше, но за это приходилось мириться с бюрократией и внутренней политикой, которая тебе не всегда нравится.
Как IT-сообщество должно измениться ради женщин
Сфера STEM недружелюбна к женщинам и меньшинствам. Некоторые до сих пор считают, что женщинам труднее даётся математика, хотя этого никто ещё не подтвердил. Чтобы ситуация стала лучше, комьюнити должно поменять свою культуру.
Каждый год в США проводят конференции по Python. Одна из них — PyCon, которую мы запустили в 2003 году. Там часто выступали женщины, но потом мы заметили, что их становилось всё меньше и меньше.
В 2011 году несколько женщин начали исправлять ситуацию, и к 2016 году доля докладов спикеров-женщин выросла с 1% до 40%. Среди Core-разработчиков Python их по-прежнему очень мало, но мы стараемся улучшить ситуацию и приглашаем женщин присоединиться к команде.