Выпущен новый релиз языка программирования Python 3.9

14.10.2020     

5 октября Python Software Foundation выпустила Python 3.9. Раньше команда Python придерживалась 18-месячного цикла разработки и выпуска, но теперь перешла на годовой цикл. Python 3.9 внес существенные изменения как в сам язык, так и в способы его разработки.

Python переходит на годовой цикл выпуска

До этого момента Python разрабатывался и выпускался с периодичностью в восемнадцать месяцев.

Переход на годовой цикл означает, что в каждом выпуске будет меньшее количество функций, но при этом пользователи получат более быструю обратную связь по тестированию функций и меньше потенциально критических изменений. Следовательно, у пользователей и менеджеров дистрибутивов появится больше стимулов к частому обновлению Python. Это также означает, что внедрение новых функций займет не так много времени.

 

 

Новая временная шкала показывает, что Python 3.10, который 19 мая 2020 года официально перешел на стадию предварительной разработки альфа-версии, будет выпущен в октябре 2021 года.

Введение парсера на основе PEG

Python 3.9 предлагает заменить текущий синтаксический анализатор на основе LL(1) на высокопроизводительный и более стабильный синтаксический анализатор грамматики PEG. Эта замена снимет текущее ограничение грамматики LL(1). Синтаксический анализатор PEG отличается от своего предшественника тем, что не зависит от контекста, и оператор выбора упорядочен.

Код старого парсера пока сохранен и может быть восстановлен при помощи флага «-X oldparser» или переменной окружения «PYTHONOLDPARSER=1». Но в выпуске 3.10 он будет удалён.

Улучшения многопроцессорности и AsyncIO

В многопроцессорность и asyncIO было внесено много именений. Например, параметр reuse_address из asyncio.loop.create_datagram_endpoint() удален из соображений безопасности. Кроме того, говоря о библиотеке multiprocessing, в класс multiprocessing.SimpleQueue был добавлен новый метод close() для явного закрытия очереди.

Изменения словаря и строковых функций

Python вводит два новых оператора слияния | и |= для словаря. Один для объединения двух словарей в новый словарь, а другой для обновления содержимого одного словаря другим словарем. Конфликты ключей будут разрешены путем сохранения самого правого значения, которое соответствует текущему поведению аналогичных операций dict, где последнее обнаруженное значение является более важным.

Что касается строк, были добавлены две новые функции. Первая str.removeprefix(префикс) может использоваться для удаления префикса, тогда как str.removesuffix(суффикс) может использоваться для удаления суффикса. Ожидается, что с введением новых функций API станет более последовательным, описательным и стабильным.

Поддержка часового пояса IANA

Модуль Zoneinfo предназначен для поддержки базы данных часовых поясов IANA, которая теперь добавлена в стандартную библиотеку. По умолчанию модуль zoneinfo будет использовать часовой пояс системы. Однако, если часовой пояс системы недоступен, библиотека будет применять tzdata в качестве часового пояса.

Повышенная скорость

Python 3.9 включает два больших обновления, которые повышают производительность без изменений в существующем коде.

Первое связано с использованием протокола vectorcall, представленного в Python 3.8. Vectorcall ускоряет вызовы многих общих функций за счет минимизации или исключения временных объектов, созданных для вызова. В Python 3.9 функция vectorcall была расширена для нескольких встроенных модулей, таких как range, tuple, set, frozenset, list и dict.

Вторым важным средством повышения производительности является новый инструмент анализа исходного кода Python. Новый анализатор для выполнения CPython устраняет внутренние несоответствия и обеспечивает быстрый синтаксический анализ для больших объемов кода.

Новые операции типа Python

В новой версии Python программы аннотаций были упрощены за счет удаления иерархии параллельных типов. Теперь он включает поддержку универсального синтаксиса во всех стандартных коллекциях. Вместо typing.List или typing.Dict в сигнатуре функции можно использовать встроенные типы коллекций list или dict в качестве универсальных типов.

Декораторы теряют некоторые ограничения

Декораторы позволяют оборачивать функции Python, чтобы программно изменять их поведение. Ранее декораторы могли состоять только из символа @, имени (например func) или имени, разделенного точками (func.method), и одного вызова (func.method(arg1, arg2)). Одним из давних способов обойти это ограничение было создание функции или лямбда-выражения, которое заменяло более сложное выражение при использовании в качестве декоратора.

В Python 3.9 декораторы теперь могут состоять из любого допустимого выражения.

Улучшения внутреннего устройства Python

Очистка, доработка и модернизация внутренних компонентов Python – это то, над чем постоянно работают разработчики Python. В Python 3.9 есть пара таких изменений:

Переработка способа взаимодействия модулей с импортированным кодом. Модули расширения Python, написанные на C, теперь могут использовать новый механизм загрузки, который заставляет их вести себя больше как обычные модули Python при импорте.

Несколько модулей в стандартной библиотеке Python уже поддерживают это поведение: abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, operator, resource, time, _weakref.

Новый механизм загрузки не только позволяет Python более гибко обрабатывать модули расширения, но также предоставляет новые возможности, такие как расширенное поведение подключения.

