Это перевод доклада с голландского TED Talks, прочитанного Гвидо Ван Россумом, "великодушным пожизненным диктатором" языка программирования Python. Много автобиографии и немного про значение языков программирования и основную идею Python.


Позвольте представиться — я нерд, гик. И я постоянно медлю. Я закончил университет в 26, мне было 45, когда я женился, сейчас мне 60, и у меня четырнадцатилетний сын. Может, мне просто трудно даются решения: я прожил в США больше 20 лет, но всё ещё имею вид на жительство.


Я не Стив Джобс или Марк Цукерберг. Но в возрасте 35 лет я создал язык программирования, который нашёл своих последователей. То, что произошло после этого, невероятно. Но об этом позже.


В 10 лет родители подарили мне образовательный набор электроники, выпущенный Philips, и он был крут. По началу я просто следовал инструкциям, и всё работало. Позже я начал пробовать создавать собственные цепи: в наборе было целых три транзистора!


Я взял одну из моих моделей, мигающую лампочку, в школу. Но в моём пятом классе всем было всё равно, никто не осознал важности этой конструкции. Я думаю, тогда я впервые понял, что я гик: до этого я просто был умным тихоней.


В старшей школе я всё больше становился нердом — я тусовался с несколькими детьми, также интересовавшимися электроникой, и на уроках физики мы сидели сзади и обсуждали штрих Шеффера, пока все остальные разбирались с законом Ома.


К счастью, наш учитель физики заметил нас, и занял созданием цифрового таймера, который он использовал для объяснения законов гравитации остальному классу. Это был замечательный проект, который показал, что наши умения полезны. Остальные дети всё ещё считали нас странными: в семидесятых многие были бунтарями или курителями "дудки"; остальные уже готовились к успешной карьере докторов, или адвокатов, или менеджеров. Но они меня не трогали, я не трогал их тоже, и в итоге выпустился одним из лучших учеников.


После старшей школы я поступил в Амстердамский университет: он был близко от дома, и для подростка, выросшего в Нидерландах в семидесятых, Амстердам был единственным крутым городом (да, студенческие протесты 1968-го слегка меня зацепили). К большому удивлению моего школьного учителя физики я выбрал математику, но, оглядываясь назад, я не думаю, что была какая-нибудь разница.


В подвале научного корпуса был мейнфрейм, и я полюбил его с первого взгляда. Карточные перфораторы! Построчные принтеры! Пакетная обработка! Я быстро научился программировать на языках вроде Алгола, Фортрана и Паскаля. Сейчас эти названия почти забыты, но они имели большое влияние тогда. Вскоре я снова сидел в конце аудитории, игнорируя лекции и исправляя свои компьютерные программы. А почему?


В подвале, вокруг мейнфрейма, творилось нечто невообразимое. Там была сплоченная группа студентов и сотрудников со схожими интересами, которая обменивалась трюками и секретами. Мы делились процедурами и программами. Мы объединялись в альянсы против обслуживающего персонала мейнфрейма, особенно в играх в кошки-мышки за свободное дисковое пространство (свободное место на диске было действительно священным тогда).


Но главный урок, который я усвоил, был про обмен знаниями: хотя большинство трюков, которые я выучил тогда, умерли вместе с эрой больших компьютеров, идея о ПО, которым необходимо делиться, жива как никогда. Сейчас мы называем это “open source”, и это целое движение. Отметьте это!


Группа разработчиков ОС мейнфрейма набирала нескольких студентов. Они разместили вакансию, я откликнулся, и получил работу. Это было событие, изменившее жизнь! Внезапно у меня появился полный доступ к мейнфрейму (без войн за свободное место или терминалы) и доступ к исходникам его операционной системы, а так же куча коллег, которые объяснили мне, как всё это работает.


У меня была работа мечты: программировать целый день, с настоящими заказчиками — другими программистами и пользователями машины. Моя учёба застопорилась, и я почти бросил колледж, но меня вытянули мой менеджер и профессор, который не отказался от меня. Они подтолкнули меня к завершению нескольких курсов, и в конце концов, с большим опозданием, я стал выпускником.


Я немедленно перешёл на новую работу мечты, которая была закрыта для меня без диплома. Я никогда не терял интерес к языкам программирования, и в целях изучения вступил в команду, разрабатывавшую новый язык программирования — такое не каждый день увидишь. Дизайнеры надеялись, что их язык захватит мир и заменит Basic.


Были восьмидесятые, и Бейсик был выбором для нового поколения программистов-любителей, писавших под микрокомпьютеры вроде Apple II и Commodore 64. Наша команда считала Бейсик вредителем, от которого следует избавиться. Наш новый язык, ABC, должен был “искоренить Basic” — такой у нас был девиз.


