daynamic.title_categories.blog_categories
daynamic.title_categories.tags
البومات الصور
nano.all.videoList
daynamic.title_categories.title_tags
daynamic.msg_no_data.لاتوجد بيانات لعرضها
daynamic.title_categories.title_links
Posted in أخبار لغات البرمجة وأطر العمل on Jun 02, 2024
أفضل الميزات والإصلاحات الجديدة في Python 3.13
تقرير بايثون: أخبار لمطوري بايثون
برات82/شترستوك
هذا الشهر في Python (وأماكن أخرى): وصلت النسخة التجريبية الأولى من Python 3.13، مع ميزات جديدة يمكنك تجربتها الآن (نعم!) وميزات أخرى ستحتاج إلى تجميعها من المصدر لتجربتها (نعم). تضرب عمليات التسريح من العمل شركة Google - نعم، مرة أخرى - مع وجود مطوري لغة Python الداخليين من بين المتضررين. وقل مرحبًا بـ Streamlit، وهي مكتبة لأولئك الذين يرغبون في كتابة تطبيقات Python المستندة إلى الويب ولكنهم يكرهون الكتابة للويب.
التجريبي من Python 3.13:
- JIT التجريبي
- بناء لا GIL من بايثون
- REPL جديد
- تحسين رسائل الخطأ
- تحسينات على أنواع بايثون
- لا مزيد من "البطاريات الميتة"
- JIT التجريبي
قدم Python 3.11 المترجم المتخصص المتكيف . عندما يكتشف المترجم أن بعض العمليات تتضمن نفس الأنواع، فإن هذه العمليات تكون "متخصصة". يتم تبديل الرمز الثانوي العام المستخدم لهذا الرمز مع الرمز الثانوي المخصص للعمل مع تلك الأنواع، مما يوفر تعزيزات في السرعة في أي مكان تتراوح من 10% إلى 25% لتلك المناطق من الكود.
جلبت Python 3.12 المزيد من التخصصات والتحسينات الأخرى للمترجم. الآن، يضيف Python 3.13 عناصر جديدة إلى JIT التي تولد كود الجهاز الفعلي في وقت التشغيل، بدلاً من مجرد كود ثانوي متخصص. لم يتم تحقيق التسريع الناتج بشكل كبير حتى الآن - ربما 5% - ولكنه يمهد الطريق للتحسينات المستقبلية التي لم تكن ممكنة من قبل.
في الوقت الحالي، يعتبر JIT تجريبيًا — فهو غير ممكّن افتراضيًا، ولا يمكن تمكينه إلا عن طريق تجميع CPython من المصدر مع علامات معينة. إذا أدى بمرور الوقت إلى زيادة كبيرة في الأداء (5% أو أكثر)، ولم يفرض عبئًا إداريًا كبيرًا على فريق CPython أو مستخدمي Python ككل، فسوف يصبح خيار بناء مدعومًا بالكامل. ما إذا كان سيتم تمكينه للإصدارات الرسمية أم لا، سيظل الأمر متروكًا للمديرين لبناء CPython لمنصة معينة.
دورة إصدار بايثون
تصدر لغة برمجة بايثون إصدارات جديدة سنويًا، مع إصدار تجريبي مقفل بالميزات في النصف الأول من العام والإصدار النهائي في نهاية العام. يتم تشجيع المطورين على تجربة هذا الإصدار الأحدث على تعليمات برمجية غير إنتاجية، وذلك للتحقق من أنه يعمل مع برامجك وللحصول على فكرة عما إذا كانت التعليمات البرمجية الخاصة بك ستستفيد من مجموعات الميزات الجديدة وتحسينات الأداء في هذا الإصدار الأحدث.
بنية بايثون "غير المترابطة" التي لا تحتوي على GIL
المصطلح الرسمي للإصدارات المستقبلية المحتملة من CPython بدون قفل المترجم العالمي (أو GIL) هو "CPython ذو الخيوط الحرة". يسمح بناء CPython هذا بتشغيل سلاسل الرسائل بشكل كامل بالتوازي، دون وساطة من GIL. ولتحقيق هذه الغاية، يمكن تشغيل العمل المرتبط بوحدة المعالجة المركزية (CPU) والذي استفاد في السابق فقط من تشغيله في عمليات متعددة ، في سلاسل عمليات متعددة .
يعد CPython ذو الخيوط الحرة تجريبيًا أيضًا. لم يتم تمكينه افتراضيًا في الإصدارات التي تم شحنها، لذا يجب تمكينه في وقت الترجمة. إذا أظهر العمل المستقبلي مع الإصدارات ذات الخيوط الحرة أنه يمكن تحسين أداء الخيوط المتعددة دون التأثير على أداء الخيوط الفردية، فسيتم ترقيتها إلى خيار مدعوم بالكامل. بمرور الوقت، قد يصبح الإصدار الحر لـ CPython هو الإصدار الافتراضي.
REPL جديد
يتم تشغيل REPL، أو المترجم التفاعلي، عند تشغيل Python من سطر الأوامر دون تنفيذ برنامج. يحتوي REPL الخاص بـ Python 3.13 على تحسينات لجعله أقل تعقيدًا وأشبه بالمحرر الفعلي:
تم الآن تمكين اللون بشكل افتراضي للإخراج إلى وحدة التحكم. يوفر هذا التحسين رسائل خطأ أكثر ثراءً، على سبيل المثال.
يمكنك فتح pydocمتصفح التعليمات التفاعلي بالضغط على F1.
يمكنك تصفح سجل سطر الأوامر باستخدام F2.
يمكنك لصق مجموعات كبيرة من التعليمات البرمجية بسهولة أكبر عن طريق الضغط على F3 لتمكين وضع لصق الكتلة الخاص.
يمكنك فقط كتابة exitأو quitبدلاً من exit()أو quit()لترك REPL.
لاحظ أن هذه التحسينات متاحة حاليًا فقط على نظامي التشغيل Linux وmacOS. وهي غير متوفرة على نظام التشغيل Microsoft Windows، ولا حتى عند استخدام مضيف وحدة التحكم الطرفية لـ Windows الجديد.
تحسين رسائل الخطأ
أصبحت آثار الأخطاء في بايثون أكثر دقة وتفصيلاً خلال الإصدارين الأخيرين. يستمر Python 3.13 في هذا المسار.
إذا حاولت استيراد شيء له نفس اسم الوحدة الموجودة حاليًا في السياق، فستوفر لك Python خطأً تفصيليًا بهذا المعنى، وتشجعك على إعادة تسمية الوحدة الحالية. يعد هذا مصدرًا متكررًا جدًا للأخطاء، وليس للمبتدئين فقط. من الأخطاء الشائعة تسمية وحدة باسم شيء ما في المكتبة القياسية.
إذا قمت بتمرير وسيطة كلمة رئيسية غير صحيحة إلى وظيفة، فسيقترح الخطأ بعض الوسائط الصحيحة المحتملة، بناءً على ما هو متاح في الوظيفة التي يتم استدعاؤها.
تحسينات على أنواع بايثون
لقد توسع نظام تلميح النوع في Python من حيث الوظائف والأدوات المساعدة مع كل إصدار جديد. يضيف الإصدار 3.13 ثلاثة تغييرات جديدة كبيرة.
تدعم معلمات الكتابة الإعدادات الافتراضية
typing.TypeVarتتيح لك و و و جميعها تحديد typing.ParamSpecالإعدادات الافتراضية التي سيتم استخدامها إذا لم يتم تحديد أي نوع بشكل صريح. على سبيل المثال:typing.TypeVarTuple
T = TypeVar("T", default=str)
في الحالات التي Tلا يتم تعريفها بشكل صريح عند استخدامها، strيُفترض أن تكون هي الخيار الافتراضي.
Typing.TypeIs لتضييق النوع
في بايثون بشكل عام، يمكننا isinstance()اتخاذ القرارات بناءً على ما إذا كان الشيء من نوع معين أم لا. typing.TypeIsيتيح لنا أن نفعل نفس الشيء في آليات التلميح الخاصة بنوع بايثون. بهذه الطريقة، يمكن وضع تعليقات توضيحية على الوظائف المستخدمة للتحقق مما إذا كان شيء ما من نوع معين أم لا لإظهار أنها تؤدي سلوك التضييق هذا، بدلاً من مجرد نوع إرجاع. يعد هذا مفيدًا كطريقة لإضافة تغطية دقيقة لمدقق النوع إلى تلك الوظائف.
الكتابة. للقراءة فقط للتعليق التوضيحي للقراءة فقط
تم إنشاء النوع typing.TypedDictلتعليق القواميس ذات الأنواع الثابتة للقيم المرتبطة بمفاتيح معينة. typing.Readonlyيتيح لك إضافة تعليقات توضيحية لقيم محددة في TypedDict للقراءة فقط . ومن الأمثلة على ذلك القائمة التي يمكنك فقط الإلحاق بها أو الانبثاق منها، وليس استبدالها بسلسلة أو نوع آخر.
لا مزيد من "البطاريات الميتة"
حدد Python 3.11 عددًا كبيرًا من وحدات مكتبة Python القياسية التي عفا عليها الزمن ولم تعد تتم صيانتها . كانت الخطة هي وضع علامة عليها كمهملة للإصدارين 3.11 و3.12، ثم إزالتها بالكامل في Python 3.13. اعتبارًا من الآن، تمت إزالة تلك "البطاريات الميتة" (كما يطلق عليها) بشكل دائم. يمكن استبدال العديد من الوحدات التي تمت إزالتها بوحدات طرف ثالث، أو يمكن محاكاة وظائفها باستخدام مكونات مكتبة قياسية أخرى.
يمكن للمستخدمين أن يتوقعوا حدوث المزيد من عمليات الإيقاف خلال الإصدارات الثلاثة التالية من Python أيضًا. معظمها عبارة عن طرق لمكونات المكتبة القياسية المختلفة ال
تي نادرًا ما يتم استخدامها أو غير موثقة.
سرعة محسّنة من خلال JIT (التجميع في الوقت المناسب) اختياري.
* تحسينات في أداة تتبع الأحداث لأفضل تحليل للأداء.
* إطار عمل للمساعدة في تطوير واجهات برمجية تفاعلية.
**أداة جديدة لإدارة الحزم**
* تم إصدار أداة إدارة الحزم الجديدة، PIP 23، في سبتمبر 2023. وهي توفر ميزات محسّنة مثل:
* دعم لتنسيقات الحزم الجديدة.
* تحسينات الأمان لإدارة حزم الطرف الثالث.
* دعم أفضل لحالات الاستخدام المتقدمة.
**مكتبات جديدة**
* تم إصدار عدد من المكتبات الجديدة لمساعدة مطوري بايثون على إنشاء تطبيقات وخدمات قوية:
* `dataclasses-json`: يساعد في تحويل فئات البيانات بسهولة إلى/من JSON.
* `typer`: إطار عمل لإنشاء واجهات سطر أوامر سهلة الاستخدام.
* `fastapi`: إطار عمل لإنشاء تطبيقات ويب عالية الأداء وسهلة الاستخدام.
أفضل الاختيارات لقراء بايثون على InfoWorld
أفضل الميزات والإصلاحات الجديدة في
مترجم Python 3.13 New JIT! تجارب "لا-جيل"! رسائل خطأ أفضل! تمت إزالة البطاريات الميتة وإعادة تدويرها! نعم، لقد وصل إصدار Python 3.13.
جوجل تسرح فريق بايثون
لا، لا، بالتأكيد ليس تسريح العمال على مستوى الشركة. عمليات التسريح الأخيرة للعمال هي مجرد عملية إعادة تنظيم عادية، أو هكذا تصر جوجل.
مقدمة إلى Streamlit: جعلت تطبيقات بيانات Python المستندة إلى الويب من السهل
كتابة تطبيقات Python المدعومة بالبيانات للويب، دون كتابة سطر من HTML أو CSS أو (لا، حقًا) JavaScript.
لماذا تعتمد المؤسسات على برمجة JavaScript وPython وJava
للويب؛ البرمجة من أجل المرونة؛ البرمجة للمؤسسة — أنت تختار.
المزيد من القراءات الجيدة وتحديثات بايثون في مكان آخر
كذبة الشهر في LLM: البنزين يصنع السباغيتي الحارة!
... ومطبخ أكثر منصهرة.
تقييم غير متحيز لإدارة البيئة وأدوات التعبئة والتغليف
فهم النظام البيئي للتعبئة في بايثون (أو محاولة ذلك).
هل يمكن لـ LLM العثور على الأخطاء في قواعد التعليمات البرمجية الكبيرة؟
إجابة مختصرة: نعم، ولكن ليس بشكل جيد. (من صدم؟)
إن التقديمات لمسابقة كود بايثون الدولية الثانية (2024)
مفتوحة، لذا تابع - أظهر لنا كل هذا الكود الذي لن تجرؤ على تسجيله في العمل.
- التالي اقرأ هذا:
-
- لماذا تغادر الشركات السحابة؟
- 5 طرق سهلة لتشغيل LLM محليًا
- البرمجة باستخدام الذكاء الاصطناعي: نصائح وأفضل الممارسات من المطورين
- تعرف على Zig: البديل الحديث لـ C
- ما هو الذكاء الاصطناعي التوليدي؟ الذكاء الاصطناعي الذي يخلق
- أفضل البرامج مفتوحة المصدر لعام 2023