Python هي لغة برمجة عالية المستوى.
بعد عام من التطوير ، تم الإعلان عن إصدار النسخة المستقرة وأيضا بداية مرحلة اختبار ألفا للغة البرمجة بيثون 3.12 و بايثون 3.13 (على التوالي). يُذكر أن هذا الفرع الجديد من Python 3.12 سيتم دعمه لمدة عام ونصف، وبعد ذلك سيتم إنشاء إصلاحات للقضاء على الثغرات الأمنية لمدة ثلاث سنوات ونصف أخرى.
الإصدار الجديد من Python 3.12 الذي تم تقديمه يأتي مع تحسينات في مرونة تحليل السلسلة f ومع هذا التحسن الآن يمكن ترك العديد من القيود جانبا، لأنه على سبيل المثال، يمكنك الآن احتواء أي تعبير صالح في Python، بما في ذلك التعبيرات متعددة الأسطر والتعليقات والخطوط المائلة العكسية وتسلسلات الهروب Unicode. بالإضافة إلى ذلك، تسمح السلاسل الداخلية الآن بإعادة استخدام نفس علامات الاقتباس، أي يمكن الآن إعادة استخدام علامات الاقتباس المزدوجة في الداخل دون الحاجة إلى التغيير إلى علامات الاقتباس المفردة.
على سبيل المثال:
و"""{f'''{f'{f"{1+1}"}'}'''}"""
أصبح من الممكن الآن التداخل بشكل تعسفي:
و"{f"{f"{f"{f"{f"{1+1}"}"}"}"}"}"
آخر التغييرات التي تبرز هو دعم المترجمين الفوريين المعزولين والأقفال العالمية المنفصلة، والتي تهدف إلى زيادة كفاءة استخدام الموارد في الأنظمة متعددة النواة، حيث أنه بالنسبة للمترجمين الفوريين المختلفين داخل العملية، يسمح CPython للعديد من المترجمين الفوريين بالعمل في نفس الوقت في العملية. في الوقت الحالي، الميزة متاحة حاليًا فقط عبر C-API (سيظهر دعم Python API في الفرع الرئيسي التالي).
وبالإضافة إلى هذا، تم تسليط الضوء أيضا على ذلكتمت زيادة المحتوى الإعلامي لرسائل الخطأ وتم توسيع نطاق الاستثناءات، وتقديم توصيات للقضاء على الأخطاء المطبعية. على سبيل المثال، يتم الآن عرض اقتراحات لاستيراد وحدات المكتبة القياسية المنسية واقتراحات لإضافة البادئة "self".
تمت إضافة القدرة على استخدام بروتوكول المخزن المؤقت في كود بايثون. يمكن الآن استخدام الفئات التي توفر طريقة "__buffer__()" كأنواع تعمل مباشرة على البيانات الثنائية في الذاكرة.
وحدة يُقترح استخدام sys.monitoring لتصحيح الأخطاء والتوصيف، مما يسمح لك بمراقبة الأحداث في CPython مثل الاستدعاءات وإرجاع الوظائف وتنفيذ سطور عشوائية من التعليمات البرمجية والاستثناءات والانتقالات بأقل قدر من الحمل.
يقوم المترجم بتنفيذ الدعم للنظام الفرعي لأداء Linux kernel، والذي يسمح بتحديد أسماء وظائف Python عند إنشاء ملف تعريف باستخدام أداة الأداء المساعدة (سابقًا، تم تحديد أسماء وظائف C فقط في التتبع).
وفيما يتعلق بتحسينات الأداء، يشار إلى ذلك استمرت التحسينات، مع ماذا تم الحصول على مكاسب إجمالية في الأداء تقدر بـ 5%.، تمت إضافته أيضًا الدعم التجريبي لمحسن BOLT الثنائي في عملية البناء، مما أدى إلى زيادة الأداء بنسبة 1-5%، في حين تحسن أداء الحزمة غير المتزامنة بشكل ملحوظ (تظهر بعض الاختبارات زيادة في السرعة بنسبة 75%).
تم تنفيذ التوسع المضمّن لعمليات استيعاب القائمة، مما يؤدي إلى تسريع العمل مع عمليات استيعاب القائمة بما يصل إلى مرتين (بالنسبة للتعليمات البرمجية التي تستخدم عمليات استيعاب القائمة بشكل نشط، أظهر الاختبار زيادة إجمالية في الأداء بنسبة 11%).
لتحسين الأمن ، المدمج في تطبيقات تم استبدال خوارزميات SHA1 وSHA3 وSHA2-384 وSHA2-512 وMD5 في hashlib مع خيارات تم التحقق منها رسميًا من مشروع HACL* (يتم استخدام التطبيقات المضمنة فقط في حالة عدم توفر OpenSSL).
من تغييرات أخرى التي تبرز:
- قامت الوحدة بتوسيع الدعم لنظام التشغيل Windows.
- تنفذ Python الحماية من تجاوز سعة المكدس.
لقد تم تسريع عملية إنشاء فئة asyncio.Task. - تم تقليل حجم كائنات Unicode بمقدار 8 إلى 16 بايت.
- تم تسريع العمليات باستخدام التعبيرات العادية re.sub() وre.subn() وre.Pattern.
- تم تسريع تشغيل عمليات التحقق من isinstance() لبعض البروتوكولات بمقدار 2 إلى 20 مرة.
- بشكل ملحوظ (في بعض الاختبارات تصل إلى 64%)، تم تسريع وظائف tokenize.tokenize() وtokenize.generate_tokens().
- تم تسريع تحميل السمة واستدعاء طريقة super().
- تم اقتراح صيغة جديدة وأكثر إحكاما للتعليقات التوضيحية للفئات والوظائف العامة.
- لم تعد وحدة متصفح الويب تدعم المتصفحات الأقدم بما في ذلك Grail وMosaic وNetscape وGaleon وSkipstone وIceape وFirebird وFirefox حتى الإصدار 36.
- استعدادًا للتحسينات المستقبلية، تم تغيير التمثيل الداخلي للأعداد الصحيحة.
وأخيرًا وليس آخرًا، كما ذكرنا، بدأ اختبار ألفا لبايثون 3.13، والذي ظهر فيه وضع التجميع CPython بدون قفل مترجم عالمي (جيل، قفل المترجم العالمي).
الفرع سيكون Python 3.13 في مرحلة ألفا لمدة سبعة أشهر، سيتم خلالها إضافة ميزات جديدة وإصلاح الأخطاء وفقًا لجدول التطوير الجديد، ويبدأ العمل على فرع جديد قبل خمسة أشهر من إصدار الفرع السابق وبحلول الوقت الذي يصل فيه الإصدار التالي إلى مرحلة الاختبار ألفا.
بعد ذلك، سيتم اختبار الإصدارات التجريبية لمدة ثلاثة أشهر، سيتم خلالها حظر إضافة ميزات جديدة وسيتم إيلاء كل الاهتمام لإصلاح الأخطاء. خلال الشهرين الأخيرين قبل الإصدار، سيكون الفرع في مرحلة الإصدار المرشح، حيث سيتم تحقيق الاستقرار النهائي.
نعم في النهاية أنت مهتم بمعرفة المزيد عنها، يمكنك التحقق من التفاصيل في الرابط التالي.