Перевели большой текст The New Stack о планах создателя Python Гвидо ван Россума по доработке этого языка на ближайшие годы.
Создатель Python Гвидо ван Россум хорошо помнит, чем он занимался перед тем, как присоединиться к Microsoft в ноябре 2020 года. Проработав в Dropbox семь лет, он сильно устал и решил уволиться, чтобы путешествовать с женой, ездить на велосипеде и встречаться с друзьями. Вместо этого началась пандемия коронавируса, и ему пришлось сидеть дома.
В этом интервью он рассказал о своей последней работе, направленной на ускорение работы компилятора CPython. О начале этого проекта он объявил на второй виртуальной конференции PyCon US 2021 во время специального двухдневного «Python Language Summit».
«На пенсии мне стало скучно сидеть дома во время пандемии. Я подал заявку на работу в Microsoft, и меня туда взяли. Мне дали свободу в выборе проекта. Я решил вернуться к своим корням и развивать Python», — рассказал ван Россум.
Гвидо ван Россум планирует заниматься развитием CPython — сердца Python, реализацией этого языка по умолчанию, а также его основного интерпретатора и компилятора для кода.
Почему он не ушел в машинное обучение
Ускорение работы CPython не входило в планы ван Россума, когда он только присоединился к Microsoft. В течение первых нескольких месяцев он просто встречался в компании с разными людьми, которые работают с Python — особенно в области машинного обучения. Так он искал сферу, где хочется работать — и понял, что машинным обучением ему заниматься просто не интересно.
Гвидо ван Россум называет машинное обучение «очень большой областью», рост которой способствовал развитию Python. Также он считает, что сфера машинного обучения «стала успешной в том числе благодаря Python. Тут случился очень удачный симбиоз».
При этом ван Россум признал, что он один из тех людей, которые на протяжении своей жизни игнорировали машинное обучение. «Я точно знаю, как создать веб-сервер на Python, веб-клиент, или что-то еще, работающее с базами данных или пользовательскими интерфейсами. Но я понятия не имею, как написать фреймворк для машинного обучения или как сделать простое приложение для машинного обучения», — рассказал он.
Ван Россум пытался разобраться в этой сфере и разговаривал со «всеми умными людьми в области машинного обучения в Microsoft», но понял, что ему нужно потратить как минимум четыре года на докторскую степень, чтобы он смог создать что-то действительно полезное для области машинного обучения.
«В конце концов я решил, что вернусь к своим корням, соберу команду людей и начну работать над тем, чтобы сделать Python быстрее», — сказал он.
Сейчас в Microsoft уже работают пять разработчиков ядра Python — помимо ван Россума: Эрик Сноу, Бретт Кэннон, Стив Дауэр и Барри Уорсо. Их команда уже внесла «несколько изменений в Python 3.10, и теперь у них есть время, чтобы внести новые правки в Python 3.11, чтобы он стал намного быстрее предыдущих версий.
Читайте также: Как гитарист стал биологом, а потом придумал философию современных компьютеров. История Алана Кея
Как будет развиваться Python
Ван Россум признает, что другие группы уже работают над ускорением CPython, в том числе Cinder — ориентированный на производительность форк CPython в Instagram. Также над ускорением работы языка работают разработчики из проекта Pyston и создатели Pyjoin. «Поэтому ускорение Python внезапно вернулось на первую полосу всех технологических газет», — говорит ван Россум.
Ван Россум также взял к себе в команду разработчика из Microsoft Марка Шеннона — в октябре 2020 он выложил на GitHub код, который должен был в пять раз ускорить работу CPython по сравнению с предыдущими версиями. В основном ускорение работы CPython должно было происходить благодаря адаптивному интерпретатору, улучшению среды выполнения и целевым компиляторам.
Также в команду ван Россума входит Эрик Сноу, который самостоятельно разрабатывал возможность поддержки в CPython нескольких интерпретаторов в одном и том же процессе — суб-интерпретаторов. Это должно усилить многопоточные процессы в Python. Ван Россум назвал эту идею «функцией, которая была у нас в течение долгого времени, но у нее были серьезные проблемы». «Постепенно мы переходим к версии языка с несколькими суб-интерпретаторами, где между ними нет общих данных, за исключением того, что все они живут в одном процессе. Между ними даже можно будет эффективно переключаться», — добавил он.
«И в этот момент, когда у каждого суб-интерпретатора будет своя собственная глобальная блокировка интерпретатора, у нас появится другой подход к использованию всех ядер, как в Java или C++», — рассказывает он.
Сейчас команда разработчиков занимается идеями Шеннона об адаптивном интерпретаторе байт-кода, а также изучает другие направления, которые могли бы увеличить скорость работы CPython. Например, компоновку стека кадров, обработку исключения и развитие компилятора.
Ван Россум рассказывает о планах на развитие адаптивного интерпретатора, который может повышать производительность — до 50%. При этом пока непонятно, смогут ли разработчики увеличить скорость работы CPython хотя бы в два раза, а чтобы ускорить работу языка в пять раз «им придется применить творческий подход».
Важно, что разработки ван Россума, несмотря на его работу в Microsoft, будут находиться в открытом доступе на GitHub и все желающие смогут их использовать для своих проектов. Следить за ними можно по ссылкам на GitHub.
Продолжайте учиться: На Хекслете есть большая профессия Python-разработчика с нуля — с большим количеством практики, важнейшими фундаментальными знаниями о программировании, разбором необходимых фреймворков и портфолио из нескольких проектов на GitHub