Pull to refresh
8
0.1
Send message

Мемо: в ожидании Python 3.14

Финальный релиз Python 3.14 запланирован на 7 октября 2025. Уже вышел RC2 (14 августа), а финальный кандидат RC3 ожидается 16 сентября.
Этот пост — краткая шпаргалка, чтобы помнить, какие изменения стоит протестировать и чего ждать в новой версии.

1. Свободная многопоточность (Free-Threaded Python, без GIL)

Зачем нужно: наконец-то полноценный параллелизм и многопоточность на многоядерных системах без глобальной блокировки интерпретатора.

# Включение free-threaded режима при сборке
# ./configure --disable-gil
import threading

def cpu_bound_task(n):
    return sum(i*i for i in range(n))

threads = [threading.Thread(target=cpu_bound_task, args=(10**6,)) for _ in range(4)]
[t.start() for t in threads]
[t.join() for t in threads]

Free-Threaded Python теперь не будет экспериментальным и будет официально поддерживаться, но пока пока будет являться опциональным, по умолчанию остаётся GIL.

2. Отложенная оценка аннотаций типов

Зачем нужно: ускорение работы и избавление от кавычек при forward references. Появился новый модуль annotationlib для работы с аннотациями.

# from __future__ import annotations
import annotationlib

class Node:
    def __init__(self, value: int, next: Node | None = None):
        self.value = value
        self.next = next

print(annotationlib.get_annotations(Node.__init__))

Аннотации больше не обрабатываются при определении функций, классов и модулей. Они сохраняются в специальных функциях аннотирования и обрабатываются при необходимости.
Импорт from future import annotations можно удалить при поддержке Python 3.14 и новее.

3. Template-строки (t-строки)

Зачем нужно: безопасное форматирование строк, полезное для веба и DSL, расширение возможностей f-строк.

name = "<script>alert('xss')</script>"
age = 25

tpl = t"Hello {name}, you are {age}"
safe = tpl.format(name=escape_html(name), age=age)
print(safe)

4. Zstandard-сжатие

Зачем нужно: современный алгоритм сжатия, быстрее gzip и удобнее для больших блоков данных.

import compression.zstd

data = b"Large dataset" * 1000
compressed = compression.zstd.compress(data, level=3)
decompressed = compression.zstd.decompress(compressed)

print(f"Ratio: {len(data) / len(compressed):.2f}")

5. Удалённая отладка процессов

Зачем нужно: можно подключать отладчик к работающему приложению без перезапуска и накладных расходов.

import sys
import pdb

# Подключение отладчика к работающему процессу
sys.remote_exec("""
import pdb; pdb.set_trace()
""", target_pid=12345)

# Безопасное выполнение кода в удаленном процессе
result = sys.remote_exec("print('Debug info:', some_variable)", target_pid=12345)

6. Экспериментальный JIT-компилятор

Зачем нужно: ускорение выполнения вычислительно интенсивных задач.

# Включается флагом при запуске
# python --jit script.py

def fibonacci(n):
    if n <= 1:
        return n
    return fibonacci(n-1) + fibonacci(n-2)

# JIT автоматически оптимизирует "горячие" функции
result = fibonacci(35)  # Заметно быстрее с JIT

7. REPL с подсветкой синтаксиса

Зачем нужно: удобнее писать и отлаживать код прямо в интерактивной оболочке.

>>> def hello(name: str) -> str:
...     return f"Hello, {name}!"
>>> hello("World")
'Hello, World!'

Что стоит попробовать?

  1. Потестировать free-threaded режим на CPU-нагруженных задачах.

  2. Перейти на новый синтаксис аннотаций без кавычек.

  3. Проверить t-строки в веб-шаблонах и DSL.

  4. Протестировать zstd для больших массивов данных.

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

Подробнее на python.org: What’s new in Python 3.14

Tags:
Total votes 3: ↑3 and ↓0+4
Comments0

Windows 10 — 10 лет

Ровно 10 лет назад, 29 июля 2015 года, Microsoft официально выпустила Windows 10. Не планировал писать об этом отдельно, но, не увидев ни одной публикации на Хабре, решил опубликовать этот короткий пост.

Хотя сам я почти не пользовался Windows 10 — уже более 15 лет на Linux, — она всё же стояла в дуалбуте на моём старом ноутбуке и иногда использовалась, чтобы что-то скомпилировать под Windows. Как ни крути, это всё равно важная веха в истории компьютерного мира.

Казалось бы, совсем недавно все решали, стоит ли обновляться с Windows 7 до "десятки". Некоторые уже успели попробовать "плиточную" Windows 8 и ломали голову, что ещё "инновационного" придумает Microsoft. Однако, вопреки опасениям, в Windows 10 вернулся более классический интерфейс.

Издания наперебой писали, почему Windows 10 стала быстрее, безопаснее и почему обязательно нужно обновиться. На форумах шли горячие споры: кто-то держался за Windows 7, а кто-то уверял, что человечество ничего лучше XP ещё не придумало.

Затем случился неожиданный поворот: Microsoft внезапно развернулась в сторону Open Source, стала нанимать известных разработчиков из Linux-сообщества, появилась WSL.

А вот Microsoft уже похоронила Skype...

Казалось, всё это было совсем недавно.

Windows 10 уже исполнилось 10 лет.

Tags:
Total votes 6: ↑3 and ↓30
Comments6

Information

Rating
4,475-th
Registered
Activity