Профиль: Аноним (вход | регистрация) неRU opennet.me  
OpenNET

[ новости /+++ | форум | теги |    ]

Выпуск языка программирования Python 3.15

10.10.2026 12:59 (MSK)

После года разработки опубликован значительный выпуск языка программирования Python 3.15. Среди изменений: включение по умолчанию UTF-8, отложенная загрузка модулей, оптимизация экспериментального JIT-компилятора, типы frozendict и sentinel, файлы конфигурации для инициализации при запуске, расширение возможностей для профилирования, сборка в режиме "-fno-omit-frame-pointer" и встроенная текстовая игра "whatsnewt". Новая ветка будет поддерживаться в течение полутора лет, после чего ещё три с половиной года для неё будут формироваться исправления с устранением уязвимостей.

Среди новшеств, добавленных в Python 3.15 (1, 2, 3):

  • Модернизирован экспериментальный JIT-компилятор, который теперь позволяет добиться в среднем ускорения на 11-12% на платформе macOS AArch64 и на 7-8% на платформе x86_64 Linux в тестах pyperformance по сравнению со стандартным интерпретатором. При этом в отдельных тестах при включении JIT изменение производительности варьируется от ускорения на более чем 100%, до замедления на 15%. Помимо оптимизации производительности и улучшения генерации машинного кода в новой версии в JIT переработан механизм трассировки, который теперь учитывает реальные последовательности выполнения кода, а не только их прогнозирует, что позволило значительно расширить поддержку операций на уровне байткода. Осуществлён переход на ветку LLVM 21. В генерируемом коде некоторые операции со стеком заменены на работу с использованием регистров CPU. Добавлена поддержка раскрутки стека (unwinding) для GDB и GNU backtrace().
  • В качестве кодировки по умолчанию задействована UTF-8, независимо от системы в которой выполняется код. Все операции ввода/вывода теперь обрабатывают текстовые данные как последовательности UTF-8, если явно не указана кодировка. Для использования параметров текущей локали или иной кодировки следует указывать аргумент "encoding" (например, "open('test.txt', encoding='locale')"). Отключить режим UTF-8 на уровне интерпретатора можно через опцию командной строки "-X utf8=0" или переменную окружения "PYTHONUTF8=0".
  • Добавлено ключевое слово "lazy" для отложенной загрузки модулей, при помощи которой можно ускорить запуск приложений с большим числом зависимостей. При отложенной загрузке модули загружаются непосредственно перед первым обращением к импортируемым именам в коде. До фактической загрузки для модулей создаётся легковесный прокси-объект "types.LazyImportType", отслеживающий обращение к модулям. В случае проблем с загрузкой модуля, например, если модуль не найден, исключение генерируется в момент попытки первого использования, а не во время импорта. Для принудительного отключения отложенной загрузки предусмотрена опция командной строки "-X lazy_imports" и переменная окружения PYTHON_LAZY_IMPORTS, а также функции sys.set_lazy_imports() и sys.get_lazy_imports(). Для выборочной фильтрации модулей, к которым применяется отложенная загрузка, добавлена функция sys.set_lazy_imports_filter().
    
       lazy import json
       lazy from pathlib import Path
    
       print("Starting up...")  # будет запущено не дожидаясь импорта json и pathlib.
    
       data = json.loads('{"key": "value"}')  # перед вызовом будет импортирован модуль json
       p = Path(".")  # перед вызовом будет импортирован модуль pathlib
    
  • Добавлен встроенный тип sentinel для создания уникальных строковых объектов, значения которых не повторяются, при копировании сохраняют идентичность и поддерживают сериализацию.
  • Добавлен встроенный тип frozendict, позволяющий создавать неизменяемые словари, которые можно инициализировать набором значений в момент создания объектов, но нельзя дополнять и изменять в процессе работы. Объекты с типом frozendict сохраняют порядок вставки элементов и могут хэшироваться для использования в качестве ключей в словарях.
  • Добавлена возможность распаковки списочных включений (comprehensions) для списков, множеств, словарей и выражений-генераторов, используя операторы "*" и "**" для совмещения произвольного числа словарей или итерируемых объектов в одну плоскую структуру.
    
       >>> lists = [[1, 2], [3, 4], [5]]
       >>> [*L for L in lists]  # эквивалентно указанию "[x for L in lists for x in L]"
       [1, 2, 3, 4, 5]
    
       >>> sets = [{1, 2}, {2, 3}, {3, 4}]
       >>> {*s for s in sets}  # эквивалентно "{x for s in sets for x in s}"
       {1, 2, 3, 4}
    
       >>> dicts = [{'a': 1}, {'b': 2}, {'a': 3}]
       >>> {**d for d in dicts}  #  эквивалентно "{k: v for d in dicts for k,v in d.items()}"
       {'a': 3, 'b': 2}
    
       >>> gen = (*L for L in lists)  # эквивалентно "(x for L in lists for x in L)"
       >>> list(gen)
       [1, 2, 3, 4, 5]
    
  • Добавлена возможность определения файлов конфигурации для безопасной инициализации пакетов при запуске интерпретатора Python, позволяющих использовать .start-файлы вместо .pth-файлов для выполнения кода на стадии до выполнения запускаемого содержимого. В .start-файлах указываются лишь точки входа в формате pkg.mod:callable, на основе которых Python находит и вызывает указанные функции без аргументов. Подобный подход решает проблему с отслеживанием скрытого выполнения кода при использовании файлов .pth, допускающих выполнение произвольного кода при запуске.
  • Улучшен вывод сообщений об ошибках. Реализован вывод рекомендаций при попытке обратиться к несуществующему атрибуту или удалить его. Например, интерпретатор даст знать, если атрибут отсутствует в объекте, но имеется во вложенном объекте или свойстве. При обнаружении несуществующего типа, имеющегося в JavaScript, Java, Ruby или C#, интерпретатор предложит эквивалент для Python.
    
       >>> print(container.area)
       ...
       AttributeError: 'Container' object has no attribute 'area'. Did you mean '.inner.area' instead of '.area'?
    
       >>> 'hello'.toUpperCase()
       ...
       AttributeError: 'str' object has no attribute 'toUpperCase'. Did you mean '.upper'?
    
  • Добавлен отдельный модуль profiling для доступа ко всем встроенным возможностям профилирования кода в одном пространстве имён (profiling.tracing и profiling.sampling). Реализован новый статистический профилировщик Tachyon (profiling.sampling), позволяющий анализировать производительность с практически нулевыми накладными расходами и поддерживающий профилирование на уровнях байткода и сопрограмм (async/await). В отличие от профилировщика profiling.tracing, в profiling.sampling периодически оценивается состояние стека вызовов, а не анализируется каждый вызов функции.
  • В модуле typing расширены возможности аннотирования типов при помощи классов TypedDict и TypeForm. В TypedDict добавлена поддержка аргументов closed и extra_items для более строгого контроля над структурой словаря. В TypeForm предложена новая форма аннотирования значений, связанных с типами (например, "int", "str | None", классы TypedDict и "list[int]").
    
       from typing import Any, TypeForm
    
       def cast[T](typ: TypeForm[T], value: Any) -> T: ...
    
  • В C API добавлен набор функций PyBytesWriter_* для создания бинарных объектов при разработке расширений на языке Си. Новый API позволяет добавлять данные в уже созданный байтовый буфер и обеспечивает автоматическое выделение памяти и изменение размера буфера. В C API также стабилизирован ABI для сборок без глобальной блокировки интерпретатора (GIL) и реализована защита от проблем, возникающих при завершении работы интерпретатора во время работы многопоточных C-расширений.
  • При сборке активированы флаги "-fno-omit-frame-pointer" и "-mno-omit-leaf-frame-pointer", включающие использование процессорного регистра %rbp в качестве базового указателя на кадр стека, содержащий адреса возврата и переменные функции (frame pointer). Использование указателя на кадры стека позволяет использовать дополнительные возможности для трассировки и профилирования системы.
  • Добавлена встроенная игра с текстовым интерфейсом, знакомящая разработчика с новыми возможностями Python 3.15. В игре предложено 18 головоломок, связанных с новшествами Python 3.15, для решения которых требуется написать и запустить код, использующий эти новшества. Для запуска игры следует выполнить команду "uvx --python 3.15 whatsnewt".

