Сравнение Python 3.13.3 и Python 3.12: ключевые отличия
Python 3.13.3 (выпущен 8 апреля 2025 года) представляет собой значительное обновление по сравнению с еще недавно новой версией Python 3.12. Сразу хочется отметить долгожданное многими разработчиками отсутствие GIL. Но начнем по порядку. Вот основные различия между этими версиями:
1. Производительность и многопоточность
-
Экспериментальный режим без GIL: Python 3.13 впервые предлагает экспериментальную сборку без Global Interpreter Lock (GIL), что позволяет потокам работать более параллельно на многоядерных процессорах. В 3.12 такой возможности не было.
-
JIT-компилятор: Добавлен экспериментальный JIT-компилятор (PEP 744), который может значительно ускорить выполнение кода. В 3.12 JIT отсутствовал.
-
Улучшенный сборщик мусора: В 3.13 внесены оптимизации в работу сборщика мусора, что особенно полезно для долго работающих приложений.
2. Интерактивный интерпретатор (REPL)
Python 3.13 получил полностью обновленный интерактивный интерпретатор на основе кода из PyPy с новыми возможностями:
-
Многострочное редактирование с сохранением истории.
-
Подсветка синтаксиса и трассировок по умолчанию.
-
Нативные команды help/exit/quit без вызова как функций.
-
Режим вставки для больших блоков кода (F3).
В Python 3.12 эти улучшения отсутствовали.
3. Сообщения об ошибках и отладка
-
Более точные и информативные сообщения об ошибках, включая подсказки при конфликте имен модулей.
-
Улучшенная подсветка трассировок стека цветом по умолчанию.
-
Более понятные подсказки при неправильных именах аргументов функций.
4. Типизация и аннотации типов
Python 3.13 добавляет несколько новых возможностей для системы типов:
-
typing.ReadOnlyдля пометки полей TypedDict как доступных только для чтения. -
Декоратор
warnings.deprecated()для маркировки устаревшего кода. -
Улучшенная поддержка вариативных generics и типизированных исключений.
5. Стандартная библиотека
-
Новый модуль
dbm.sqlite3как backend по умолчанию для DBM. -
Удаление 19 устаревших модулей ("мертвые батарейки" из PEP 594).
-
Улучшения в модулях
argparse,copy,base64и других. -
Поддержка записи TOML в
tomllib(в 3.12 была только чтение).
6. Платформенная поддержка
-
WASI теперь поддерживается как платформа уровня 2.
-
Добавлена поддержка iOS и Android (уровень 3).
-
Повышен минимальный поддерживаемый уровень macOS до 10.13
7. Прочие улучшения
-
Оптимизация docstrings (удаление начальных отступов) для экономии памяти.
-
Новый C API для работы с системным временем и легковесные мьютексы.
-
Улучшенная поддержка асинхронного кода.
Производительность: тесты
Согласно тестам на процессорах AMD Ryzen 7000 и Intel 13-го поколения:
-
В среднем Python 3.13 показывает прирост производительности 5-15%.
-
Наибольший прирост (до 60%) наблюдается в асинхронных операциях ввода-вывода.
-
Некоторые синтетические тесты показывают замедление до 4%.
Вывод
Python 3.13.3 предлагает значительные улучшения по сравнению с 3.12, особенно в области производительности (JIT, режим без GIL), интерактивной работы (новый REPL) и системы типов. Однако некоторые функции пока остаются экспериментальными и могут быть нестабильны. Для production-окружений рекомендуется тщательное тестирование перед переходом.