Выпущен новый релиз языка программирования 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)
о нет, только не это :)

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

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

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

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

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

См. также

CES 2021: главные анонсы первой технологической выставки года

Новость Инновации ИТ-новость Микроэлектроника

CES (Consumer Electronics Show) в Лас-Вегасе традиционно открывает год на мировом рынке технологий. Из-за ограничений, связанных с пандемией, выставку провели онлайн, но это не помешало производителям представить интересные новинки.

сегодня в 13:50    1194    user1015646    0       

Представлен GitLab 13.7: автооткат при сбоях и улучшенная проверка мердж-реквестов

Новость git Автоматизация ИТ-новость Новости компаний

Компания GitLab выпустила новый релиз платформы для работы с Git-репозиториями. В GitLab 13.7 добавили 45 новых функций, в том числе автоматический откат при сбоях и инструмент проверяющих для запросов на слияние.

22.01.2021    1587    user1015646    0       

Red Hat заменит CentOS бесплатной Red Hat Enterprise Linux

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

Red Hat в декабре объявила о прекращении поддержки CentOS 8 в 2021 году. Это вызвало волну негодования среди разработчиков, но теперь всё встало на свои места: компания представила бесплатные версии Red Hat Enterprise Linux для команд.

21.01.2021    1899    user1015646    0       

Российские исследователи представили новый фреймворк для работы с большими данными

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

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

21.01.2021    1449    user1015646    2       

Конец Flash: Adobe стала блокировать динамический контент

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

Компания Adobe блокирует Flash-контент на веб-сайтах, которые используют Flash Player. Разработчик больше не поддерживает устаревшую и небезопасную технологию.

21.01.2021    1508    user1015646    0       

Новая система находит ошибки при разработке ПО в режиме реального времени

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

Специалисты исследовательской группы SOM Research Lab разработали инструмент проверки моделей программного обеспечения, который находит ошибки непосредственно в процессе создания модели, а не после ее завершения.

20.01.2021    2107    user1015646    0       

Искусственный интеллект научился обыгрывать людей, не зная правил игры

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

Британская компания DeepMind представила новую разработку в сфере искусственного интеллекта. Система MuZero успешно обыгрывает опытных спортсменов и геймеров, даже не зная правил игры.

20.01.2021    1971    user1015646    2       

Тетрис помог повысить заполняемость отелей

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

Алгоритм RoomTetris, разработанный исследователями из LION Laboratory (Learning and Intelligent Optimization) – Лаборатории обучения и интеллектуальной оптимизации, избавит отельеров от овербукинга. Вдохновением для ученых послужила игра «Тетрис».

19.01.2021    1611    user1015646    5       

Нейросеть научили создавать изображения по текстовому описанию

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

Разработчики компании OpenAI представили нейронную сеть DALL-E. Она анализирует англоязычный текст и создает изображения на его основе.

19.01.2021    1830    user1015646    0       

Разработчики портируют Linux на Mac с процессором M1

Новость Linux Микроэлектроника

Компания Apple представила первые компьютеры на базе процессоров M1 собственной разработки. Разработчик Гектор Мартин решил создать сборку Linux специально для этих компьютеров. 

18.01.2021    1128    user1015646    4       

10 стартапов в области машинного обучения, за которыми стоит следить в 2021 году

Новость Искусственный интеллект Стартапы

По данным Crunchbase, в 2020 году компании, связанные с искусственным интеллектом и машинным обучением, получили рекордное финансирование – 28 млрд долларов. Представляем список из 10 самых перспективных стартапов в этой области.

18.01.2021    1492    SKravchenko    0       

Fujifilm и IBM создали ленточный накопитель с рекордным объемом памяти

Новость Дата-центры ИТ-новость Облачные технологии

Fujifilm и IBM повысили емкость ленточных накопителей до рекордных 580 терабайт информации. Это значительно превосходит максимальную емкость SSD – 100 ТБ и жестких дисков – 30 ТБ.

