يوفر Python 3.14 التوازي الحقيقي والقوالب الآمنة وتجربة أكثر سلاسة

  • توفر التعليقات التوضيحية الكسولة والسلاسل النصية الأداء والقوالب الآمنة.
  • تعمل المترجمات الفرعية وتحسينات الخيوط الحرة وقلة القفل على زيادة التوازي.
  • تجعل Zstandard وأدوات asyncio الجديدة وإصلاحات الأخطاء الأكثر وضوحًا الحياة اليومية أسهل.
  • يؤدي تصحيح الأخطاء بشكل آمن ومترجم جديد مع استدعاءات الذيل إلى تحسين الرؤية والسرعة.

بيثون 3.14

تستمر Python في النمو وترسيخ نفسها كأداة رئيسية في علم البيانات والخلفية والأتمتة والتدريس، والإصدار 3.14 ويأتي محملاً بالتغييرات التي تؤثر على الأداء والتزامن والتجربة اليومية.في هذا الدليل، سنخبرك، مع الأمثلة والسياق، بما وراء تلك الاختصارات والوحدات النمطية الجديدة التي ستراها في كل مكان ولماذا. تؤثر هذه التحسينات على كل من المبتدئين والفرق التي تنشر في الإنتاج..

إلى جانب الضوضاء المعتادة المحيطة بكل إصدار، قمنا هنا بجمع أهم الأشياء التي تم الإعلان عنها رسميًا وتوثيقها، إلى جانب التفاصيل العملية التي شاركها المطورون الذين يستخدمون 3.14 بالفعل. من التعليقات التوضيحية الكسولة إلى المفسرين الفرعيين في المكتبة القياسية، بما في ذلك t-strings، وZstandard، ومصحح الأخطاء الآمن الجديد، وتحسينات REPL.، يتم شرح الأساسيات بوضوح هنا.

نظرة عامة: ما الذي يتغير حقًا في Python 3.14

صدر إصدار بايثون 3.14 في 7 أكتوبر، وهو يجمع بين تغييرات التنفيذ وواجهة برمجة التطبيقات والمكتبة القياسية التي تتناول عدة جوانب جوهرية. تحافظ الوثائق الرسمية على ملفات "ما الجديد" و"سجل التغييرات" التقليدية المبنية من Misc/NEWS.d، والتي تُمثل خريطة تفصيلية لعرض الإضافات سطرًا بسطر. إذا كنت تريد الصورة الكبيرة: المزيد من التوازي المفيد، وإمكانيات جديدة للقوالب والتصحيح، وحزمة ضغط حديثة، ومجموعة كاملة من رسائل الخطأ الأكثر فائدة..

في العالم الواقعي، يترجم هذا إلى برامج ذات تنافس أقل بين الخيوط، وخيارات أكثر للتوازي دون قفل GIL، ومفاجآت أقل في التعليقات التوضيحية، وواجهة تفاعلية تساعد أكثر مما تعيق. بالإضافة إلى ذلك، يسلط المجتمع نفسه الضوء على التطورات العملية مثل اللون في REPL وPDB، والتحسينات في argparse وunittest، وأدوات stdlib التي تبسط المهام اليومية..

التعليقات المؤجلة: PEP 649 + PEP 749

من أهم التغييرات التقييم المتباطئ للتعليقات التوضيحية في الدوال والفئات والوحدات. الآن، بدلًا من تقييمها عند تعريفها، تُخزَّن في دوال خاصة وتُحل عند الحاجة. يؤدي هذا إلى تقليل تكلفة وقت التعريف، وتجنب الأخطاء بسبب المراجع الأمامية، ويجعل العمل مع أنواع كبيرة أو عمليات استيراد باهظة الثمن أكثر احتمالاً..

