Python, динамический язык программирования, всегда сталкивался с проблемами повышения скорости и эффективности. Однако последние разработки, представленные на PyCon 2023 в Солт-Лейк-Сити, штат Юта, демонстрируют эволюционное будущее Python, обещая более быстрое и эффективное развертывание. В предстоящей версии Python 3.12 будет представлен целый ряд улучшений, демонстрирующих революционные изменения в оптимизации языка.
Марк Шеннон, основной разработчик Python в Microsoft, и другие докладчики на PyCon 2023 пролили свет на многочисленные инициативы, направленные на сокращение использования памяти Python, ускорение интерпретатора и оптимизацию компилятора. Например, заголовок объекта в Python был сокращен с 208 байт до 96 байт, что позволяет хранить больше объектов в памяти и улучшает локальность кэша.
Адаптивная специализация - еще одна ключевая разработка, которая будет представлена в Python 3.12. По словам Брандта Бухера, основного разработчика Python, новые адаптивные инструкции байткодов Python 3.11 будут усовершенствованы в последней версии. Эти инструкции могут заменять версии, специфичные для типов Python, во время выполнения, тем самым упрощая работу интерпретатора и ускоряя весь процесс. Усовершенствования в Python 3.12 включают дополнительные опкоды адаптивной специализации и упрощенную специализацию опкодов.
Валютность - давняя проблема Python, и Python 3.12 направлен на ее решение с помощью введения субинтерпретаторов и глобальной блокировки интерпретатора (GIL) для каждого интерпретатора. В докладе основного разработчика Python Эрика Сноу было рассмотрено это решение, которое способствует лучшему использованию нескольких ядер с меньшими компромиссами, налагаемыми потоками, асинхронностью или многопроцессорностью. Вместо удаления GIL, механизм субинтерпретатора позволяет нескольким интерпретаторам работать вместе в рамках одного процесса, при этом каждый интерпретатор имеет свой собственный GIL. Более того, в Python 3.12 в стандартной библиотеке появится минимальный модуль под названием interpreters, который позволит программистам эффективно использовать субинтерпретаторы.
Такие усовершенствования не только ускоряют работу Python, но и помогают защитить внутреннее устройство языка на ближайшие годы. Одним из вопросов, решаемых в этой связи, является очистка и абстрагирование многочисленных API CPython на языке Си, которые были открыты основным разработчиком Python Виктором Стиннером. Сохранение публичных API в закрытом виде обеспечивает меньшее прямое взаимодействие с внутренними компонентами CPython и уменьшает зависимость от потенциальных изменений версии. Также появился сторонний проект HPy, предлагающий более стабильный, эффективный и абстрактный C API для Python разных версий и приносящий пользу таким проектам, как NumPy и ultrajson.
Эти революционные усовершенствования в Python 3.12 не только обещают более быстрые, эффективные с точки зрения памяти и адаптируемые развертывания, но и открывают двери для ранее невозможных улучшений. Релиз может существенно повлиять на разнообразный ландшафт платформ разработки и языков программирования, включая платформу AppMaster, которая позволяет легко создавать веб-, мобильные и бэкэнд-приложения с помощью решений no-code. Воплощая в жизнь развивающееся будущее, Python намерен совершить революцию в производительности и эффективности, обеспечивая существенные преимущества для разработчиков во всем мире.