13.01.2021    1438    user-programmist    0       

Эксперты назвали 10 навыков для ИТ-специалистов, которые обеспечат прибавку к зарплате

Новость Автоматизация Аналитика Искусственный интеллект ИТ-новость

Зарплаты в ИТ-сфере – одни из самых высоких, и у специалистов здесь существует масса возможностей для роста. Специалисты компании Burning Glass определили, какими навыками должны обладать сотрудники, нацеленные на максимальную прибавку к зарплате.

12.01.2021    1602    user1015646    2       

Против монополии: Apple получила патент на поисковый алгоритм

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

Apple начала активно разрабатывать собственную поисковую систему. Из-за возможных антимонопольных санкций США против Google компания Тима Кука может лишиться возможности пользоваться сервисами поискового гиганта.

11.01.2021    889    VKuser24342747    0       

FreeBSD перевела репозиторий на Git

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

FreeBSD откажется от использования системы контроля версий Subversion (SVN) и перейдет на Git. Об этом в рассылке объявил разработчик Уорнер Лош.

30.12.2020    1507    user1015646    0       

Вышла бета-версия Go 1.16

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

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

30.12.2020    2031    SKravchenko    0       

Microsoft позволит создавать пользовательские функции в Excel

Новость Infostart Software Partners Маркет

В Excel появилась новая функция – LAMBDA – для превращения пользовательских формул в многоразовые функции. Пользователи смогут создавать правила для управления данными внутри Excel, так же, как и в любом другом языке – Java, PHP или Python.

29.12.2020    2301    SKravchenko    2       

Microsoft и МТС планируют совместно развивать российский интернет вещей

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

МТС и Microsoft договорились совместно развивать российский интернет вещей путем интеграции платформы для разработки решений интернета вещей Microsoft Azure IoT Central и сети интернета вещей NB-IoT МТС.

28.12.2020    1324    user-programmist    1       

Bloomberg оценил компанию JetBrains в $7 млрд

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

По данным Bloomberg Billionaires Index, стартап JetBrains стоит около 7 млрд. долларов. В отличие от технологических компаний, которые продают акции для поддержки развития, руководители JetBrains не полагаются на средства венчурных капиталистов.

28.12.2020    1435    SKravchenko    0       

Cloudflare станет хостинг-провайдером для статических сайтов JAMstack

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

Cloudflare запустила сервис Pages для создания сайтов при помощи подхода JAMstack. Веб-ресурсы, разработанные при помощи платформы, будут опубликованы в существующей сети провайдера CDN.

25.12.2020    1224    VKuser24342747    0       

GitHub откажется от аутентификации по логину и паролю

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

Крупнейший хостинг репозиториев кода GitHub пересмотрит политику аутентификации. Пароли перестанут поддерживать – их полностью заменят токены и SSH-ключи.

24.12.2020    1385    user1015646    2       

В Telegram появятся платные функции

Новость ИТ-новость Мессенджеры

Основатель Telegram Павел Дуров рассказал о будущем мессенджера. Команда разработчиков планирует внедрить платные функции, чтобы компенсировать расходы на развитие сервиса.

23.12.2020    1657    user1015646    0       

Составлен рейтинг приложений для предустановки на смартфоны и умные ТВ

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

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

23.12.2020    1528    user1015646    4       

Microsoft запатентовала технологию оценки эффективности совещаний

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

Microsoft реализует системы мониторинга сотрудников для оценки производительности организации. Одно из последних решений компании – вычислительная система Meeting Insight от Microsoft, которая способна создать «оценку качества» проведенного совещания.

22.12.2020    1993    capitan    1       

Octoverse 2020: GitHub опубликовал главный отчет года

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

Крупнейший хостинг репозиториев кода GitHub назвал 2020-й «годом экстраординарных изменений». Переход на удаленку повысил продуктивность работы команд и позволил уделять больше времени проектам с открытым исходным кодом.

22.12.2020    1978    user1015646    0