DEVELOPMENT
بعد تأخير دام أسبوعاً، تم إصدار الإصدار الجديد من بايثون، v3.15. يأتي معه محلل أداء مناسب، ومترجم تجريبي في الوقت المناسب (just-in-time)، وتشديد لهياكل القواميس. كما يوفر خيار الاستيراد الكسول الموفر للوقت للبرامج لعدم تحميل الوحدات النمطية إلا عند الحاجة، والذي أوقفت عملية تنفيذه هذا الإصدار بشكل ساخر حتى تم حل بعض المشكلات المتراجعة في اللحظات الأخيرة.
ولكن من بين كل هذه الميزات الجديدة المعروضة على مطوري بايثون، قد يقدّر متخصصو معالجة البيانات دعم UTF-8 الافتراضي عبر جميع المنصات. وعندما يُذكر جميع المنصات، فإن الإشارة تكون إلى ويندوز (كالعادة). لطالما كان بايثون يعتمد على بيئات macOS ولينكس كافتراضية لبعض الوقت الآن.
إنه تحديث صغير ولكنه مهم. يستخدم حوالي نصف مطوري بايثون اللغة لمعالجة وتحليل البيانات، ويقوم حوالي 58 بالمائة من مستخدمي بايثون بالبناء على ويندوز، وفقاً لاستطلاعات مختلفة لمؤسسة بايثون للبرمجيات.
لماذا كان الترميز مشكلة؟
كانت الإصدارات السابقة من بايثون تعتمد على ترميز اللغة المحلية للنظام المضيف بشكل افتراضي. وقد أدى ذلك إلى الكثير من القلق لمطوري ويندوز الذين كانت نصوصهم البرمجية تفتح مجموعات بيانات مرمزة بـ UTF-8، فقط لتتلف الأحرف غير اللاتينية (non-ASCII) البرنامج أو تتسبب في تعطله. يمكن أن تكون الأسباب بسيطة مثل علامة اقتباس ذكية أو فاصلة علوية مزخرفة.
تُدار UTF-8 بواسطة اتحاد يونيكود (The Unicode Consortium)، بمساعدة IETF و ISO، وهي ترميز ثنائي 8 بت لكتالوج يونيكود لجميع الرموز المكتوبة في العالم. قدمت ASCII 128 حرفاً فقط لتغطية المعرفة العالمية، لكن UTF-8 يوفر أكثر من 1.1 مليون خانة، وهو ما يكفي لعلامات الاقتباس الذكية، والرموز التعبيرية، والرموز الموسيقية والرياضية، وجميع اللهجات الصينية، وحتى بعض اللغات المنقرضة (لأغراض البحث).
يوجد أيضاً UTF-16 و UTF-32، لكن مزيج كفاءة وشمولية UTF-8 جعله الافتراضي للويب ومعظم أنظمة التشغيل الحديثة.
بحلول الوقت الذي تم فيه اقتراح مقترح تحسين بايثون 681 (Python Enhancement Proposal 681) في عام 2022 لجعل UTF-8 الترميز المفضل، كانت اللغة متأخرة بالفعل. في ذلك العام، استقرت جافا على UTF-8 مع JDK 18، واعتمدت روبي 3.0 مخطط الترميز افتراضياً في عام 2020.
اليوم، تلتزم جميع اللغات وبيئات التشغيل الحديثة بـ UTF-8، بما في ذلك Rust و Go و Node.js (تفضل جافاسكريبت نفسها UTF-16 للترميز الداخلي). تفضل معظم محررات الأكواد، من Visual Studio Code إلى Windows Notepad، UTF-8. تتطلب تنسيقات مشاركة البيانات والتكوين مثل JSON و TOML و YAML جميعها ترميزات 8 بت.
لطالما فهم بايثون UTF-8، لكن المبرمجين كانوا مضطرين لوضع علامة في أكوادهم لتنبيه اللغة لاستخدامه – إذا كانوا يعرفون أن عليهم فعل ذلك على الإطلاق. لم يفعل الكثيرون ذلك وتركوا يتساءلون لماذا كانت نصوص معالجة البيانات الخاصة بهم تعمل بشكل جيد على macOS أو لينكس ولكنها تتعطل على ويندوز (أو أي نظام غامض آخر كان يعتمد على إعدادات C/POSIX المحلية).
كيف يمكن للمطورين استكشاف الميزات الجديدة؟
لتعريف المطورين بالجوانب الجديدة للغة، أنشأ مبرمج بايثون المخضرم باري وارسو (المعروف أيضاً باسم العم باري) لعبة مغامرات قائمة على الطرفية تسمى whatsnewt تقدم 18 لغزاً، كل واحد منها مبني على ميزة جديدة موجودة في بايثون 3.15، بما في ذلك لغز لدعم UTF-8، برج بابل للترميز.
بمجرد تنزيل بايثون 3.15، قم بتنفيذ pip install whatsnewt ثم قم بتشغيل اللعبة من سطر أوامر بايثون. نسمع أنها تعمل حتى على ويندوز. ®
جرّب الأداة: منسق ومتحقق JSON