لتفقدهم، تظهر الوحدة annotationlib، مع ثلاثة تنسيقات رئيسية: VALUE (يتم التقييم إلى قيم وقت التشغيل كما في السابق)، FORWARDREF (أسماء العلامات لم يتم تعريفها بعد) و STRING (إرجاع التعليقات التوضيحية كنص). بالنسبة للهجرات، توفر كتلة النقل في الوثيقة الرسمية إرشادات حول متى يجب تغيير الكود، على الرغم من أنه في معظم الحالات لن تكون هناك حاجة إلى تغيير أي شيء..

تفصيل مهم: إذا كنت تستخدم from __future__ import annotations، لا تزال دلالاتها الخاصة سارية، لذا تحقق من أدوات الكتابة الخاصة بك. الهدف العام هو تحسين الأداء وسهولة الاستخدام، مع الحفاظ على إمكانية المراجعة الذاتية عندما يكون ذلك ضروريًا..

المترجمون الفرعيون في المكتبة القياسية: PEP 734

لقد سمح CPython بوجود عدة مترجمين عبر C-API لعقود من الزمن، ولكن 3.14 يوفرها للجميع concurrent.interpreters. يفتح هذا الباب أمام المزيد من التزامن الشبيه بالإنسان والتوازي متعدد النواة الحقيقي دون الحاجة دائمًا إلى سحب العمليات..

ما الذي ستستفيده؟ نماذج مثل CSP أو نماذج الجهات الفاعلة، والعزل الافتراضي مع إمكانية المشاركة الصريحة، واستهلاك أقل للموارد مقارنةً بالعمليات. بالنسبة لوحدات المعالجة المركزية المكثفة، نظرًا لأن المترجمين في 3.12 معزولون بدرجة كافية ليتم تشغيلهم بالتوازي، مما يفتح السيناريوهات التي عانت سابقًا من GIL.

توجد قيود موجودة: بدء تشغيل المترجم لم يتم تحسينه بعد، واستخدام الذاكرة يمكن تحسينه، وخيارات المشاركة الحقيقية قليلة بعد memoryview، ومعظم ملحقات PyPI بدون دعم كامل. الخبر السار هو أن المعيار يتضمن بالفعل الدعم، وهناك InterpreterPoolExecutor en concurrent.futures، ويقوم المجتمع بنقل الرقائق إلى Cython أو pybind11 أو nanobind أو PyO3.

قوالب سلسلة T: PEP 750

تصل سلاسل T، وهي آلية قالب مع بناء جملة سلسلة f ولكنها ترجع كائنًا. Template مع أجزاء ثابتة منفصلة وعمليات الاستيفاء، وليس str نهاية. يتيح لك هذا معالجة المحتوى قبل الانضمام إليه، وتطهير إدخال المستخدم، وتجميع DSLs خفيفة الوزن بشكل أكثر أمانًا..

تكتب بالبادئة t بدلا من f، يمكنك تكرار Template وتقوم بمعالجة كل جزء أو استيفاء حسب رغبتك. من الهروب من HTML إلى بناء هيكل يشبه DOM أو القوالب التي تقبل قواميس السمات، ستكتسب المرونة دون التضحية بالوضوح..

يقدم Python 3.14 واجهة آمنة للتصحيح الخارجي: PEP 768

يقدم الإصدار 3.14 واجهة تصحيح أخطاء بدون تكلفة إضافية تسمح للمصححين وأدوات تحليل الأخطاء بالاتصال بأمان بعمليات Python الجارية. لا مزيد من الحلول غير الآمنة: الآن هناك نقاط تنفيذ آمنة لحقن كود التصحيح دون الانحراف عن مسار المترجم العادي..

لتسهيل ذلك، يتم الكشف عن sys.remote_exec()، الذي يرسل الكود ليتم تنفيذه في نقطة الأمان التالية في العملية المستهدفة. يصف PEP البروتوكول الأساسي، بما في ذلك عناصر التحكم الأمنية للحد من الوصول ومنع إساءة الاستخدام، وهو أمر أساسي في الأنظمة ذات الإتاحة العالية..