Стабильный внутренний ABI для CPython. Исторически каждая крупная версия Python была несовместима с ABI предыдущих версий, что требовало перекомпиляции модулей расширения для каждой новой версии. С этого момента любые модули расширения, использующие стабильный ABI, будут работать в версиях Python.

В Python 3.9 следующие модули стандартной библиотеки используют стабильный ABI: audioop, ast, grp, _hashlib, pwd, _posixsubprocess, random, select, struct, termios, zlib.

Brython 3.9

6 октября был опубликован релиз проекта Brython 3.9, который представляет собой реализацию языка Python 3 для выполнения на стороне web-браузера. Он позволяет использовать Python вместо JavaScript в качестве языка сценариев для Интернета. Brython адаптирован к среде HTML5 с интерфейсом для объектов и событий DOM.

Скорость выполнения аналогична CPython для большинства операций. Библиотеки brython.js и brython_stdlib.js дают возможность использовать язык Python для определения логики работы сайта на стороне клиента. Для включения Python-кода на страницы применяется тег <script> с mime-типом text/python.

Напомним, что в июле этого года Python обогнал Java в рейтинге языков программирования Developer Ecosystem Survey 2020.

Автор:
Сергей Кравченко Обозреватель


Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. brr 179 14.10.20 09:31 Сейчас в теме
Хотелось бы прочитать такую новость про язык 1С
Степной; +1 Ответить
2. XAKEP 14.10.20 09:59 Сейчас в теме
(1)
о нет, только не это :)

тут релизы платформы как перчатки меняют

--------------------

раньше при СССР и США была гонка вооружений

---------------------------------------------------
теперь смотрю гонка версий во всем

начиная от версий языков программирования :)
Оставьте свое сообщение

См. также

Правительство утвердило разработку российского аналога GitHub

Новость ИТ-новость Цифровая экономика

Премьер-министр Михаил Мишустин на форуме Kazan Digital Week анонсировал создание отечественного репозитория, аналогичного GitHub. Проект реализуется в рамках второго пакета поддержки ИТ.

22.09.2021    5951    VKuser24342747    10       

Microsoft присоединилась к Open Infrastructure Foundation для развития облаков

Новость ИТ-новость Новости компаний Облачные технологии

Microsoft стала платиновым членом организации Open Infrastructure Foundation. Компания будет представлять интересы своих телекоммуникационных клиентов в OpenStack.

15.09.2021    3661    VKuser24342747    0       

Microsoft разрешит устанавливать Windows 11 на старые компьютеры

Новость Windows ИТ-новость Новости компаний

Microsoft пересмотрела правила установки Windows 11, которые не позволяли использовать ОС на компьютерах, не соответствующих системным требованиям. Для инсталляции придется создать загрузочный диск.

14.09.2021    2827    VKuser24342747    0       

Оплата лицом заработает на всех станциях метро Москвы

Новость Искусственный интеллект ИТ-новость Цифровая экономика

В столичном метрополитене внедряют систему FacePay. С 15 октября оплатить проезд можно будет, не доставая смартфон, карту или жетоны из кармана.

14.09.2021    2383    user1015646    2       

«Яндекс» представил технологию автоматического перевода любых видео на русский язык

Новость ИТ-новость Яндекс

«Яндекс» сделал функцию автоматического закадрового перевода иностранных роликов доступной для почти любых видео в интернете. Функция встроена в фирменный браузер компании.

13.09.2021    2446    VKuser24342747    4       

Исследователи синтезировали выразительную устную речь

Новость Искусственный интеллект ИТ-новость

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

10.09.2021    9044    user1015646    0       

GitHub выпустил веб-редактор кода: возможности, о которых вы могли не знать

Новость GitHub Автоматизация Интернет ИТ-новость

Начинающим программистам часто сложно настроить среду разработки и установить весь необходимый софт. Для них, а также для специалистов, которые работают в распределенных командах, GitHub запустил новый сервис github.dev.

10.09.2021    5261    user1015646    0       

Раскрыта дата релиза Windows 11

Новость Windows ИТ-новость Новости компаний

Microsoft официально объявила, когда станет доступна новая версия самой популярной десктопной ОС. Обновиться с Windows 10 до Windows 11 можно будет уже 5 октября 2021 года.

09.09.2021    8732    user1015646    0       

В Google научились увеличивать изображения в 16 раз с восстановлением деталей

Новость Искусственный интеллект ИТ-новость

Раньше увеличить видео с камер наблюдения в десятки раз получалось только у героев фильмов. Но теперь такая возможность существует и в реальной жизни – инженеры Google разработали прорывную технологию масштабирования изображений.

09.09.2021    4244    user1015646    3       

Эксперты подготовили рекомендации по использованию кириллицы в доменах и почте

Новость Интернет ИТ-новость

Рабочая группа представила стандарты внедрения, обработки, хранения, валидации и адаптации кириллических символов для программ, поддерживающих доменные имена и email-адреса.

07.09.2021    2853    VKuser24342747    0       

Госструктуры перейдут на российские системы видеоконференций

Новость Импортозамещение ИТ-новость Облачные технологии

