何が変わったのか
対話型インタープリターの刷新、GILを外せるフリースレッドビルド、実験的なJITコンパイラが3.13の目玉として並ぶ。いずれも「今すぐ全員が使うべき機能」というより、今後数バージョンかけて育っていく土台という性格が強い。
3.12までとの体感差
3.12までは型ヒントの拡張やf-stringの改善など言語仕様側の変更が中心だったのに対し、3.13はインタープリター本体の実行方式に踏み込んだ点が異なる。フリースレッドビルドは公式ドキュメント上もまだ実験的機能の扱いで、C拡張ライブラリの多くが追随できていないため、マルチスレッドで性能を稼ぎたい処理を持つ場合でも、依存ライブラリの対応状況を先に確認しないと恩恵を受けられない。
他言語の流れとの接続
GILの制約を緩めようとする動きは、Rubyのランタイム並列化やNode.jsのワーカースレッド活用など、他のスクリプト言語でも共通して見られる潮流だ。PythonがCPythonという単一実装に大きく依存してきた分、フリースレッド化のインパクトは相対的に大きく、エコシステム全体が追いつくまでには数年単位の時間がかかると見ておいた方がよい。
学ぶ側・使う側への助言
新しく学び始める人は、対話環境の改善など日常的に触れる部分から慣れていけば十分で、フリースレッドやJITを最初から意識する必要はない。既存プロジェクトの更新を検討する人は、削除された機能や非推奨項目の一覧を先にチェックし、仮想環境を分けて挙動の差を検証するのが安全だ。詳細な変更点は公式ドキュメント(https://docs.python.org/ja/3/whatsnew/3.13.html)に網羅されている。