چگونه جامعه PHP ویژگی هایی را به خود زبان اضافه می کند

آیا تا به حال به این فکر کرده اید که چگونه یک زبان در مورد افزودن ویژگی های جدید یا تصمیم گیری در مورد تغییرات از نسخه به نسخه تصمیم می گیرد؟
من برای مدت طولانی (بیش از 10 سال!) در پروژه PHP مشارکت داشته ام و به طور منظم در پروژه های داخلی مختلف، مستندات، تعدیل نظرات، اشکالات و هزاران چیز دیگر مشارکت داشته ام.
پروژه PHP به طور کلی یک سیستم کارما را اجرا می کند. دهها پروژه فرعی وجود دارد، بنابراین شخصی که به تعدیل ردیاب اشکال دسترسی دارد، لزوماً به بهروزرسانی اسناد دسترسی ندارد. این سیستمی است که به خوبی کار می کند و تا زمانی که من درگیر آن بوده ام وجود داشته است.
RFC ها
زبان پیاچپی از طریق یک فرآیند ایجاد اجماع تکامل مییابد که در آن ویژگیهای جدید، حذف و تغییرات پیشنهاد، بحث و تایید میشوند. مرکز این فرآیند، رویه درخواست نظرات (RFC) است، یک مکانیسم دموکراتیک که مشارکت کنندگان را قادر میسازد تا پیشرفتها را پیشنهاد کنند و به طور جمعی در مورد مسیر آینده PHP تصمیم بگیرند.
RFC چیست؟
RFC مخفف عبارت Request for Comments است. در زمینه PHP، RFC یک سند رسمی است که تغییر زبان را پیشنهاد می کند. این تغییر میتواند افزودن یک ویژگی جدید، اصلاح یک ویژگی موجود یا پیشنهاد حذف یک جنبه خاص از زبان باشد.
فرآیند RFC
فرآیند RFC شامل چندین مرحله است که برای اطمینان از بررسی کامل هر پیشنهاد و اینکه همه طرفهای علاقهمند فرصتی برای ارائه نظرات دارند، طراحی شدهاند.
1. تولید ایده و بحث
هر کسی می تواند ایده ای برای بهبود PHP داشته باشد، اما تبدیل آن به یک RFC معمولا نیاز به بحث و اصلاح دارد. این معمولاً در لیست پستی داخلی PHP یا سایر کانال های ارتباطی رخ می دهد، جایی که توسعه دهندگان ایده های خود را به اشتراک می گذارند و بازخورد اولیه را دریافت می کنند.
2. نوشتن RFC
پیشنهاد دهنده، اغلب با کمک دیگران، یک سند رسمی RFC را می نویسد که جزئیات پیشنهاد را شرح می دهد. RFC شامل منطقی برای تغییر پیشنهادی، توضیح دقیق خود تغییر، هرگونه مشکل بالقوه سازگاری با عقب و سایر جزئیات مرتبط است. اگر پیشنهاد شامل یک تغییر فنی در پایگاه کد PHP باشد، RFC همچنین ممکن است شامل وصلهها یا نمونههایی باشد که این تغییر را نشان میدهند.
3. ارسال RFC برای بحث
هنگامی که RFC آماده شد، در ویکی PHP در بخش RFC منتشر می شود. در آنجا، برای هر کسی که علاقه مند است – نه فقط کسانی که می توانند رای بدهند – قابل بحث است. این دوره بحث فرصتی حیاتی برای جامعه برای بحث در مورد شایستگی پیشنهاد، شناسایی مسائل بالقوه و پیشنهاد بهبود است. بسته به بازخورد، پیشنهاد دهنده ممکن است RFC را در این مرحله بازبینی کند.
4. رای دادن
پس از یک دوره بحث مناسب، معمولاً دو هفته، رأی گیری در مورد پذیرش RFC انجام می شود. فقط مشارکت کنندگان داخلی PHP (کسانی که در گذشته در کد منبع PHP مشارکت داشته اند) واجد شرایط رای دادن هستند. اگر RFC تغییر زبان را پیشنهاد کند، برای تصویب به اکثریت 2/3 نیاز دارد. در مقابل، یک اکثریت ساده 50%+1 برای انواع دیگر تغییرات کافی است.
5. اجرا
اگر RFC عبور کند، تغییرات پیشنهادی در کد منبع PHP ادغام می شوند. پیشنهاد دهنده اغلب این کار را انجام می دهد، اما مشارکت کنندگان دیگر نیز می توانند اجرا را انجام دهند. هنگامی که تغییرات اجرا و آزمایش شدند، در مخزن کد منبع PHP ادغام می شوند و این ویژگی بخشی از نسخه بعدی PHP می شود.
دخالت من
زبان PHP بسیار گسترده و دارای ویژگی های غنی است. توابع و ویژگی هایی وجود دارد که بسیاری از مردم از وجود آنها اطلاعی ندارند، و برخی از بخش های کاملاً تخصصی زبان که بر زیر مجموعه خاصی از ویژگی ها تمرکز می کنند.
به عنوان یک انتخاب شخصی، من فقط به یک RFC رأی می دهم که مستقیماً بر من و کاری که انجام می دهم تأثیر بگذارد. من احساس میکنم که بهعنوان توسعهدهندهای که هر روز از این زبان استفاده میکند، بهترین موقعیت را دارم تا درباره ویژگیهایی که استفاده میکنم، تصمیم آگاهانه بگیرم، نه آنهایی که هرگز لمس نکردهام. من کسانی را که واجد شرایط تر از من هستند می گذارم تا به آن ها رأی دهند.
نمونه RFC ها
در زیر تعدادی از محبوبترین RFCهایی که در طول سالها پیادهسازی شدهاند، آورده شده است.
اگر علاقه مند به مشارکت در پروژه PHP هستید، راه های زیادی برای مشارکت وجود دارد.
اگر احساس می کنید که PHP را به خوبی می شناسید، باید گواهینامه PHP ما را نیز بررسی کنید.