نوع جديد من المترجمين مع استدعاءات الذيل في لغة C

هناك ابتكار تقني آخر وهو مترجم بديل يربط استدعاءات الذيل بين وظائف C الصغيرة التي تنفذ التعليمات البرمجية، بدلاً من استدعاءات الذيل الكبيرة switch. في المنصات والمُجمِّعات المدعومة (Clang 19+ على x86-64 وAArch64)، تُظهر المعايير الأولية تحسنًا هندسيًا بنسبة 3% إلى 5%..

إنه خيار اختياري، ويوصى بتنشيط PGO لأنه الإعداد المجرب الذي يحقق الأرباح. يتم تمكينه باستخدام خيار التجميع --with-tail-call-interp، ومن المتوقع أن يدعمه مجلس التعاون الخليجي في المستقبل..

وضع الخيوط الحرة: PEP 703 والأداء العملي

يحقق الوضع الخالي من GIL، والذي تم تقديمه في الإصدار 3.13، قفزة إلى الأمام في الإصدار 3.14: حيث تم إكمال تغييرات C-API المقترحة بواسطة PEP 703، وتم استبدال الحلول البديلة بحلول دائمة. المترجم التكيفي المتخصص (PEP 659) نشط الآن في هذا الوضع، والذي يعمل جنبًا إلى جنب مع التحسينات الأخرى على تقليل العقوبة.

اليوم، تبلغ الخسارة في الترابط الفردي حوالي 5-10% اعتمادًا على المنصة والمترجم، وهو سعر معقول مقارنة بالمكسب في التوازي الحقيقي. في نظام التشغيل Windows، عند تجميع الملحقات للبناء ذي الخيوط الحرة، يجب عليك تعريف Py_GIL_DISABLEDوفي وقت التشغيل، يمكنك التحقق من الإعداد عبر sysconfig.get_config_var().

بالإضافة إلى ذلك، يظهر العلم -X context_aware_warnings للتحكم في مرشحات التحذير حسب السياق، يتم تمكينها افتراضيًا في الإصدارات التي لا تحتوي على GIL وتعطيلها في الإصدارات التي تحافظ عليها. يصل أيضا thread_inherit_context بحيث ترث الخيوط التي تم إنشاؤها Context() من المستدعي، مما يؤثر على مرشحات warnings, decimal وواجهات برمجة التطبيقات الأخرى مع contextvars.

رسائل خطأ أكثر فائدة في Python 3.14

يقترح المترجم الآن الكلمات الرئيسية عندما يكتشف مصطلحًا مشابهًا لكلمة رئيسية في Python، مما يساعدك على اكتشاف الأخطاء المطبعية بسرعة. تم بالفعل إصلاح الحالات مثل كتابة "pritn" بدلاً من "print" باستخدام تلميحات مباشرة، على الرغم من أنه لن يتم تغطية جميع المتغيرات..

هناك رسائل محددة ل elif بعد else، وفي التعبيرات الشرطية يشير إلى مكان وجود مفقود expression إذا وضعت جملة بعد else o pass/break/continue انتيس دي if. يتم أيضًا تحسين الأخطاء الناتجة عن السلاسل المغلقة بشكل غير صحيح والبادئات غير المتوافقة في السلاسل..

مزيد من التحسينات: رسائل أكثر وضوحًا عند الاستخدام as مع أهداف غير متوافقة في عمليات الاستيراد، باستثناء مطابقة النمط؛ التفاصيل عند محاولة وضع كائن غير قابل للتجزئة في dict o set؛ والإشعارات عند دخولك إلى مدير السياق المتزامن مع async with أو العكس. كل شيء يضاف حتى يتمكن المترجم من إخبارك بالماذا وأين ولماذا.

الضغط الحديث في stdlib: PEP 784 و Zstandard

