C++26 อาจล่าช้าจากข้อพิพาทคุณสมบัติ Contracts

การกำหนดมาตรฐาน C++26 อาจถูกชะลอออกไปในนาทีสุดท้าย เนื่องมาจากข้อพิพาทเกี่ยวกับคุณสมบัติ Contracts ซึ่งถูกออกแบบมาเพื่อเสริมความปลอดภัยของภาษา

การลงคะแนนในฉบับร่างมาตรฐานนานาชาติ (DIS) ของ C++26 ในเดือนตุลาคมไม่ผ่านการอนุมัติ เนื่องจากมีเสียงคัดค้าน 9 เสียง ในขณะที่มีเสียงเห็นชอบ 13 เสียง และเสียงงดออกเสียง 12 เสียง ซึ่งไม่เป็นไปตามข้อกำหนดของ ISO ที่ต้องมีเสียงคัดค้านไม่เกิน 25 เปอร์เซ็นต์

ข้อพิพาท Contracts

Stroustrup และคณะระบุว่า Contracts และส่วนขยาย P2900 มีเป้าหมายเพื่อเปลี่ยนแปลงธรรมชาติของ C++ และถือเป็นภัยคุกคามต่อการมีอยู่ของ C++ เอง เนื่องจากเพิ่มความซับซ้อนและความใหญ่โตให้กับภาษา

Andreas Fertig มองว่าคำวิจารณ์เหล่านี้ได้รับการพิจารณาแล้ว และการยับยั้งข้อเสนอในขั้นตอนนี้ถือเป็นอันตรายต่อ C++ เอง ซึ่งปัญหาหลักคือการที่นักพัฒนาสามารถสร้างช่องโหว่ด้านความปลอดภัยใน C++ ได้โดยไม่ตั้งใจ ทำให้หลายโครงการหันไปใช้ Rust แทน

ผู้ที่ไม่พอใจ

Harry Bott CEO ของ C++ Alliance ซึ่งดูแลส่วนหน้าของ compiler C++ แบบ open source EDG มองว่าการอภิปรายเรื่อง Contracts ไม่ได้เป็นสิ่งที่ทำลาย C++ เอง

ทางเลือกต่อไป

การประชุมของกลุ่มทำงาน ISO C++ WG21 ในเมือง Búzios ประเทศบราซิล ในสัปดาห์หน้า จะเป็นการเผชิญหน้าครั้งสุดท้าย และกลุ่มต้องตัดสินใจว่าจะเดินหน้าต่อไปอย่างไร

หากมีการเผยแพร่ในปีหน้า ชื่ออย่างเป็นทางการของภาษาฉบับที่แปดนี้คือ “ISO/IEC 14882:2027”

ศัพท์ที่ควรรู้

  • C++26 – คือฉบับร่างมาตรฐานของภาษาโปรแกรม C++ ที่กำลังอยู่ระหว่างการกำหนดมาตรฐาน
  • Contracts – เป็นคุณสมบัติที่ถูกเสนอเพื่อเพิ่มความสามารถในการรับรองความถูกต้องและความปลอดภัยของโค้ด
  • ISO – คือองค์กรระหว่างประเทศที่กำหนดมาตรฐานทางเทคนิคต่างๆ รวมถึงมาตรฐานของ C++ ด้วย
  • DIS – คือ Draft International Standard ซึ่งเป็นขั้นตอนก่อนการอนุมัติมาตรฐานอย่างเป็นทางการของ ISO

ที่มา: The Register

Leave a Comment