Российских чиновников переводят на использование отечественного сервиса видеоконференций. Будут внедрять систему TrueConf на базе ОС Astra Linux и процессоров Baikal-M от «Байкал Электроникс».

03.09.2021    3211    user1015646    0       

Минэкономики раскритиковало требования к обновлению оборудования для суверенного Рунета

Новость Импортозамещение Интернет ИТ-новость Телекоммуникации

Минэкономики пришло к выводу, что требования Минцифры затормозят развитие связи в России. По мнению специалистов ведомства, возможным последствием может стать ухудшение интернет-услуг провайдеров.

03.09.2021    2615    VKuser24342747    0       

Разработчики назвали любимые языки программирования

Новость ИТ-новость Языки программирования

Крупнейший форум для разработчиков Stack Overflow составил рейтинг любимых языков программирования. Первую строчку списка занял молодой, но перспективный Rust.

02.09.2021    5247    user1015646    3       

Петербургские ученые обучили нейросеть находить вредоносных ботов в соцсетях

Новость Безопасность Искусственный интеллект ИТ-новость Соцсети

Сотрудники Санкт-Петербургского федерального исследовательского центра Российской академии наук (СПб ФИЦ РАН) создали решение для поиска ботов, размещающих спам и дезинформацию на любом языке.

02.09.2021    2307    VKuser24342747    1       

Windows Server исключается из эксперимента по поставке обновлений Microsoft WaaS

Новость Windows ИТ-новость Новости компаний Облачные технологии

По результатам четырехлетнего эксперимента Windows as a Service Microsoft решила, что больше не будет обновлять Windows Server несколько раз в год. Для серверной ОС было решено вернуться к практике обновления каждые 2-3 года.

01.09.2021    5402    SKravchenko    0       

Microsoft добавила в Power BI инструменты аналитики для Angular-приложений

Новость Аналитика ИТ-новость

Microsoft представила новый компонент для создания веб-сервисов аналитики данных. Он позволит интегрировать функции Power BI в Angular-приложения.

31.08.2021    3284    user1015646    0       

Windows 11 лишится нескольких функций предыдущей версии системы

Новость Windows ИТ-новость

Microsoft в бета-версии Windows 11 изменила привычные функции. Из ОС исчезло отображение секунд на часах и возможность быстро добавлять события в календарь, а кнопка «Пуск» переместилась в центр панели задач.

31.08.2021    4954    VKuser24342747    6       

GitHub в версии утилиты CLI 2.0 добавил поддержку расширений

Новость GitHub ИТ-новость Новости компаний

Разработчики GitHub представили вторую версию утилиты для управления проектами при помощи командной строки CLI. Приложение поддерживает несколько стандартных расширений и создание собственных.

27.08.2021    6488    VKuser24342747    0       

Круглая дата: ядру Linux исполнилось 30 лет

Новость Linux ИТ-новость Новости компаний

Ядро Linux отмечает юбилей. О создании новой ОС 21-летний Линус Торвальдс объявил 25 августа 1991 года.

27.08.2021    4684    user1015646    2       

Искусственный интеллект научился распознавать изображения лучше человека

Новость Искусственный интеллект ИТ-новость

Алгоритм компьютерного зрения впервые превзошел человека. В экспериментах людям и системе искусственного интеллекта предлагали определить, что изображено на фото, и ответить на вопросы. Результат ИИ оказался выше, чем у человека.

26.08.2021    3691    user1015646    5       

Facebook представил криптобиблиотеку для разработчиков – Winterfell

Новость ИТ-новость Новости компаний

Специалисты Facebook выпустили новую библиотеку Winterfell. Проект с открытым исходным кодом может генерировать доказательство вычислительной целостности STARK.

24.08.2021    4707    user1015646    3       

В GitHub добавлена поддержка цитирования из репозиториев

Новость GitHub ИТ-новость

GitHub позволил использовать файл CITATION.cff, в котором можно указать, как правильно ссылаться на содержимое репозитория при написании академических публикаций.

24.08.2021    5067    VKuser24342747    0       

GitHub официально представил новую версию «Обсуждений»

Новость GitHub ИТ-новость

GitHub заявил о завершении бета-тестирования обновленной версии раздела Discussions. Релизный вариант площадки для обсуждений репозиториев разрабатывался почти год при активном участии сообщества.

23.08.2021    3318    VKuser24342747    0       

Разработчик создал браузерную версию OpenAI Codex для управления веб-страницами

Новость Интернет Искусственный интеллект ИТ-новость

Программист Эндрю Кантино рассказал, что сделал расширение для модификации страниц в Google Chrome, работающее на основе ИИ-ассистента для разработки OpenAI Codex.

23.08.2021    5910    VKuser24342747    0       

Российский разработчик создал эмулятор для запуска приложений iOS на M1 Mac

Новость Mac OS ИТ-новость Мобильные приложения

Программа PlayCover позволяет запускать на компьютерах с операционной системой MacOS любые мобильные приложения для iOS, в том числе игры с поддержкой мыши и клавиатуры.

20.08.2021    6406    VKuser24342747    0