Python 3.15.0 chính thức phát hành: JIT nhanh hơn, UTF-8 mặc định và loạt tính năng đột phá

Công nghệ09 tháng 10, 2026·5 phút đọc

Python 3.15.0 đã chính thức ra mắt với hơn 5.600 commit từ 1.012 lập trình viên đóng góp. Bản phát hành mang đến nhiều cải tiến quan trọng như JIT compiler nhanh hơn 7-12%, UTF-8 trở thành encoding mặc định, cùng các tính năng mới như frozendict, lazy imports và sentinel built-in type.

Python 3.15.0 chính thức phát hành: JIT nhanh hơn, UTF-8 mặc định và loạt tính năng đột phá

Python 3.15.0 vừa chính thức được phát hành, đánh dấu một cột mốc quan trọng trong sự phát triển của ngôn ngữ lập trình phổ biến nhất thế giới. Với 5.643 commit đến từ 1.012 lập trình viên đóng góp, đây là một trong những bản phát hành đồ sộ nhất trong lịch sử Python.

Python 3.15Python 3.15

Những điểm nổi bật của Python 3.15

Bản phát hành lần này tập trung vào ba trụ cột chính: hiệu năng, trải nghiệm lập trình viên và khả năng quan sát hệ thống.

Cải tiến Interpreter và hiệu năng

Điểm nhấn đáng chú ý nhất là JIT compiler thử nghiệm đã được nâng cấp đáng kể. Theo nhóm phát triển, JIT mới đạt mức cải thiện hiệu năng trung bình hình học 7-8% trên x86-64 Linux so với interpreter tiêu chuẩn, và lên tới 11-12% trên AArch64 macOS so với interpreter tail-calling.

Đây là bước tiến quan trọng trong nỗ lực nhiều năm của cộng đồng Python nhằm thu hẹp khoảng cách hiệu năng với các ngôn ngữ như Go, Rust hay C++.

UTF-8 trở thành encoding mặc định

Theo PEP 686, Python 3.15 sử dụng UTF-8 làm encoding mặc định. Đây là thay đổi được chờ đợi từ lâu, giúp loại bỏ nhiều lỗi encoding khó chịu mà lập trình viên thường gặp khi làm việc với văn bản đa ngôn ngữ, đặc biệt là với tiếng Việt có dấu.

Hệ thống kiểu (typing) mạnh mẽ hơn

Python 3.15 bổ sung nhiều tính năng typing mới:

  • PEP 728: TypedDict hỗ trợ typed extra items
  • PEP 747: Annotating type forms với TypeForm
  • PEP 800: Disjoint bases trong hệ thống kiểu

Những cải tiến này giúp các công cụ kiểm tra kiểu tĩnh như mypy, pyright hoạt động chính xác và linh hoạt hơn, đặc biệt quan trọng trong các dự án lớn.

Các tính năng mới đáng chú ý khác

Danh sách các tính năng mới bao gồm nhiều thay đổi thiết thực:

  • PEP 661: Thêm built-in type sentinel
  • PEP 798: Unpacking trong comprehensions
  • PEP 810: Explicit lazy imports giúp khởi động nhanh hơn
  • PEP 814: Thêm built-in type frozendict
  • PEP 829: File cấu hình khởi động cho package
  • PEP 799: Package profiling chuyên dụng và profiler Tachyon lấy mẫu tần số cao
  • Thông báo lỗi được cải thiện rõ rệt
  • Hỗ trợ màu sắc phong phú hơn trong terminal

Với lập trình viên Việt Nam làm việc trong các dự án đa quốc gia, việc UTF-8 trở thành mặc định sẽ giúp giảm đáng kể thời gian debug các lỗi liên quan đến encoding tiếng Việt — một vấn đề nhức nhối trong nhiều năm qua.

Cải tiến C API và build system

Python 3.15 mang đến nhiều cải tiến cho các nhà phát triển extension:

  • PEP 782: C API PyBytesWriter mới để tạo đối tượng bytes
  • PEP 788: Bảo vệ chống finalization trong C API
  • PEP 803, 820, 793: Stable ABI cho các bản build free-threaded
  • PEP 831: Frame pointers được bật mặc định, cải thiện khả năng quan sát hệ thống

Đáng chú ý, các binary chính thức cho Windows 64-bit nay sử dụng tail-calling interpreter, còn binary macOS cài đặt sẵn hỗ trợ free-threading theo mặc định.

Lưu ý quan trọng cho người dùng macOS

Người dùng macOS 27.0 cần đặc biệt lưu ý: khi chạy IDLE hoặc các ứng dụng GUI dùng module tkinter, chúng có thể bị treo khi mở hộp thoại (ví dụ lệnh About IDLE, Settings hoặc Open Module), dẫn đến tình trạng "spinning beach ball" và phải Force Quit.

Vấn đề này xuất phát từ thay đổi hành vi của hệ điều hành macOS 27.0, được cho là ảnh hưởng đến mọi phiên bản Tk hiện tại và do đó ảnh hưởng đến mọi phiên bản Python. Nếu bạn phụ thuộc vào các ứng dụng dựa trên Tk, hãy cân nhắc hoãn nâng cấp lên macOS 27.0 cho đến khi có bản vá. Theo dõi issue #158053 để cập nhật.

Món quà thú vị: Game phiêu lưu TUI

Để kỷ niệm bản phát hành, Barry Warsaw đã tạo ra "whatsnewt" — một trò chơi phiêu lưu văn bản TUI đưa người chơi khám phá những điểm mới trong Python 3.15. Bạn sẽ bắt đầu tại Startup Foyer bên trong interpreter và tìm đường đến Release Gate, giải 18 câu đố — mỗi câu đều là một tính năng thật của 3.15 mà bạn phải viết và chạy code thực tế.

Cách chơi đơn giản nhất:

uvx --python 3.15 whatsnewt

Trò chơi yêu cầu type checker cho một số câu đố, và sử dụng pyrefly để xác minh câu trả lời. Tất nhiên, không thể thiếu các easter egg thú vị.

Tải về và hỗ trợ

Python 3.15.0 có sẵn cho mọi nền tảng chính:

  • Windows: Trình cài đặt 64-bit (43.3 MB), 32-bit và ARM64
  • macOS: Trình cài đặt cho macOS 10.15 trở lên (84.9 MB)
  • Source: Tarball nén XZ (34.0 MB) hoặc Gzip (41.7 MB)
  • Android: Package embeddable cho aarch64 và x86_64
  • iOS: XCframework

Tất cả gói đều đi kèm chữ ký Sigstore và SBOM để đảm bảo tính xác thực chuỗi cung ứng phần mềm — một yếu tố ngày càng quan trọng trong bối cảnh các cuộc tấn công supply chain gia tăng.

Nhóm phát triển gửi lời cảm ơn đến tất cả tình nguyện viên đã đóng góp cho dự án, cũng như Sovereign Tech Agency đã tài trợ cho công việc của Hugo van Kemenade với vai trò release manager cho cả Python 3.14 và 3.15.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