Но к сожалению, с маркетингом (или сроками) у нас всё было не очень хорошо, и после четырёх лет ABC был заброшен. С тех пор я убил много часов, пытаясь понять почему проект провалился, хотя и был в нужном месте в нужное время. За исключением того, что язык был слегка избыточным, я пришёл к выводу, что ABC умер просто потому, что тогда не было интернета. Не было обратной связи между создателями языка и его пользова��елями. Дизайн ABC изначально был дорогой с односторонним движением.


Пять лет спустя, когда я копался в остатках ABC в поисках идей для моего собственного языка программирования, я решил устранить недостаток обратной связи. Моим девизом стал “выпускай рано, выпускай часто” (как у чикагских демократов — “голосуй рано, голосуй часто”). И интернет, маленький и медленный в 1990, позволил это сделать.


Если посмотреть на 30 лет назад, то интернет и Open Source (a.k.a Free Software) действительно многое поменяли. Ну и конечно же закон Мура, согласно которому компьютеры становились всё быстрее из года в год. В совокупности всё это изменило взаимодействие между создателями и пользователями компьютерного ПО. Я считаю, что эти события (и то, как я их использовал) привнесли больше в успех “моего” языка программирования, чем мой опыт и навыки программирования.


Также не повредило то, что я назвал свой язык Python — немного невольного маркетингового гения с моей стороны. Я назвал его так в честь комедийного шоу Monty Python’s Flying Circus, и в 1990-м это не повлекло никаких последствий. Сегодня, я уверен, куча фирм по исследованию брендов были бы счастливы выписать большой штраф за то, какие сложные ассоциации такое название может вызывать в подсознании клиента. Но я был просто легкомысленным.


Я обещал не загружать вас технической речью на тему достоинств различных языков программирования. Но я хочу сказать несколько вещей про то, что языки программирования значат для людей, которые их используют — для программистов. Если попросить программиста объяснить простому человеку чт�� такое язык программирования, он ответит, что это способ заставить компьютер делать то, что тебе нужно. Но если это всё, почему программисты так яро обсуждают языки между собой?


В реальности, языки программирования определяют то, как программисты выражают свои идеи и обмениваются ими. Причина: компьютер обработает всё, что угодно, а вот программисты работают с другими программистами, и плохо переданная идея может стать причиной дорогостоящего провала. Фактически, идеи выраженные в языке программирования часто достигают конечных пользователей программы.


Подумайте о невероятном успехе компаний вроде Google или Facebook. В их корне лежат идеи — идеи насчёт того, что компьютеры могут сделать для людей. Чтобы быть эффективной, идея должна быть выражена в компьютерной программе с использованием языка программирования. И язык, который позволит лучше всего выразить идею, даст команде ключевое преимущество, потому что даёт членам команды — людям! — ясность идеи. Идеи в недрах Google и Facebook настолько различны, насколько возможно, и на самом деле избранные этими компаниями языки программирования находятся на противоположных концах спектра дизайна языков программирования.


True story: первая версия Google была написана на Python. Причина: Python был правильным языком для выражения оригинальных идей Ларри Пейджа и Сергея Брина про индексацию веба и организацию результатов поиска. И они смогли реализовать свои идеи на компьютере!


Итак, в 1990-м, задолго до Google и Facebook, я создал собственный язык программирования, и назвал его Python. Но в чём его идея? Почему он настолько успешен? Чем он отличается от других языков программирования? (Почему вы все на меня так смотрите? :-)


У меня много ответов, некоторые технические, некоторые из моего многолетнего опыта и навыков, некоторые просто вроде “был в нужное время в нужном месте”. Но я верю что главная идея — это то, что язык разрабатывался в интернете, изначально открыто, сообществом волонтёров (но не любителей!), которые страстно привязаны к нему.


И это как раз то, о чём раньше была речь в части про подвал научного корпуса.


Сюрприз: как и у любой хорошей мотивационной речи, цель этого доклада — это радость!


Я больше всего счастлив когда чувствую себя частью сообщества. Мне повезло, что я могу чувствовать это и в ежедневной работе (я ведущий инженер в Dropbox). И если я не могу испытывать это чувство, я перестану чувствовать себя живым. Это чувство заразно, и поэтому члены нашего сообщества есть во всём мире.


Сообщество пользователей Python — это миллионы людей, которые сознательно используют его, и им это нравится. Многие активно участвуют в организации конференций — PyCon — в таких удалённых местах как Намибия, Ирак и даже Огайо!


Моя любимая история: год назад я провёл 20 минут на видеоконференции с классом, полным преподавателей и сотрудников Babylon University в Ираке, отвечая на их вопросы по Python. Благодаря усилиям смелой женщины, которая огранизовала такое мероприятие даже в охваченной войной стране, студенты в Вавилонском унивеситете в настоящее время изучают введение в программирование с использованием Python. В своих самых смелых мечтах я никогда не ожидал, что буду влиять на жизни столь далёкие и столь сильно отличающиеся от моей.


И на этой ноте я вас покидаю: язык программирования, созданный сообществом, способствует счастью своих пользователей. В следующем году я, возможно, поеду на кубинский PyCon!