نسخه 3.13 برای ارائه در تاریخ 01/10/2024 برنامه ریزی شده است که نسخه پیش نمایش 3.13.0rc1 در تاریخ Aug 2024 1 معرفی شده است. این نسخه همانند سایر نسخه ها، 5 سال و تا سال 2029 پشتیبانی میشود.
https://peps.python.org/pep-0719
نسخه 3.13، دارای یک کامپایلر جدید JIT و اولین نسخه no-GIL است که دارای لاگ و خطایابی بهتر نسبت به نسخههای قبلی است و ماژولهای قدیمی و غیرقابل استفاده (باطریهای مردهdead batteries – ) به طور کامل حذف شده اند. https://www.python.org/downloads/release/python-3130rc1/
در این مقاله به تغییرات ایجاد شده در نسخه 3.13 پایتون میپردازیم:
مفسر تعاملی پیشرفتهتر (Interactive Interpreter)
در نسخه 3.13، ما شاهد پیشرفتهایی در قسمت پیامها و خطاها بر پایه PyPy هستیم. (https://pypy.org/)
قسمت پیامها و ارورهای مفسر پایتون توسعه داده شده است.
در مفسر جدید پایتون از رنگها پشتیبانی میشود و تجربه کاربری خوبی برای کاربران فراهم میکند.
دباگ و خطایابی به کمک متنهایی که به صورت رنگی نمایش داده میشود، به رفع و حل سریعتر مشکلات پروژه کمک خواهد کرد.
کاربران میتوانند خاصیت رنگی را با استفاده از متغیرهای محیطی NO_COLOR و یا PYTHON_COLORS تغییر دهند و یا غیرفعال کنند.
همینطور در نسخه جدید، کلمات اگر به اشتباه در یک تابع وارد شده باشند به صورت صحیح پیشنهاد میشوند.
در نسخه جدید، اگر نام یک اسکریپت با نام استاندارد یک ماژول کتابخانه شبیه و یکسان باشد، در پیام خطایی که پایتون نمایش میدهد تغییر نام و نام پیشنهادی خود را نمایش میدهد.
برای اطلاعات بیشتر در این مورد میتوانید جزئیات بیشتر را در صفحه مستندات ورژن 3.13 مشاهده کنید:
https://docs.python.org/3.13/whatsnew/3.13.html#improved-error-messages
اضافه شدن JIT (Just-In-Time)
در نسخه 3.11 مفسر تطابقپذیر (Specializing Adaptive Interpreter) معرفی شد (PEP 659) و در نسخه 3.12 کامپایلر JIT به صورت پایه اضافه شده بود (PEP 744). در نسخه 3.13 هم این امکان آزمایشی وجود دارد.
اگرچه در نسخه 3.13 کامپایلر JIT به صورت پیشفرض غیر فعال است، اما در صورت فعال شدن میتواند در بهبود کارایی پروژه مفید باشد و در آینده در ورژنهای جدید پایتون، کاملتر خواهد شد.
کامپایلر JIT بایت کدهای Tier 1 را به بایت کدهای Tier 2 داخلی (Tier 2 intermediate representation) یا (IR) تبدیل میکند که برای ترجمه به زبان ماشین بهینه شده است.
قبل از ترجمه به زبان ماشین، بهینه سازیهای دیگری بر روی کد Tier 2 انجام میگیرد.
با استفاده از آپشن (–enable-experimental-jit) کاربران میتوانند خصوصیت JIT و مفسر Tier 2 را فعال و یا غیر فعال کنند.
شل جدید پایتون (REPL)Read-Eval-Print Loop
در نسخه جدید همانطور که انتظار میرفت پیشرفتهای و تغییرات بزرگی در محیط توسعه پایتون ایجاد شد که تجربه کاربری خوبی برای برنامهنویسان پایتون فراهم میکند که به چند مورد از آنها اشاره میکنیم:
- خروجی کدها و ارورها رنگی شدهاند که خوانایی آنها را بهتر میکند.
- Integrated Help (F1) قسمت help داخل محیط توسعه که با کلید f1 فعال میشود.
با استفاده از دکمه f1، دسترسی سریع به pydoc فراهم شده است و دیگر نیازی به جابجایی بین پنجرهای بازشده و ترمینال برای پیدا کردن مستندات و راهنما وجود ندارد.
- Command History Navigation (F2) با استفاده از کلید f2 دسترسی به تاریخچه دستورات قبلی وارد شده، امکان پذیر است.
- Block Paste Mode (F3) با استفاده از کلید f3 امکان کپی کردن یک قسمت و یا بلاک از کدها بدون نگرانی از اینترها (line breaks) و یا ایندنتها (indent) وجود دارد.
- امکان استفاده از دستورات help, exit, quit بدون نیاز به استفاده از پرانتز وجود دارد.
- Incremental Garbage Collection
این امکان در نسخه 3.12 اضافه شده بود و به طور قابل توجهی، تعداد حداکثر وقفه را کاهش میداد.
این مزیت برای پروژههایی که نیاز به حافظههای بالایی دارند میتواند مفید باشد.
حذف کامل ماژولهای قدیمیو از رده خارج (Dead Batteries)
در PEP 594 به لیست این ماژولها اشاره شده است (https://peps.python.org/pep-0594/)
ماژولهای از رده خارج کتابخانههای استاندارد پایتون به طور کامل حذف شدند.
وجود این ماژولهای از رده خارج باعث سردرگمیبرنامه نویسان به خصوص کاربران تازه وارد میشود.
همینطور استفاده از این ماژولها میتواند باعث پایین آمدن ضریب امنیتی پروژه و یا اپلیکیشن شود.
حذف این ماژولها از طرفی یاعث میشود که برنامه نویسان از ماژولهای جدید تر و با کارایی بالاتر استفاده کنند که در نهایت باعث بالا رفتن کارایی پروژه خواهد شد.
لیست عناوین ماژولهای حذف شده در نسخه 3.13 به شرح زیر میباشد:
(aifc, asynchat, asyncore, audioop, cgi, cgitb, chunk, crypt, imghdr, mailcap, msilib, msilib, nntplib, nis, ossaudiodev, pipes, smtpd, sndhdr, spwd, sunau, telnetlib, uu, xdrlib)
پشتیبانی از IOS
در این نسخه از پلت فرم IOS شامل آیفون و آی پدهای بعد از سال 2013 که دارای ساختار arm64-apple-ios پشتیبانی میشود.
حداقل ورژن قابل پشتیبانی سیستم عامل macos از 10.9 به 10.13 رسیده است.
اطلاعات بیشتر در این زمینه از لینک زیر قابل مشاهده است
PEP 730 – Adding iOS as a supported platform
https://peps.python.org/pep-0730/
بهبود کارایی ماژول ها
در نسخه 3.12 برخی از ماژول ها و فانکشن ها بهبودهایی داشتند. در نسخه 3.13 این بهبود ها بیشتر شده است.
به عنوان نمونه فانکشن textwrap.indent() بهبود پیدا کرده است و برای ورودی های بزرگ (larg input) به مقدار 30 درصد در هنگام کار با متن ها سریع تر شده است .
برخی کتابخانه های پایتون هم توسعه پیدا کردند که ایمپورت کردن زمان (time) را آسان تر کرده است و وابستگی به ماژول های دیگر مانند re (https://docs.python.org/3/library/re.html) و contextlib(https://docs.python.org/3/library/contextlib.html)
را کاهش داده اند.
بهینه سازی حافظه برای Docstrings
در نسخه 3.13 تغییر کوچکی در فاصله های ابتدایی ایندنت ها ایجاد شده است که منجر به بهینه سازی کدهای پایتون (.pyc) می شود.
غیر فعال کردن آزمایشی Global Interpreter Lock (GIL)
GIL مکانیسمیدر CPython است که این اطمینان را ایجاد میکند که در یک زمان، فقط یک رشته (thread) بایت کد پایتون را اجرا میشود.
در شیوه نگارش یا پروپوزال PEP 703 پیشنهاد اختیاری شدن GIL در CPython مطرح شد.
(“Making the Global Interpreter Lock Optional in CPython. “)
این امکان، تک رشته ای بودن (single-threaded) کدهای اجرای پایتون و پروژه را تضمین میکند اما در سی پی یوهای چند هسته ای با عث میشود که هر هسته بتواند یک رشته را به صورت موثر اجرا کند.
در نسخه 3.13، امکان غیرفعال کردن GIL برای اجرای CPython پشتیبانی میشود. برای غیرفعال کردن باید از آپشن –disable-gil استفاده کرد.
با استفاده از این امکان، سرعت و کارایی اجرای پروژه از طریق استفاده از هستههای یک سی پی یو چند هسته ای به صورت موازی افزایش پیدا میکند.
در اکستنشنهای به زبان c، غیرفعال کردن GIL میتواند باعث افزایش سرعت کارایی پروژه شود.
برای سی پی یوهای چند هسته ای، غیر فعال کردن GIL باعث افزایش قابل توجهی در کارایی و پرفورمنس میشود که در پروژههای محاسبات علمی(scientific computing)، تجزیه تحلیل داده (data analysis) و سایر پروژههایی که دارای لود محاسبانی بالایی هستند بسیار مفید است.
همینطور در لینک زیر تمام لاگ های تغییرات در ورژن 3.13 قابل مشاهده است :
https://docs.python.org/3.13/whatsnew/changelog.html#changelog
با خرید هاست حرفه ای پایتون و استفاده از خدمات هاستینگ از پارس وب سرور می توانید پروژه های پایتون را راه اندازی کنید و به جدیدترین نسخههای پایتون برای راه اندازی پروژههای خود استفاده نمایید.
شرکت وب افرا در حوزه هوش مصنوعی فعالیت می کند و آماده همکاری برای هوشمند سازی سایت یا اپلیکیشن می باشد. برای طراحی سایت با باپیتون میتوانید باما تماس بگیرید.