0

Python 3.14 thì có gì?

Mở đầu

Python 3.14 đã chính thức được phát hành vào 7/10/2025 vừa rồi với hàng loạt tính năng và cải tiến mới. Document chính thức của bản phát hành có chi tiết và đầy đủ thông tin, bài này mình sẽ tổng quan nhanh về những thay đổi, cải tiến cùng các chức năng mới thôi nhé.

Như phần lớn các bản release thì việc backwards compatibility (việc khi ra mắt version mới thì các version cũ hơn vẫn tương thích) vẫn hoạt động tốt, tuy nhiên có một số standard library được dọn dẹp lại, bạn có thể check out những thứ bị removed và những thứ deprecated. Thông thường, phần lớn những thứ này là các thành phần mà đa số lập trình viên Python cũng ít dùng đến.

image.png

Release Changes

Free-Threaded chính thức được hỗ trợ

Thay đổi lớn nhất trong lần này là free-threaded đã chính thức được hỗ trợ. Các bản build Python từ giờ sẽ không còn bị ràng buộc bởi GIL - Global Interpreter Lock. Tính năng này đã được đề cập khi release Python 3.13 tuy nhiên là ở dạng thử nghiệm, với 3.14 hiện tại thì đã thành tính năng chính thức, tuy nhiên là tính năng optional tức có thể tùy chọn bật / tắt khi build Python.

Trước đây, Python bị giới hạn bởi GIL. GIL ngăn không cho nhiều thread chạy cùng lúc trong cùng một tiến trình Python. Mục đích của GIL là để bảo vệ vùng nhớ chung (shared memory), giúp Python đơn giản và an toàn hơn khi thao tác trên cùng dữ liệu, tuy nhiên khiến không tận dụng được hết multi-core CPU, gây ảnh hưởng hiệu suất của chương trình.

Free-threaded giờ đây cho phép nhiều thread chạy song song thực sự trên nhiều CPU core. Thay 1 thread thực sự chạy như khi có GIL, giờ bạn có thể có nhiều thread cùng chạy đồng thời, tận dụng được toàn bộ hiệu năng CPU đa nhân.

Just-in-time (JIT) compiler (experimental) cho MacOS và Windows

Python 3.14 giới thiệu trình biên dịch JIT (mới là thử nghiệm thôi) cho các bản Python trên Windows và MacOS. Hiện tại thì JIT compiler KHÔNG được khuyến khích dùng trong môi trường production.

Nếu bạn muốn test thì hãy set PYTHON_JIT=1 trong biến môi trường. Khi bật JIT, Python có thể chậm hơn 10% hoặc nhanh hơn 20% tùy workload 😆.

Lưu ý: Các trình debug/profiler như gdb hoặc perf không thể theo dõi stack JIT, nhưng pdbprofile của Python vẫn hoạt động bình thường.
Ngoài ra, free-threaded build KHÔNG hỗ trợ JIT.

Thay đổi về chữ ký bảo mật

Python 3.14 và các bản mới hơn sẽ không còn sử dụng chữ ký GPG (Pretty Good Privacy).

Thay vào đó, người dùng sẽ phải sử dụng Sigstore verification materials. Python đã bắt đầu ký bản phát hành bằng Sigstore từ phiên bản 3.11.

Cải tiến trong Python Interpreter

Python 3.14 mang đến hàng loạt cải tiến cho trình thông dịch, bao gồm:

PEP - Python Enhancement Proposal: Đề xuất cải tiến Python, là tài liệu mô tả các tiêu chuẩn, tính năng mới, hoặc quy ước chính thức của Python.
Ví dụ PEP 8 - Style Guide for Python Code bao gồm quy chuẩn về cách viết code Python (indent 4 spaces, đặt tên biến, function, class, v.v.).

Hoãn đánh giá annotation (Deferred Evaluation)

Trước đây, annotation (kiểu dữ liệu khai báo trong function/class/module) được đánh giá ngay khi khai báo. Giờ đây, các annotations được lưu trong annotate functions và chỉ được đánh giá trong trường hợp cần thiết, với exception nếu cái from __future__ import annotations được dùng trong module.