Дополнительно можно отметить начало альфа-тестирования ветки Python 3.16, которая будет находиться на стадии альфа-выпусков в течение семи месяцев, во время которых будут добавляться новые возможности и производиться исправление ошибок (в соответствии с новым графиком разработки работа над новой веткой начинается за пять месяцев до релиза предыдущей ветки и к моменту очередного релиза достигает стадии альфа-тестирования). После этого в течение трёх месяцев будет проводиться тестирование бета-версий, во время которого добавление новых возможностей будет запрещено и всё внимание будет уделяться исправлению ошибок. Последние два месяца перед релизом ветка будет находиться на стадии кандидата в релизы, на которой будет выполнена финальная стабилизация.

  1. Главная ссылка к новости (https://blog.python.org/2026/1...)
  2. OpenNews: В CPython реализована официальная поддержка архитектуры RISC-V
  3. OpenNews: Брешь в инфраструктуре Python, позволявшая подменить ссылки на релизы на сайте python.org
  4. OpenNews: Динамика изменения кодовой базы проекта Python
  5. OpenNews: CPython может сделать Rust обязательной сборочной зависимостью к версии 3.17
  6. OpenNews: Выпуск языка программирования Python 3.14
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/66438-python
Ключевые слова: python
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (70) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.3, Аноним (3), 13:42, 10/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/–
    > В качестве кодировки по умолчанию задействована UTF-8

    А что до этого было в третьебидоне?

     
     
  • 2.6, сиська (?), 14:19, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • –12 +/–
    как обычно - мусорный, однобайтный ansi, скорей всего
     
  • 2.7, Аноним (7), 14:19, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +6 +/–
    Кодировка бралась из системной локали
     
     
  • 3.54, Ананимер (?), 19:31, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/–
    Программисты так и не переключились с парадигмы «кодировка - атрибут архитектуры» на «кодировка - атрибут строки». Ведь это целая лишняя проверка при сравнении строк.
     
  • 2.8, User (??), 14:32, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +8 +/–
    "Ничего". Удивительно, да? Создатели языка считали, что если программист явным образом не изъявил желание написав encoding="utf-8", то параметр определяется платформой\пользователем.
    Хочет человек работать с koi8r - пусть работает, да. Но так как племя молодое, незнакомое о существовании чего-либо отличного от - не в курсе, пришлось вот приколачивать руками.
     
     
  • 3.24, Аноним (24), 15:38, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • –4 +/–
    > Но так как племя молодое, незнакомое о существовании чего-либо отличного от - не в курсе, пришлось вот приколачивать руками.

    Это были тёмные времена, хорошо что они позади. Вот ещё потихоньку отмирают сишные динозавры с мантрой "строка - это массив байт", забирая с собой целую эпоху уязвимостей. В ходе эволюции программирования всякие странные "плавники" и "ложноподии" отращивались, пришло время подчистить тупиковые ветки.

     
     
  • 4.26, Аноним (26), 15:49, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +9 +/–
    А что такое строка, если не массив байт?
     
     
  • 5.36, xPhoenix (ok), 18:07, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    На размышление даётся строка Unicode, где каждый символ закодирован либо одним либо двумя байтами.
     
     
  • 6.42, Тот_Самый_Анонимус_ (?), 18:39, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Что есть вселенское зло. Нигде не нужен одновременно весь массив символов юникода.
     
     
  • 7.45, Аноним (45), 18:49, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > Что есть вселенское зло. Нигде не нужен одновременно весь массив символов юникода.

    Зло-то оно конечно зло. Но бнопня как-то тоже ничем не лучше была.


     
     
  • 8.51, Тот_Самый_Анонимус_ (?), 19:16, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Кодировка с равной длиной символа 8212 вот выход ... текст свёрнут, показать
     
     
  • 9.66, Аноним (66), 20:09, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    Разумеется, у людей лишняя память проставивает, давайте раздуем потребление раза... текст свёрнут, показать
     
  • 7.58, Аноним (66), 19:52, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Что вы предлагаете в качестве замены? По кодировке на каждую программу? Постоянные потери символов? Невозможность использование программы за пределами страны автора?
     
  • 6.87, Аноним (26), 23:28, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    А символы это не байты?
    Т.е получается строка это массив байт, которые инетрпретируются через опред.кодировку
     
  • 6.89, минона (?), 00:49, 11/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > На размышление даётся строка Unicode, где каждый символ закодирован либо одним либо двумя байтами.

    А где это так происходит?

    Хинт: точно не в UTF-8. ЕМНИП, в UTF-8 символ до 6 байтов.

     
  • 5.41, Агл (ok), 18:38, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    это магия
     
     
  • 6.44, Я (??), 18:47, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Волшебство!) Как же раньше, примерно, 30 лет назад все было просто (
     
     
  • 7.63, xPhoenix (ok), 19:58, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    > Волшебство!) Как же раньше, примерно, 30 лет назад все было просто (

    "Просто" было ещё в 2006 году. Matlab в Windows не сохранял проект, если логин пользователя содержал символы за пределами ASCII.

     
  • 5.43, Аноним (45), 18:46, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    > А что такое строка, если не массив байт?

    Строка - это массив символов. И если пытаться работать с ним как с массивом байт, то будет как у классика: "о сколько нам открытий чудных ...".
    Не, можно попробовать спереть машину времени и вернуться в древние времена однобайтных кодировок, но там тоже будут Чудеса (просто другого вида).

     
  • 5.47, iZEN (ok), 18:51, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    В сишке строка — это указатель на структуру в памяти.
    В Паскале строка — это байтовый массив, в нулевом байте которого находится число, указывающее длину строки.
    В Java строка — это ссылка на объект в памяти.
     
  • 5.57, Аноним (66), 19:51, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Почему это строка должна быть массивом? Почему она не может быть списком массивов, или деревом массивов? Во-вторых, с чего вы взяли, что произвольный двоичный поток байтов - это строка? Вот "h\0e\0l\0l\ow" - это строка или не строка? Что насчёт управляющих символов? Почему вы считаете, что это массив, если кодировка не имеет фиксированной длины?
     
  • 4.29, User (??), 16:07, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Ну, пожалуй что спорить и не буду, хорошо.
    И что "позади" - хорошо, и что "отмирают" - замечательно.

    Но в общем-то "были" и вполне объективно пенять змеюке что в 2008 гвоздями не приколотили я, пожалуй, не буду - там и без того весело было.

     
  • 4.35, Аноним (35), 17:43, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    >Вот ещё потихоньку отмирают сишные динозавры с мантрой "строка - это массив байт", забирая с собой целую эпоху уязвимостей.

    "Пользуясь случаем обосру ка я Си". Ничего у тебя не получится. Объективно конкурента чистому Си нет. Си и железо, как муж и жена, просто by design. Человек пишуший на низком уровне поймёт эту аналогию. Rust же настолько развит, что составляет конкуренцию, такому же развитому языку, как C++.

     
     
  • 5.50, iZEN (ok), 19:01, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    >>Вот ещё потихоньку отмирают сишные динозавры с мантрой "строка - это массив байт", забирая с собой целую эпоху уязвимостей.
    > Объективно конкурента чистому Си нет. Си и железо, как муж и жена,
    > просто by design. Человек пишуший на низком уровне поймёт эту аналогию.

    А как же Lisp, Forth, проект Lilith, picoJava?

     
     
  • 6.69, Аноним (69), 20:15, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    >А как же Lisp

    Запомни, Лисп без Лисп-машины - ничто. Лисп, как язык, по настоящему низкоуровневым может быть только на Лисп-машине.

    >проект Lilith

    ПК от покойного Никлауса Вирта? Швейцарская промышленность не заинтересовалась. Спроса нету. Швейцария не Китай. Удел Китая быть штамповкой для всего мира.

    >Forth, picoJava?

    Не знаю. Что-то экзотическое?

     
  • 5.67, Аноним (66), 20:11, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    >Rust же настолько развит, что составляет конкуренцию, такому же развитому языку, как C++.

    Давно в Linux c++ приняли?

     
  • 5.86, Аноним (86), 23:21, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Чл хвалит пистон и обсирает Си, на котором этот самый кривой пистон и написан.
     

  • 1.4, Ivan_83 (ok), 13:49, 10/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/–
    > Добавлена встроенная игра с текстовым интерфейсом

    Ну вот и стало понятно куда оно дальше будет расти.
    Потом дюкнюхема встроят и надо будет бегать баги отсреливать, потом ещё чтонить из квейка, поле непаханное для прогресса ЯП!

     
     
  • 2.5, Ivan_83 (ok), 13:49, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Но следующей должна быть змейка, как же без этого :)
     
     
  • 3.9, Аноним (9), 14:35, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    А потом Doom?
     
     
  • 4.13, BrainFucker (ok), 14:43, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Было такое выражение doom scrolling, а это будет doom coding.
     
  • 4.40, ХрюХрю (?), 18:35, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    потом тетрис
     
  • 3.11, BrainFucker (ok), 14:42, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    Кстати, в советских игровых автоматах вроде как эту игру именно Питоном называли.
     
  • 3.55, Инопланетянин (?), 19:45, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > Но следующей должна быть змейка, как же без этого :)

    На больших уровнях будет тормозить же.

     
  • 2.46, Я (??), 18:49, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    А зачем ещё кампуктер нужен нормальному человеку дома?
     
  • 2.64, Инопланетянин (?), 20:00, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    >> Добавлена встроенная игра с текстовым интерфейсом
    > Потом дюкнюхема встроят

    Ньюка не трож, революционная игра для своего времени. Соврменные питонщики даже с безлимитом токенов такого бы не сделали.

     
  • 2.80, Аноним (80), 22:16, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Потом встроят ИИ прямо вы интерпретатор и он бует работать локально.
     

  • 1.10, inferrna (ok), 14:41, 10/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/–
    Версию 3.16 перепишут с нуля на расте.
    Запомните этот твит.
     
     
  • 2.21, dannyD (?), 15:26, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    ты забыл указать "кто" - m$ )))
     
  • 2.25, Аноним (24), 15:46, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Тем кто пишет на C++ биндинги что на раст, что на жутком си - всё едино.
     
  • 2.27, пох.. (?), 15:55, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    начнут переписывать. Но дальше CoC.md не уйдут.
     
  • 2.37, xPhoenix (ok), 18:09, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Скорей бы. О, сколько нас открытий чудных ждёт, когда код CPython как следует начнут пентестить...
     
  • 2.61, Инопланетянин (?), 19:57, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > Версию 3.16 перепишут с нуля на расте.
    > Запомните этот твит.

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

    Нужно просто взять pypy и назвать это питон 3.17.

     
     
  • 3.68, Аноним (66), 20:12, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    >Нужно просто взять pypy

    Достаточно выкинуть питон целиком, включая pypy, как сразу же и потребление памяти улучшится, и скорость.

     

  • 1.12, BrainFucker (ok), 14:43, 10/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/–
    А для кого новый синтаксический сахар в язык сейчас добавляют, если руками мало кто теперь будет кодить?
     
     
  • 2.62, Инопланетянин (?), 19:57, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > А для кого новый синтаксический сахар в язык сейчас добавляют, если руками мало кто теперь будет кодить?

    Очевидно для уменьшения контекста и расхода токенов.

     
     
  • 3.75, BrainFucker (ok), 21:35, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Экономия на спичках. Можно тогда код обфусцировать или сразу на ассемблере генерить.
     
     
  • 4.82, Инопланетянин (?), 22:24, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > Можно тогда код обфусцировать

    Как обфускация поможет? Если сокращение идентификаторов, то смысла нет. Если запутывание, то еще хуже будет.

    > или сразу на ассемблере генерить.

    Ассемблер наоборот слишком многословный и нетипизированный.

     
  • 4.83, Инопланетянин (?), 22:26, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > Экономия на спичках. Можно тогда код обфусцировать или сразу на ассемблере генерить.

    В целом это больше шутка была. Но изменения синтаксиса для облегчения работы LLM делают, например, в moonbit. Там даже исследования есть.

     
  • 2.70, limafresh (ok), 20:26, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Для тех, кто будет кодить руками.
     
     
  • 3.76, BrainFucker (ok), 21:37, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/–
    Это становится невыносимым, после вайбкода ощущение будто в песочнице в куличики играешь.
     

  • 1.15, Ivan_83 (ok), 14:50, 10/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/–
    > Добавлено ключевое слово "lazy" для отложенной загрузки модулей, при помощи которой можно ускорить запуск приложений с большим числом зависимостей.

    Лучше бы они сделали delay multithread загрузку.
    Типа приложение стартонуло а потом в отдельных потоках оно эти ненужноимпорты подтягивает чтобы когда они потребуются - уже были.

    С lazy это будет постоянное лагалово в непредсказуемых местах.

     
     
  • 2.17, Аноним (17), 15:02, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    Пока не смотрел на 3.15, но вангану еще бОльшую проблему. Если раньше ошибка импорта была в начале загрузки модуля, то теперь ее надо будет ловить в непредсказуемом месте.
     
     
  • 3.18, Ivan_83 (ok), 15:08, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Я не пишу на питоне но у нас в продукте проблема с тем что импорт подгружает биндинг к С либе очень долго, при этом далеко не всегда к этому биндингу обращаются сразу после реалоада воркера.
     
  • 3.19, User (??), 15:12, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    а в новость смотрел?
    "В случае проблем с загрузкой модуля, например, если модуль не найден, исключение генерируется в момент попытки первого использования, а не во время импорта. Для принудительного отключения отложенной загрузки предусмотрена опция командной строки "-X lazy_imports" и переменная окружения PYTHON_LAZY_IMPORTS"(Ц)
     

  • 1.22, Аноним (22), 15:32, 10/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/–
    >После года разработки опубликован значительный выпуск языка программирования Python 3.15. Среди изменений: включение по умолчанию UTF-8

    Питонщики чо за хрень. 2026 год твою мать. Юникод давно стандарт.

     
     
  • 2.31, Аноним (45), 16:15, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    >> Python now uses UTF-8 as the default encoding, independent of the system’s environment. This means that I/O operations without an explicit encoding,
    > Питонщики чо за хрень. 2026 год твою мать. Юникод давно стандарт.

    Эт да, считать что если юзверь выставил что-то другое, то он наверное лучше знает что ему нужно и его не обязательно осчастлививать прогрессом ... ну что со старых прдунов-лдиттов взять? Хорошо что их ушли - прогресс теперь будет семимильными шагами скакать!

    Хотя ж все таки недоработочка:
    > To retain the previous behaviour, Python’s UTF-8 mode may be disabled with the
    > PYTHONUTF8=0 environment variable or the -X utf8=0 command-line option.

    Зачем эти ненужные компромиссы? Пущай лучше все свои скрипты правят с явным указанием кодировки!

     
  • 2.38, Аноним (38), 18:15, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Ага, особенно в Си и С++
     

  • 1.59, Инопланетянин (?), 19:53, 10/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/–
    Ускоряют, что-то ворочают jit, а как был медленный так и оставлся. Сторонний pypy показывает куда более значимые результаты, притом пилится гораздо меньшим кол-вом люлей. Думайте!
     
  • 1.60, Инопланетянин (?), 19:54, 10/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    > В модуле typing расширены возможности аннотирования типов при помощи классов TypedDict и TypeForm

    Скоро по определениям типов переплюнет шаблоны в плюсах, только скорости это не добавит.

     
     
  • 2.72, Аноним (72), 20:35, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Даст возможность почувствовать себя плюсовиком, чем настоящие питоничные питонисты и пользуются.
     

  • 1.65, Аноним (66), 20:08, 10/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/–
    Гвидобейсик нужно не ускорять, а выкидывать, и писать на изначально быстрых язык... большой текст свёрнут, показать
     
     
  • 2.73, Аноним (72), 20:37, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    >Это же нужно было так суметь создать язык программирования, который не смотря на весь влитый в него капитал умудряется стабильно оставаться на дне, по сравнению с остальными популярными языками.

    На написании JIT люди дома покупают, не то, что этот ваш SBCL или форт с асмом внутри.

     
  • 2.88, Самый анонимный аноним (?), 23:33, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Пожалуй, самый наитупейший комментарий из всех. Даже объяснять лень почему. Автор, уйди и не появляйся здесь никогда.
     

  • 1.71, Аноним (72), 20:35, 10/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    >Добавлено ключевое слово "lazy" для отложенной загрузки модулей, при помощи которой можно ускорить запуск приложений с большим числом зависимостей.

    Оно не для ускорения запуска, а для разрешения циркулярных импортов, которыми каждый типичный питонопроект утыкан - ведь пеп8 рекомендует импортировать qualified, а на операцию ресолва члена модуля тратится поход в хеш-таблицу.

     
  • 1.74, Аноним (66), 20:41, 10/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    >В качестве кодировки по умолчанию задействована UTF-8, независимо от системы в которой выполняется код.

    Замечательная обратная совместимость и использование мажорных версий.

     
     
  • 2.78, Аноним (78), 22:05, 10/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    А когда это в питоне была обратная совместимость?
     

  • 1.84, Джон Титор (ok), 22:27, 10/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    Куча проектов до сих пор на 3.10 и 3.11. Почему-то этот Питон настолько несовместимый друг с другом что на более новых версиях не запускается или наоборот. А проекты на нем разработчики не хотят переписывать и используют venv, conda. Ещё мне нравится как там устроены менеджеры пакетов. Но это никого не колышит, главное работает.
     
  • 1.85, аниме эксперт (?), 23:00, 10/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/–
    Сижу на Python 2.7 и не вижу смысла менять, что итак работает.
     
     
  • 2.90, Нонон (?), 01:01, 11/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Надо все равно менять на 3й..
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    XSQUARE
    Inferno Solutions
    Hosting by Hoster.ru
    Хоcтинг: