پایتون 3.15 با پشتیبانی از UTF-8 جهانی می شود
دههها فساد شخصیتهای بین پلتفرمی بالاخره برای کدنویسهای ویندوز به پایان رسید
پس از یک هفته تاخیر، نسخه جدید پایتون نسخه 3.15 منتشر شد. با آن یک پروفایلر مناسب، یک کامپایلر آزمایشی بهموقع، و ساختارهای فرهنگ لغت سفتتر ارائه میشود. همچنین یک گزینه Lazy Import صرفهجویی در زمان را برای برنامهها ارائه میکند تا ماژولها را تا زمانی که نیاز نباشد بارگیری نمیکنند، که اجرای آن به طور طعنهای این نسخه را متوقف میکند تا چند رگرسیون لحظه آخری مرتب شوند. اما از میان همه این ظرافتهای جدید که قبل از Pythonistas پخش شدهاند، ممکن است متخلفان داده از پشتیبانی پیشفرض UTF-8 در همه پلتفرمها قدردانی کنند.
و وقتی میگوییم «همه پلتفرمها»، در واقع فقط به ویندوز سایه انداختهایم (طبق معمول). مدتی است که پایتون به صورت پیشفرض در محیطهای پایتون macOS و Linux Python قرار گرفته است. این یک به روز رسانی کوچک اما مهم است. طبق نظرسنجیهای مختلف بنیاد نرمافزار پایتون، حدود نیمی از توسعهدهندگان پایتون از این زبان برای پردازش و تجزیه و تحلیل دادهها استفاده میکنند و حدود 58 درصد از کاربران پایتون بر روی ویندوز میسازند. خرابکنندههای مهمانی نسخههای قبلی پایتون بهطور پیشفرض کدگذاری محلی سیستم میزبان را تنظیم میکرد.
این امر باعث ایجاد حیرت بسیاری برای توسعه دهندگان ویندوز شد که اسکریپتهایشان مجموعه دادههای رمزگذاری شده UTF-8 را باز میکردند، اما کاراکترهای غیرASCII برنامه را خراب یا خراب کردند. مقصران می توانند به اندازه یک نقل قول هوشمندانه یا یک آپستروفی فانتزی بی ضرر باشند. UTF-8 که توسط کنسرسیوم یونیکد، با کمک IETF و ISO مدیریت میشود، یک رمزگذاری باینری 8 بیتی از کاتالوگ یونیکد از تمام نمادهای نوشتاری جهان است.
ASCII تنها 128 کاراکتر برای پوشش دانش جهان ارائه میدهد، اما UTF-8 بیش از 1.1 میلیون اسلات را فراهم میکند که فضای زیادی برای نقل قولهای هوشمند، شکلکها، نمادهای موسیقی و ریاضی، همه گویشهای چینی و حتی چند زبان منقرض شده (برای اهداف تحقیقاتی) دارد. UTF-16 و UTF-32 نیز وجود دارد، اما ترکیبی از کارایی و فراگیر بودن UTF-8 آن را به عنوان پیش فرض برای وب و اکثر سیستم عامل های مدرن تبدیل کرده است. زمانی که Python Enhancement Proposal 681 در سال 2022 پیشنهاد شد تا UTF-8 را رمزگذاری ترجیحی قرار دهد، این زبان قبلا عقب مانده بود.
در آن سال، جاوا با JDK 18 در UTF-8 قرار گرفت و Ruby 3.0 در سال 2020 به طرح رمزگذاری پیشفرض تبدیل شد. امروزه همه زبانها و زمانهای اجرا جالب به UTF-8، از جمله Rust، Go، و Node.js وفاداری میکنند (خود جاوا اسکریپت رمزگذاری داخلی UTF-16 را ترجیح میدهد). اکثر ویرایشگرهای کد، از Visual Studio Code گرفته تا Notepad ویندوز، UTF-8 را ترجیح می دهند. به اشتراک گذاری داده ها و فرمت های پیکربندی مانند JSON، TOML، و YAML همگی به رمزگذاری 8 بیتی نیاز دارند. پایتون مدتهاست که UTF-8 را درک کرده بود، اما برنامهنویسها باید پرچمی را در کد خود قرار میدادند که به زبان برای استفاده از آن هشدار میداد - اگر میدانستند که اصلا باید این کار را انجام دهند.
خیلیها این کار را نکردند و به این فکر افتادند که چرا اسکریپتهای پردازش دادهشان در MacOS یا لینوکس به خوبی کار میکند، اما سپس در ویندوز (یا برخی از سیستمهای مبهم دیگر که بهطور پیشفرض روی یک منطقه C/POSIX تنظیم شده بود) آتش میگیرند. برنامه نویسان عاشق پازل هستند برای آشنایی توسعه دهندگان با جنبه های جدید این زبان، برنامه نویس قدیمی پایتون، Barry Warsaw (با نام مستعار "عمو بری") یک بازی ماجراجویی مبتنی بر ترمینال به نام "whatsnewt" ایجاد کرد که 18 پازل را ارائه می دهد که هر کدام بر اساس یک ویژگی جدید موجود در Python 3.18، از جمله "PUTF-Tower" ساخته شده است که در Python 3.18-Tower پشتیبانی می کند. بابل.» وقتی دانلود کردید
پایتون 3.15، یک “pip install whatsnewt” انجام دهید و سپس بازی را در خط فرمان پایتون اجرا کنید. می شنویم که حتی روی ویندوز هم کار می کند. ®
متن اصلی (انگلیسی)
Python 3.15 goes global with UTF-8 support
Decades of cross-platform character corruption finally comes to an end for Windows coders