Việc thay đổi này nhằm cải thiện hiệu suất và khả năng sử dụng của type annotation của Python. Bạn có thể sử dụng module annotationlib để kiểm tra các defered annotation.

image.png

Nhiều Interpreter độc lập trong cùng tiến trình

Một trong những thay đổi thú vị mới là việc thêm vào multiple interpreters trong standard library, bạn có thể check trong PEP 734. Tính năng này đã tồn tại trong Python 20 năm 💀 tuy nhiên là thông qua C-API.

Với Python 3.14, bạn có thể sử dụng trực tiếp module concurrent.interpreters. Một số tính năng hữu ích của multiple interpreters:

  • Hỗ trợ mô hình concurrency human-friendly hơn.
  • Hỗ trợ đa luồng thực sự trên nhiều nhân (core) CPU.
  • Mỗi interpreter là một tiến trình cô lập (isolated process) không chia sẻ dữ liệu mặc định.

Template String Literals (t-strings)

Khả năng bạn đã biết f-string, chúng rất tiện lợi, tuy nhiên điểm yếu của nó là giá trị được compute ngay tại thời điểm định nghĩa, vậy nên nếu bạn muốn dùng cùng một mẫu để tạo ra nhiều nội dung khác nhau, bạn phải viết đi viết lại, việc này tương đối phiền phức. Do đó t-string ra đời để giải quyết vấn đề này, chi tiết trong PEP 750.

Brett Cannon, một core developer của Python đã post một bài giới thiệu tương đối xịn trên blog của anh ấy. Khác với f-string (trả về chuỗi), t-string trả về một đối tượng gồm phần tĩnh và phần được interpolated của string.

image.png

Bạn có thể sử dụng t-string để sanitize các SQL string trước khi chạy, hoặc cải thiện các log message, hoặc tạo các DSL nhẹ,...

Cải tiến một số Standard Library

Các thư viện chuẩn - standard library có nhiều điểm nổi bật trong bản release Python 3.14, một số được highlighted trong Python documentation:

Nén dữ liệu với Zstandard

Nếu bạn có thực hiện nhiều thao tác nén với Python, thì bạn có thể sẽ cảm thấy happy hơn khi Python đã bổ sung hỗ trợ Zstandard ngoài hỗ trợ lưu trữ zip và tar đã có. Việc thực hiện chỉ với vài dòng code:

image.png

CLI tương tác Asyncio

Một trong những bổ sung mình thích nhất trong bản release hiện tại, đó là tính năng sử dụng asyncio introspection thông qua CLI (command-line interface). Sử dụng đơn giản vãi.

# Hiển thị danh sách coroutine đang chạy.
python -m asyncio ps PID

# Cũng như trên, nhưng render output dạng tree - hữu ích khi debug
python -m asyncio pstree PID

ps subcommand sẽ inspect cái process thông qua cái PID và display thông tin về cái asyncio tasks hiện tại, output dạng table - gần giống như cái ps trên Linux thôi. pstree thì output dạng cây (tree), đặc biệt hữu ích khi debug các async program bị stuck hoặc chạy lâu (long-running).

Cải tiến một chút REPL (giao diện tương tác)

Giờ đây, Read-Evaluate-Print Loop hay REPL trong default shell sẽ có một số tính năng mới như:

  • Syntax highlighting
  • Auto complete (ngon hơn :v)
  • Color output

Bạn có thể thử đổi màu color theme bằng cách gọi API _colorize.set_theme() interactively hoặc trong PYTHONSTARTUP script.

Kết

Python 3.14 là một bản phát hành rất đáng mong đợi, với nhiều nâng cấp hiệu năng, tính năng hiện đại, và cải thiện trải nghiệm lập trình viên.

Tất nhiên, còn rất nhiều thay đổi nhỏ khác chưa được liệt kê ở đây — bạn có thể xem chi tiết trong trang What’s New in Python 3.14.

Cảm ơn các bạn đã đọc 🥰

Reference


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí