رأیگیری نهایی C++26 در ISO رد شد
خلاصهٔ کاملتر
۲۳ اکتبر ۲۰۲۶ پیشنویس نهایی C++26 که بهش DIS میگن (یعنی مرحله یکی مونده به آخر استاندارد ISO) تو رأیگیری نهادهای ملی کشورها رد شد. برای قبول شدن، اکثریت دوسوم لازم بود که به دست نیومد. آندریاس فرتیگ که خودش عضو کمیته استاندارد C++ و نماینده آلمانه، تو این مقاله میگه این اولین باره که DIS زبان C++ رد میشه. تنها نمونه مشابهی که پیدا کرده، C++/CLI در سال ۲۰۰۶ بوده که پروژهش کلاً متوقف شد.
طبق نظرهایی که کشورها ثبت کردن، دلیل رد شدن قابلیت Contracts هست؛ یعنی شرطهایی که برنامهنویس روی ورودی و خروجی تابع میذاره و موقع اجرا چک میشن. چند کشور معتقدن این قابلیت هنوز برای انتشار آماده نیست. Contracts سابقه طولانی داره: سال ۲۰۱۹ وارد C++20 شد و تو همون جلسه حذف شد. بعد یه گروه مطالعاتی از ۲۰۲۰ تا حدود ۲۰۲۴ روش کار کرد و در نهایت با رأی اکثریت وارد C++26 شد. مارس ۲۰۲۶ هم کمیته WG21 با اکثریت زیاد پیشنویس رو تأیید کرد.
نویسنده توضیح میده که تا حالا رسم این بود که کشورها فقط وقتی به استاندارد رأی منفی بدن که اطلاعات جدیدی پیدا شده باشه یا تو روند کار ایرادی دیده بشه. مخالفها میگن اطلاعات جدید وجود داره، ولی فرتیگ میگه یه مقاله جدید با استدلالهای قدیمی از نظر اون اطلاعات جدید حساب نمیشه.
حالا ISO چهار راه جلوی پای کمیته میذاره: فرستادن پیشنویس اصلاحشده برای DIS دوباره، برگردوندنش به مرحله قبلی (CD)، انتشارش به شکل Technical Specification، یا لغو کامل پروژه. همه این راهها یعنی تأخیر، و همهشون به اکثریت تو WG21 نیاز دارن. مشکل اینجاست که موافقها احتمالاً حاضر نیستن Contracts رو حذف کنن و مخالفها هم بدون حذفش رأیشون رو عوض نمیکنن.
حتی گزینه لغو C++26 هم یعنی برگشتن به C++23 و اینکه همه قابلیتهای تأییدشده باید دوباره تو C++29 پیشنهاد بشن. چون هر قابلیت به یه نفر نیاز داره که مقالهش رو پیش ببره، ممکنه بعضیهاشون جا بمونن. جلسه بعدی کمیته ۱۶ نوامبر هست و اولویت اولش شکستن این بنبسته.
نویسنده با صراحت میگه این اتفاق رو یه فاجعه برای جامعه C++ میدونه. به نظرش هر استاندارد ISO مجموعهای از مصالحههاست و همه گاهی میبرن و گاهی میبازن. اون معتقده تو این رأیگیری طرف بازنده حاضر نشد نتیجه رو بپذیره و حالا سؤال اصلی اینه که کمیته میتونه دوباره اعتماد رو بسازه یا نه.
نکات کلیدی:
- رأیگیری DIS برای C++26 در ۲۳ اکتبر ۲۰۲۶ بعد از ۱۲ هفته رد شد
- برای تأیید، اکثریت دوسوم نهادهای ملی لازم بود
- دلیل اصلی رد شدن، قابلیت Contracts هست
- تنها DIS ردشده مشابه، C++/CLI در ۲۰۰۶ بوده که پروژهش متوقف شد
- چهار گزینه: DIS دوباره، برگشت به مرحله CD، انتشار بهشکل Technical Specification، یا لغو پروژه
- جلسه بعدی WG21 در ۱۶ نوامبر برگزار میشه