ولدت الحزمة compression، والتي تعيد تصديرها lzma, bz2, gzip y zlib كما compression.lzma, compression.bz2, compression.gzip y compression.zlib. أصبحت هذه الأسماء الجديدة هي المسارات المفضلة منذ الإصدار 3.14، على الرغم من أن المسارات الكلاسيكية لم يتم إلغاؤها في الوقت الحالي..

النجم هو compression.zstd، دعم أصلي لـ Zstandard مع الارتباطات بمكتبة zstd الخاصة بـ Meta. يمكنك الحصول على واجهات برمجة تطبيقات سريعة وفعالة، ودعم مباشر لملفات Zstandard في tarfile, zipfile y shutil، دون تثبيت حزم خارجية.

استبطان Asyncio من سطر الأوامر

يمكنك الآن فحص عمليات Python الجارية باستخدام المهام غير المتزامنة باستخدام python -m asyncio ps PID y python -m asyncio pstree PID. يعرض الأمر الفرعي ps جدولًا مسطحًا للمهام والأسماء والمكدسات؛ ويقوم pstree بإنشاء شجرة مكالمات غير متزامنة..

يعد هذا مفيدًا بشكل خاص في البرامج الطويلة أو المحظورة، حيث يساعد على اكتشاف مكان الاختناق، والمهام التي تنتظر، وكيفية ارتباط البرامج الفرعية ببعضها البعض. إذا كانت هناك دورات في الرسم البياني المنتظر، فستكتشفها الأداة وتسرد المسارات التي تسبب المشاكل..

التحكم في التحذيرات المتزامنة في Python 3.14

warnings.catch_warnings يمكنك استخدام متغير السياق لمرشحات التنبيهات إذا قمت بتمكين العلم context_aware_warnings بواسطة -X أو متغير البيئة. بهذه الطريقة، يصبح التعامل مع التحذيرات قابلاً للتنبؤ به عندما تقوم بخلط الخيوط أو المهام غير المتزامنة ولا تتداخل مع بعضها البعض..

تجربة مستخدم Python 3.14: وحدة التحكم، وArgparse، وUnitTest، والمزيد

أي شخص استخدم الإصدار 3.14 كإصدار رئيسي لعدة أشهر يسلط الضوء على اللون في التجربة اليومية: تمييز بناء الجملة في REPL وPDB، مع أمثلة على دعم Python 3 على Kodi، مساعدة أفضل في argparse ورسائل أكثر ودية في unittest. تساعد هذه التفاصيل على تقليل الاحتكاك وتجنّبك القفز إلى المحرر لفهم ما هو الخطأ..

تقترح وحدة التحكم التفاعلية إصلاحات للأخطاء المطبعية الشائعة، على سبيل المثال كلمة "printn" الكلاسيكية التي تقودك الآن إلى print. هناك أيضًا استكمال تلقائي للاستيراد أكثر ذكاءً، مما يساعدك على اكتشاف الوحدات النمطية دون مغادرة المطالبة..

تظهر أدوات مساعدة عملية للغاية في stdlib: نسخ ونقل الطرق في pathlib التي تتجنب السحب shutil بالنسبة للأساسيات، أ date.strptime مباشرة دون الحاجة إلى المرور عبر datetime.strptime().date()، وUUID v7، الذي يجمع بين العشوائية والقدرة على الترتيب الزمني. اختصارات صغيرة، تأثير كبير على البرامج النصية والأدوات الداخلية.

يضيف argparse اقتراحات عندما ترتكب خطأ في خيار، مما يقلل من وقت تصحيح أخطاء CLI؛ ونعم، بدأت سلاسل t بالفعل في تغذية نظام بيئي صغير من المكتبات التي تستفيد منها للحصول على قوالب آمنة. إذا كنت تعمل مع سلاسل معقدة أو إدخالات المستخدم، فسوف تلاحظ الفرق..

التوازي، وعرقلة أقل وعدم وجود المزيد من المفاجآت مع العمليات

