Разочаровавшись в недостатках существовавших языков программирования, Гвидо Ван Россум создал язык Python. Сейчас этот язык используют миллионы людей, и Ник Хит беседует с ван Россумом о прошлом и будущем языка.
Гвидо Ван Россум в штаб-квартире Dropbox в 2014 году
В конце 1994 года группа избранных программистов с разных концов США собралась для обсуждения своего нового секретного оружия.
Барри Уорсо был одним из двух десятков разработчиков, собравшихся на самый первый воркшоп, посвящённый новому языку программирования Python, и вспоминает, насколько явным было радостное возбуждение его первых пользователей.
«Особенно мне запомнился один человек, сказавший: ’Не говорите никому, что я здесь, потому что то, что мы используем питон, является конкурентным преимуществом’. Это было их секретное оружие».
Даже на этой ранней встрече в бюро государственных стандартов США в Мэриленде, как говорит Уорсо, было очевидно, что питон предлагает нечто новое в вопросе лёгкого написания кода и простого достижения результата.
«Когда мне впервые показали питон, я знал, что это нечто особенное. Это было сочетание читаемости и радости от написания кода на питоне», — вспоминает он.
Сегодня энтузиазм по поводу питона распространился далеко за границы этой кучки разработчиков, и некоторые из них предсказывают, что скоро он станет самым популярным языком в мире, поскольку он набирает новых пользователей быстрее любого другого языка. Миллионы людей используют питон ежедневно, и экспоненциальный рост его пользователей не выказывает признаков замедления.
Питон используется для больших и малых задач профессиональными и начинающими разработчиками, и особенно популярен среди веб-разработчиков, специалистов по науке о данных и системных администраторов. Именно с помощью питона в этом году были получены первые изображения чёрной дыры, находящейся в 500 млн трлн км от нас, а также именно на питоне работают написанные на скорую руку бесчисленные скрипты на настольных компьютерах всего мира.
Питон играет главную роль в некоторых из самых известных организаций мира: помогает Netflix отправлять потоковое видео в более чем 100 млн домов по всему миру, лежит в основе феномена фотообменника Instagram и помогает НАСА исследовать космос.
Ранние годы питона
В некоторых аспектах рост популярности питона настолько же сюрреалистичен и удивителен, как популярность британской комедийной группы, в честь которой он был назван, и в своей нише язык стал настолько же известным и влиятельным.
Этот язык программирования появился, как сторонний проект программиста из Нидерландов Гвидо Ван Россума. В конце 1980-х ван Россум работал над распределённой системой в Centrum Wiskunde & Informatica (CWI), нидерландском государственном исследовательском центре математики и информатики. Разочаровавшись недостатками существующих языков программирования, он решил сделать новый – такой, который было бы легко использовать, но при этом обладающий большими возможностями.
Для постороннего человека задача создания собственного языка программирования похожа на заявление вроде «Я построю себе самолёт», но у ван Россума, которому тогда было за 30, была определённая фора. В CWI он три года работал с командой, создавшей ABC, интерпретируемый язык программирования, поэтому у него уже было представление о том, как можно сделать интерпретатор, исполняющий инструкции программиста, и какие синтаксические строительные блоки нужны для нового языка.
Также важно понять, насколько сложно было сделать что-либо при помощи ограниченных возможностей доступных ван Россуму в то время языков программирования. Распределённая вычислительная система Amoeba, с которой он работал, требовала от него использования С или командной строки Unix – у обоих вариантов были серьёзные ограничения. С требовал от разработчиков не только борьбы со сложностями ручного управления памятью и навигации по минному полю возможных ошибок – в нём не было библиотеки кода для повседневных задач разработчика, которую можно было бы использовать многократно, из-за чего разработчикам с каждым новым проектом приходилось заново изобретать велосипед. А у командной строки Unix были свои проблемы – там было большое разнообразие инструментов для распространённых задач, но она работала так медленно, что не справлялась со сложной логикой.
Ограничения, налагаемые этими языками на разработчиков были такими, что создание своего интерпретируемого языка – который взял бы лучшие свойства у ABC – реально казалось Ван Россуму наилучшим вариантом.
«Я, в общем-то, подумал: ’Ну а почему бы мне не создать свой собственный язык’, украв идеи у ABC, но уменьшив размер проекта от того, что мы делали три года, до того, что я сам бы смог сделать за три месяца, и вот так родился питон», — говорит он. Ван Россум по-настоящему начал работать над этим в конце 1989 года, а имя позаимствовал у любимой комедийной труппы "Летающий цирк Монти Пайтона" – ассоциация со змеями и логотип с завязанным питоном появились позже – и работал над проектом по возможности.
«В то время у меня не было богатой социальной жизни. Так что, вместо того, чтобы пялиться в телек, я писал код, или иногда делал и то и то сразу», — признаётся он.
И хотя номинально он создавал питон, чтобы облегчать себе работу, ван Россум понимает, что настоящим мотивом, возможно, была вызов создания собственного языка.
«Не знаю, насколько серьёзно я верил в то, что это сделает меня более продуктивным. Думаю, что я частью просто наслаждался идеей того, чтобы начать свой проект, писать такой код, который мне хотелось, и разрабатывать его так, как я хотел. Мне нравится программировать», — говорит он.
И если для обычного человека идея создания собственного ЯП может показаться необычной, у ван Россума была неплохая компания. В конце 1980-х из-за разочарования в возможностях существующих инструментов появилось множество новых, обретших популярность языков. Знаменитое высказывание Ларри Уолла гласит, что его побудило создать язык Perl сложность решения задач, а также обилие «лени, нетерпения и высокомерия». Поиски лучшего языка для создания интерактивных инструментов проектирования интегральных схем побудили Джона Остерхаута создать Tcl.
Всего за три месяца ван Россум создал рабочий прототип интерпретируемого питона, в котором, по его словам, отсутствовали современные возможности, но в котором уже можно было узнать современную версию языка.
«В сегодняшнем питоне есть много важных абстракций, которых тогда не существовало, но язык был очень похожим», — говорит он.
«В тот момент у меня были все базовые компоненты интерпретатора и языка. Простые программы на питоне, написанные для первой версии интерпретатора, вероятно, будут работать и сегодня», — говорит он, добавляя, что функции определялись так же, отступы работали тем же образом, словари и кортежи создавались идентично, а также там была знакомая интерактивная строка ввода, где можно писать код и сразу получать результаты.
Однако, когда двое его коллег взяли этот язык и сразу начали его использовать, у ван Россума не было больших ожиданий по поводу его широкого распространения – он уже знал, насколько сложно было раскрутить ЯП в предшествовавшую интернету эру.
Сегодня на то, чтобы поделиться софтом со всем миром, уходят несколько кликов. В 1980-х эта задача была гораздо сложнее, и ван Россум вспоминает сложности попыток распространить предшественника питона, ABC.
«Помню в 1985 году я впервые посетил США, поехав в отпуск с магнитной лентой в рюкзаке», — говорит ван Россум.
Гвидо ван Россум в 2001 году, когда был основан Python Software Foundation
Вооружившись адресами и телефонами людей, которые выразили интерес к ABC посредством зачатков электронной почты, существовавшей в то время – и по которой нельзя было пересылать ничего крупного, вроде исходного кода – он ездил от одного адреса к другому, раздавая плёнку. Но, несмотря на все старания, ABC так и не взлетел.
«Неудивительно, что у нас не получилось активно распространить ABC, несмотря на все его чудесные качества», — говорит он. Но интернет-революция набирала обороты, и распространять питон было уже гораздо проще – чемодан с плёнками уже не требовался.
Ван Россум выпустил питона в мир через новостную группу alt.sources в 1991 году, практически на условиях лицензии с открытым кодом – хотя такое понятие появится только через шесть лет. И хотя интерпретатор питона приходилось скачивать с сети Usenet в виде 21-й части, которые потом нужно было собрать в один файл и разархивировать, этот механизм доставки всё равно был куда как более эффективным, чем развоз физических копий, предпринятый за несколько лет до этого.
«Я надеялся на какой-то успех, но у меня уже был опыт выпуска другого проекта, который в итоге обернулся фиаско», — говорит он.
С таким опытом за плечами ван Россум не сразу сделал какие-то выводы из растущей базы пользователей питона. Постепенно он осознал, что набор популярности не прекращается, и в какой-то момент, после регулярных контактов с питон-сообществом он понял, что создал нечто, что может иметь успех.
«По-моему, понимание приходило ко мне очень медленно. После первого выпуска открытого кода я выстроил ритм выпуска следующих версий и взаимодействия с нарождавшимся питон-сообществом. И всё это ощущалось как нечто серьёзное».
Почему питон победил
После того, как язык начал набирать обороты в начале и середине 1990-х, у ван Россума появилось ощущение, что питон оказался языком, чьё время пришло.
Ван Россум считает, что в питоне разработчиков привлекало то же, что заставило его создать этот язык. Им хотелось найти скриптовый язык высокого уровня, обеспечивавший баланс между простотой использования и обилием возможностей, и не имевший таких ограничений, от которых страдала командная строка Unix при работе со сложной логикой. Им хотелось положить конец настойчивым требованиям С возиться с управлением памятью и постоянно заново писать код для одних и тех же базовых задач в начале каждого проекта.
Уорсо говорит, что питон достиг баланса в удобстве использования, не принося в жертву возможности – существовавшие в начале 1990-х языки такого предложить не могли. «Я много программировал на Perl, Tcl и C, и это было не очень интересно. Потом на сцену вышел питон, и я подумал: ’Ого, вот теперь программировать снова интересно’», — говорит он.
Барри Уорсо на первой рабочей встрече пользователей питона в 1994
Питон предлагал, и предлагает, чёткий, недвусмысленный синтаксис, в котором код группируется на блоки через отступы, что облегчает разработчикам задачу понимания кода.
Финтан Райан, директор исследований команды стратегий прикладных платформ из аналитической фирмы Gartner, говорит, что ясность кода сыграла большую роль в завоевании симпатий разработчиков, как сейчас, так и в 1990-х, хотя придание такой важности отступам разделило сообщество. «Оно предлагало очень ясный синтаксис. В других языках тоже можно было писать код так, но питон принуждал к этому автоматически. Некоторые программисты это обожают, а другие ненавидят», — говорит он.
То, что питон ставит на первое место ясный и читаемый код, не случайность – ван Россум говорил, что языки программирования нужны не только для того, чтобы говорить компьютеру, что делать, но и для передачи идей от одних разработчиков другим.
Кроме читаемости, говорит Райан, питон почти сразу предлагал встроенную функциональность, отличавшую его от других языков. «Там была такая функциональность, как классы и обработка исключений. Питон также поддерживал такие функции, как lambda, map и filter, оказавшиеся очень полезными во многих случаях», — говорит он.
Питон мог бы и не появиться, если бы популярные ЯП в 1980-х были бы лучшего качества. Одной из мотиваций ван Россума к созданию питона стала несовместимость скриптового языка Perl и распределённой вычислительной системы Amoeba, над которой он работал в CWI. «Питону повезло с тем, что Perl невозможно было портировать на Amoeba, — говорит он. – Если бы Perl удалось портировать на Amoeba, я бы никогда не задумался о создании собственного языка».
Хотя питон создал после выхода базу истинных приверженцев, в 1990-х он был аутсайдером среди ЯП. Ван Россум говорит, что за первое место соревновались Tcl/Tk и Perl, и у обоих из них была такая же цель, как у питона – простота использования и богатые возможности.
«В 90-х в первой тройке ЯП определённо первое место занимал Perl – он был чем-то вроде 400-килограммовой гориллы – затем шёл Tcl/Tk, а питон занимал скромное третье место», — говорит он.
Сегодня питон растёт быстрее всех остальных ЯП, если считать по активным разработчикам – так следует из ежегодного опроса разработчиков Stack Overflow, одного из наиболее всеобъемлющих обзоров ЯП – а Perl сжался до такого состояния, что его уже не упомянули в последнем отчёте.
Этот взрывной рост показан на графике внизу, где отмечено, как количество просмотров вопросов, связанных с питоном на сайте Stack Overflow выросло быстрее, чем количество просмотров вопросов из других языков.
Так как же питон победил своего давнего соперника, и как объяснить настолько сильно различающиеся судьбы двух ЯП? Ван Россум считает, что в частности это произошло из-за того, насколько легко поддерживать базу кода, когда она выходит за определённые рамки. «Люди считали, что Perl идеально подходил для написания скриптов в 10 строчек, — говорит он. – Но когда у вас есть 500 строк основного кода и несколько тысяч строк в библиотеках, требуется огромная дисциплина для того, чтобы код можно было поддерживать и далее. В питоне при этом, даже если у вас нет такой дисциплины, код будет достаточно легко читать и поддерживать».
Это свойство питона, комбинация простого для начинающих языка, который в то же время достаточно надёжен для того, чтобы писать на нём крупные приложения, ван Россум и относит на счёт его первоначального успеха в 1990-х.
«В интернете было несколько разработчиков – большая часть этой истории относится к ранним этапам развития интернета – которым нужно было писать всё более и более крупные приложения, и которым нравилось, что в питоне на это можно потратить гораздо меньше усилий, чем если использовать C, C++ или Java».
С ростом популярности питона в 1990-х ван Россум, всё ещё работавший в CWI, обнаружил, что его детище всё больше связывает его с людьми со всего мира. «Я сделал нечто, и оно связывало меня с людьми со всего мира – людьми из Австралии, из США, из других европейских стран. Мне это безумно нравилось», — говорит он.
Питон и веб
К середине 1990-х питон начинали использовать по-новому, от скриптов для записи и воспроизведения аудио, до первых набегов языка на веб-разработку, которая в итоге окажется главным оплотом питона.
«Одной из больших областей использования языка была веб-разработка, которая также очень сильно интересовала и меня лично, — говорит ван Россум, и добавляет, что питон начали использовать для создания бэкенд-скриптов на веб-серверах вместе с Perl и скриптами командной строки. – Можно было создавать динамические веб-страницы, и это стало одним из моих любимых применений питона».
Райан из Gartner говорит, что популярность питона среди разработчиков 1990-х закрепило то, что он стал любимым выбором для быстрого создания мощных скриптов. «То, что это был скриптовой язык с обширной функциональностью, снизило барьер вхождения для многих пользователей», — говорит он.
Кроме того, говорит Райан, ЯП был достаточно гибким, и его так легко было выучить, что он нравился очень разным пользователям с разным техническим опытом. «Сисадмины и другие люди начали использовать этот язык для автоматизации систем и программирования, разработчики – из-за таких вещей, как функциональное программирование и классы с наследованием; у Perl, к примеру, было гораздо меньше подобных возможностей, — говорит он. – После того, как люди знакомились с языком, а кривая обучения у него была довольно пологой, они очень быстро начинали выходить на высокий уровень продуктивности».
К 1994 году питон привлёк внимание Майкла Маклэя, одного из руководителей в государственном бюро стандартов США (NBS), которое сегодня преобразовалось в государственный институт стандартов и технологий (NIST). Предвосхитив любовь к питону исследователей и учёных за простоту его использования, Маклэй заинтересовался тем, смогут ли использовать питон учёные из NBS, у которых, как говорит ван Россум, «были собраны значительные объёмы данных, но не было хороших программистов».
Чтобы помочь продать идею использования питона другим членам бюро, Маклэй пригласил ван Россума, который тогда ещё работал в CWI в Нидерландах, чтобы пару месяцев поработать в NIST в качестве приглашённого исследователя. Это стало катализатором будущей эволюции питона и серьёзно изменило жизнь ван Россума.
Именно в то время была проведена первая рабочая встреча пользователей питона, которая прошла в офисах NBS, и на которой ван Россум, Барри Уорсо и другие первые энтузиасты питона встретились, чтобы обсудить, как они используют питон, и какие надежды возлагают на его будущее развитие.
Ван Россум на первой рабочей встрече пользователей питона, вместе с Уорсо и Роджером Массе, в то время работавшим вместе с Уорсо в CNRI.
В офисах NBS ван Россум познакомился с Бобом Каном, известным своей ролью в разработке одной из основных технологий интернета, протокола TCP/IP.
На встрече ван Россуму предложили поработать с Каном в корпорации государственных исследовательских инициатив (CNRI), некоммерческой исследовательской группе из Виргинии, занимавшейся стратегической разработкой сетевых технологий.
Как питон откликнулся на необходимость в новом типе ЯП, так и предложение о работе, по словам ван Россума, поступило как раз в тот момент, когда он задавался вопросами о своём будущем в CWI.
«CWI был более академической организацией, они постоянно давили на меня, чтобы я либо защитил докторскую, либо нашёл работу где-то ещё», — говорит он.
«Меня не очень радовала перспектива заниматься докторской диссертацией в 35 лет. До этого, также благодаря питону, у меня появилось несколько других возможностей, когда после нескольких телефонных звонков и времени на раздумья я решил их отмести. Но здесь мне нравились люди, мне нравилось их предложение, проект – и я воспользовался предложением».
Именно в CNRI ван Россум скомпоновал многие структуры, необходимые для управления ЯП питон, при помощи команды из таких же энтузиастов языка. Устроившись в CNRI в апреле 1995 года, ван Россум стал руководить небольшой командой разработчиков, работавших над ПО Knowbot Programs, мобильными агентами, разработанными для запуска на распределённых компьютерных системах типа интернета.
Команда работала на языке питон, и к ван Россуму присоединились Джереми Хилтон, Роджер Массе, Барри Уорсо, Кен Мангеймер и Фред Дрейк – все они позже сыграют важные роли в питон-сообществе.
«У нас получилась группа из 4-10 человек, большая часть которых работала в CNRI, и они стали ядром разработки питона», — говорит ван Россум.
Пока ван Россум работал в CNRI, эта команда помогла ему сделать сайт python.org, CVS-сервер для управления изменениями базы кода, и список рассылки для Python Special Interest Groups – групп, работавших над улучшением и поддержкой ЯП питон.
Сообщество пользователей питона с момента его выхода в 1991 году сильно выросло, и во второй половине десятилетия этот язык привлёк значительную базу пользователей со всего мира. В этот период началась формализация управления языком, разработчики основали предшественника Python Software Foundation (PSF), которая появится в 2001. С ростом сообщества проходившие два раза в год рабочие встречи по языку, начавшиеся в 1994 году, превратились в более крупные ежегодные мероприятия, а в итоге – в ежегодный PyCon от PSF, который проводится и по сей день.
К началу XXI века язык перерос возможности любого отдельного человека, крупное сообщество играло активную роль в разработке языка – долгий путь был пройден с лета 1994 года, когда ранние пользователи языка беспокоились, что с ним случится, «если Гвидо собьёт автобус».
Но ван Россум продолжал играть ключевую роль, и не перестал оставаться ядром языка – это очевидно из шутливого прозвища "великодушного пожизненного диктатора" (BDFL), существующего уже много лет.
«По большей части довольно долго я справлялся с давлением, а также выработал навыки по управлению проектами, которые позволили мне делегировать множество вещей, и дать людям контроль над их собственной судьбой», — говорит ван Россум.
Райан из Gartner говорит, что нет ничего необычного в том, чтобы создатель языка оставался его распорядителем, как Ларри Уолл с Perl и Райан Дал с Node.js, однако он уточняет, что ван Россум известен своей объективностью в управлении питоном. «Что касается направления развития проекта и управления им, все признают его очень сбалансированным», — говорит он.
Именно открытый характер разработки питона, с использованием публичных обсуждений сообщества и ключевых разработчиков, ван Россум считает решающим фактором успеха питона.
Эволюция питона
В промежуточных годах питон совершил гигантские шаги, в 2008 году был представлен модернизированный Python 3.0, а в последнее время в управлении языком наметились серьёзные изменения. Они начались в прошлом году, когда ван Россум уступил лидирующую роль на посту BDFL, после того, как сообщество разделило предложение ввести в язык присвоения в выражениях, обсуждение которых было сделано в заявке Python Enhancement Proposal PEP572.
Новую возможность ввели, чтобы писать более эффективный код, но ван Россум столкнулся с серьёзной критикой этого предложения со стороны противников изменений – некоторые из них утверждали, что его использование ухудшит читаемость кода и усложнит его поддержку.
Ван Россум говорит, что привык спорить по поводу нововведений, однако в данном случае непримиримость некоторых клеветников и характер личных оскорблений заставили его отказаться от должности.
«Меня разочаровало то, как не согласные с предложением по техническим причинам люди уходили в соцсети и начинали разглагольствовать о том, что процесс принятия решений сломан, или что я делаю серьёзную ошибку. Было такое ощущение, будто меня атакуют со спины», — говорит он.
«В прошлом всегда было ясно, что если в языке нужно было сделать изменение или улучшить какую-то возможность, то куча ключевых разработчиков соберутся и обсудят преимущества и недостатки нововведения. И тогда либо вырабатывался явный консенсус, либо всё было не так ясно, и тогда я обдумывал это предложение, и выносил решение. А с PEP572, хотя предложение и было спорным, я решил, что хочу его утвердить, и люди не согласились договориться о том, что мы не договорились. Это был не то, чтобы бунт, но мне показалось, что у меня нет доверия со стороны достаточного числа ключевых разработчиков, чтобы продолжать работу».
Он считает, что изменение процесса разрешения споров произошло, в частности, из-за того, какое огромное количество людей используют сегодня питон.
«Вероятно, всё дело в том, насколько крупным стало сообщество питона. Сложнее достичь какого-то соглашения, поскольку всегда найдутся сторонники противоположных точек зрения, что бы ты ни решил».
Ранее в этом году ключевые разработчики питона – поддерживающие и обновляющие интерпретатор CPython – выбрали управляющий совет, который должен планировать будущее языка. Туда вошли ван Россум, Уорсо и их коллеги Бретт Кэннон, Кэрол Уиллинг и Ник Коглан. Уорсо говорит, что это изменение было необходимым, чтобы управлять языком с настолько быстро растущей базой пользователей.
«Думаю, Гвидо реально казалось, что он держит на своих плечах весь мир в одиночку, — говорит он. – Это прокатывало 25 лет назад, когда сообщество питона было гораздо меньше, и язык был меньше, но сегодня это слишком много для одного человека, понимаете? Думаю, что чисто для здоровья и возможности участвовать в действиях сообщества, хорошо было распределить эту нагрузку на пятерых», — говорит Уорсо.
Первые выборы в управляющий совет будут проходить после каждого выхода новой версии питона, что, по словам Уорсо, проложит путь следующему поколению лидеров. «Если питон будет жив через 25 лет, то им уже будем управлять не мы с Гвидо, понимаете?» – говорит он.
Организацию управляющего совета приветствовало и сообщество ключевых разработчиков. Один из них, Мариатта Виджайа, говорит, что это действие кажется шагом в верном направлении. «Управляющий совет лучше одного человека, принимающего все решения – это слишком большая ответственность и груз, — говорит она. – Это хороший признак, и благодаря этому у сообщества будет больше входящей информации».
Один из ключевых разработчиков, Мариатта Виджайа
Будущее питона
Хотя питон продолжает привлекать непомерное количество новых пользователей, некоторые члены сообщества видят впереди трудности, и считают, что языку надо эволюционировать с тем, чтобы оставаться актуальным.
На встрече пользователей ЯП питон в этом году сооснователь BeeWare Рассел Кит-Мэги предупредил всех, что питон столкнётся с «экзистенциальным риском», если не улучшит поддержку мобильных и новых веб-платформ. «Телефоны и планшеты так сильно проникают на рынок, что настольным компьютерам и ноутбукам такого и не снилось, и при этом у сообщества нет идей по поводу того, как можно использовать питон на этих устройствах, — сказал он, указывая на то, что его сын использует iPad в школе. – Что будет с питоном, когда ноутбуки окажутся нишевыми устройствами?»
Кит-Мэги, чей проект BeeWare нацелен на то, чтобы единожды написанную на питоне программу можно было запускать где угодно, выкатил список проблем, которые сейчас есть у питона в области поддержки платформ, отличных от стандартных ПК x86.
Он указал на следующие недостатки: необходимость улучшения поддержки компилируемого кода для новых платформ, не совместимых с x86; набор тестов питона падает на мобильных и веб-платформах; установочный размер питон-приложений раздут и его нельзя урезать до небольшого подмножества зависимостей; необходимость потратить усилия на доработку библиотеки asyncio для работы с GUI под Android, Windows и в вебе; количество модулей в стандартной библиотеке, несовместимых с интерпретаторами питона, отличными от CPython.
Уорсо говорит, что Кит-Мэги говорит правильные вещи, и считает важным вопросы, связанные с обновлением питона для новых платформ – телефонов, планшетов, новых веб технологий типа WebAssembly.
«Пока что питон ничего хорошего предложить не может, — говорит Уорсо насчёт мечты о возможности скачать приложение для iPhone или Android, и „даже не узнать, что оно написано на питоне“.
С ростом количества ядер процессора в современных чипах (до 48 ядер в последних серверных процессорах от Intel) Уорсо также с нетерпением ждёт, когда питон лучше научится распределять задачи по нескольким ядрам.
Ему очень интересен потенциал работы Эрика Сноу над субинтерпретаторами и тем, как они могут расширить возможности питона по одновременной работе процессов. „Мне бы очень хотелось увидеть больше работы по поводу использования всех преимуществ многоядерных систем“, — говорит он.
Сноу работает над долгосрочным проектам, облегчающим питону эффективно разбивать задачи между несколькими ядрами процессора. При этом он сконцентрировался на использовании переработанной версии такой интересной возможности питона, как субинтерпретаторы и изменении того, как каждый из субинтерпретаторов взаимодействует с глобальным блокировщиком интерпретаторов (GIL).
»Для Python 3.8 он ещё не успеет подготовиться, возможно, это будет в версии 3.9, — говорит Уорсо. – Думаю, мы увидим это в ближайшие два-два с половиной года. Я настроен оптимистично. Очень рад, что Эрик продолжает работать над этим, поскольку считаю это важным".
Он говорит, что даже из провалившихся проектов поддержки многопоточного питона, к примеру, The Gilectomy, можно извлечь интересные уроки, связанные с тем, как питон может стать лучше, распределяя работу между ядрами.
Питон-сообщество также предпринимает шаги к модернизации стандартной библиотеки языка со встроенным кодом, и недавно опубликовало предложение об удалении устаревших модулей из неё; это ответ на недавнюю критику о состоянии стандартной библиотеки питона. Она обычно считается одной из сильных сторон языка, её можно использовать для решения широкого спектра обычных задач, поэтому часто говорят, что у питона «батарейки в комплекте». Однако на встрече питон-разработчиков в этом году был задан вопрос, не лучше ли позволить людям выбирать библиотеки из репозитория PyPI, вместо того, чтобы поставлять всю эту функциональность вместе с языком в качестве стандартной библиотеки.
Также были вопросы о том, не сможет ли группа лиц, руководящих разработкой языка – ключевые разработчики и управляющий совет – лучше отражать разнообразную базу пользователей питона в 2019 году. «Мне бы хотелось увидеть лучшее отображение для разнообразных метрик, не только в плане гендерного баланса, но и по расам, и по всему остальному», — говорит Виджайа.
«Я говорил на PyCon с девушками из группы PyLadies, из Индии и Африки. Они сказали: ’Когда люди слышат про питон или PyLadies, они представляют себе людей из Северной Америки или Канады, а на самом же деле в других частях света тоже имеется обширная база пользователей. Почему их видно так редко?’ И это мне кажется разумным. Поэтому я бы хотел увидеть такое, и думаю, что мы все должны принять в этом участие».
В итоге, несмотря на шутливую идею с заведующим всеми вопросами «великодушным диктатором», в последние годы все идеи, изменявшие питон, появились за счёт сообщества, говорит Уорсо, благодаря людям, использующим питон по максимуму, и открывающим двери для новых пользователей. «Реально всё происходит снизу вверх, со стороны сообщества, а не наоборот», — говорит он.
В качестве примера того, как простые проекты сообщества могут серьёзно влиять на питон, можно привести Type Hints – особенность Python 3.5, вдохновлённая проектом mypy, запущенным аспирантом в 2012 году. Эти «намёки» позволяют проводить необязательную проверку типов, что позволяет разработчикам отлавливать ошибки особого типа, которые иначе могли бы ускользнуть от них.
В этом году питон помог собрать из кусочков первое изображение чёрной дыры
Этот дополнительный уровень безопасности – не просто интересная возможность, если у вас есть проект, в котором множество людей трудится над большой базой кода. Дополнительный уровень понимания того, что код должен и не должен делать, может сыграть решающую роль.
«Тот факт, что это позволяет питону масштабироваться для нужд более крупных компаний – таких, как Instagram, который, по сути, работает на базе Python 3 – для меня просто бесценен», — говорит Уорсо, упоминающий asyncio как ещё один пример идеи, поданной сообществом, которая может серьёзно повлиять на возможности языка.
С управляющим советом и самой большой базой пользователей за всё время ван Россум оптимистично считает, что «эволюция языка благодаря сообществу» будет продолжать добиваться «невероятных успехов».
«У нас есть весьма плотное сообщество ключевых разработчиков, у которых появилась новая система правления, и я думаю, что мы лучше подготовлены к тем запросам, которые поступают к питону и его эволюции», — говорит он, нахваливая глубокое понимание конкретных аспектов языка, существующее в сообществе.
Если у кого-то есть сомнения по поводу возможности сообщества находить неожиданные новые варианты использования языка, вам достаточно будет изучить роль питона в получении первого изображения чёрной дыры, говорит Уорсо.
«Это просто снесло мне крышу. В питон-сообществе есть пара человек, которых я считаю нашими безумными учёными. Они всегда пытаются раздвинуть границы возможностей языка».
Автор: Вячеслав Голованов