تهدف العديد من التغييرات إلى تقليل الحظر بين الخيوط: مع وجود مترجمين فرعيين في stdlib وتقدم الوضع الخالي من GIL، هناك المزيد من الخيارات لتوزيع الحمل دون الدخول في طريق مسدود. بالنسبة للخدمات والمكتبات ذات المهام المتوازية، فإن هذا يترجم إلى تحسينات ملموسة في الإنتاجية..

كما أنه يغير السلوك الافتراضي عند إنشاء عمليات متعددة: فهو يفضل خادم شوكة أمام شوكة ببساطة، مما يقلل من الأعطال الدقيقة ويجعل الفشل أكثر قابلية للفهم في سيناريوهات المعالجة المتعددة. من الناحية العملية: عدد أقل من الزومبي الصعب إعادة إنتاجه وتشخيصات أنظف.

جدول إصدار Python 3.14 ونضجه

أعلن فريق Python عن العديد من الإصدارات التجريبية خلال دورة 3.14، بما في ذلك Alpha 5، من إجمالي سبعة إصدارات تجريبية، مصممة لاختبار الميزات الجديدة وإصلاح الأخطاء وضبط عملية الإصدار. بدأت المرحلة التجريبية في 6 مايو 2025، دون أي ميزات جديدة، مع إمكانية إجراء تعديلات حتى الإصدار المرشح في 22 يوليو..

كما هو الحال دائمًا خلال فترات ما قبل الاستقرار، لا يُنصح باستخدام الإصدارات التجريبية في بيئات الإنتاج. تُحافظ الوثائق الرسمية على تقويم مُفعّل (PEP 745)، ومُتتبّع المشكلات على GitHub، وإرشادات للمساهمة من خلال مؤسسة برمجيات بايثون. إذا اكتشفت خطأً، فإن روابط المستندات والتقارير التي تم إنشاؤها بواسطة Sphinx تجعل من السهل فتحها وتتبعها..

لمحة رقمية: 3.14 وسنة الثعبان

لقد أدى التطابق بين رقم الإصدار والتقريبات التاريخية لـ pi (3.14) إلى ظهور أكثر من نكتة في المجتمع، وذلك في العام القمري الذي يتميز بشهر الثعبان. من ليو شين إلى زو تشونغ تشي، كان الهوس بتقريب قيمة باي قديمًا تقريبًا مثل هوس تحسين المتكررات..

وإلى جانب الحكاية، تشيد هذه النسخة أيضًا بالجهود الجماعية لمئات المتطوعين والشركات التي تقدم الخدمات الهندسية. تدعوك مؤسسة PSF، باعتبارها منظمة غير ربحية، للمشاركة والتبرع ومراجعة التاريخ والتراخيص التي تغطي الوثائق والأمثلة..

استمرت عملية تحديث الوثائق حتى وقت قريب، مع ملاحظات الإصدار وإعادة البناء التلقائية باستخدام Sphinx. إذا واجهت سلوكًا غير متوقع، فراجع سجل التغييرات وما الجديد لمعرفة ما إذا كانت هناك أي فروق دقيقة حديثة تشرح التغيير..

بشكل عام، يعمل Python 3.14 على تحسين التجربة اليومية مع وضع الأساس للمستقبل: التوازي الحقيقي مع احتكاك أقل، والقوالب الآمنة والمعبرة، وتصحيح الأخطاء بسلاسة، والأدوات التي تشرح الأخطاء بشكل أفضل. إذا كنت قادمًا من الإصدار 3.13، فسوف تلاحظ تغييرات تدريجية وميزات جديدة؛ إذا لم تقم بالتحديث لعدة إصدارات، فإن التحسينات المجمعة ستجعل القفزة تستحق العناء..

رصيف كودي 22
المادة ذات الصلة:
Kodi 22 Piers: ما الجديد، والتنزيل، وما يمكن توقعه من الإصدار التجريبي