ไลบรารีภาษา C ที่มีชื่อว่า MisraStdC ได้จุดประกายการถกเถียงอย่างรุนแรงในชุมชนนักพัฒนาเกี่ยวกับความกังวลในการสร้างความสับสนในชื่อโดยเจตนากับมาตรฐาน MISRA C ที่มีชื่อเสียง ความขัดแย้งนี้เน้นย้ำถึงปัญหาที่ยังคงมีอยู่เกี่ยวกับแนวปฏิบัติในการตั้งชื่อในซอฟต์แวร์โอเพนซอร์ส
ความขัดแย้งเรื่องการตั้งชื่อ
ผู้เขียนไลบรารี Siddharth Mishra อ้างว่าชื่อ MisraStdC มาจากนามสกุลของเขาเองรวมกับ Std สำหรับ standard และ C สำหรับภาษาโปรแกรมมิ่ง อย่างไรก็ตาม สมาชิกในชุมชนได้แสดงความกังวลอย่างจริงจังเกี่ยวกับความคล้ายคลึงที่โดดเด่นกับ MISRA C ซึ่งเป็นชุดแนวทางการเขียนโค้ดที่ได้รับการยอมรับและใช้กันอย่างแพร่หลายในอุตสาหกรรมที่มีความปลอดภัยสำคัญ เช่น ยานยนต์และการบินอวกาศ
ความสงสัยมีจุดศูนย์กลางอยู่ที่องค์ประกอบที่น่าสงสัยหลายประการ นักวิจารณ์ชี้ให้เห็นว่าผู้เขียนได้ตัด h ออกจากนามสกุล Mishra ของเขาเพื่อสร้าง Misra ซึ่งบังเอิญตรงกับมาตรฐาน MISRA พอดี นอกจากนี้ แม้ว่าผู้เขียนจะอธิบายว่า Std ย่อมาจาก standard แต่บางคนสังเกตว่ามันไม่สอดคล้องกับตัวอักษรใน Siddharth
คุณเอาชื่อ mishra มาเปลี่ยนเป็น misra.h แล้วเรียกไลบรารีของคุณว่า MisraStdC และคาดหวังให้คนเชื่อว่าความสับสนนี้ไม่ได้เจตนาจริงหรือ? เรื่องทั้งหมดนี้รู้สึกไม่ซื่อสัตย์อย่างเหลือเชื่อ
คำอธิบายของผู้เขียนไม่สามารถระงับความกังวลของชุมชนได้ เมื่อถูกกดดันเกี่ยวกับ h ที่หายไป นักพัฒนาระบุว่ามันแสดงถึงมาตรฐานส่วนตัวของเขาที่เขาใช้มากกว่ายูทิลิตี้ C มาตรฐาน
ข้อถกเถียงเรื่องการแยกชื่อ:
- คำอ้างของผู้เขียน: " MisraStdC " = " Misra " (จาก Siddharth Mishra ) + " Std " (Standard) + " C " (Programming Language)
- ข้อกังวลของชุมชน:
- ตัดตัวอักษร "h" ออกจาก " Mishra " เพื่อให้ตรงกับมาตรฐาน MISRA อย่างแท้จริง
- " Std " ไม่สอดคล้องกับตัวอักษรใน " Siddharth "
- สร้างความสับสนกับแนวทางการเขียนโค้ด MISRA C ที่มีอยู่แล้ว
- ดูเหมือนจะเป็นการ typo-squatting โดยเจตนา
คุณค่าทางเทคนิคถูกบดบัง
แม้จะมีความขัดแย้งเรื่องการตั้งชื่อ แต่ไลบรารีตัวนี้ดูเหมือนจะมีฟังก์ชันการทำงานที่ถูกต้อง MisraStdC ให้คุณสมบัติ C11 ที่ทันสมัย รวมถึงการพิมพ์แบบจัดรูปแบบ คอนเทนเนอร์ทั่วไป และยูทิลิตี้ที่ใช้มาโคร โปรเจกต์มีเป้าหมายที่จะขยายความสามารถของ C ในขณะที่รักษาเวลาในการคอมไพล์ให้เร็วกว่าเมื่อเทียบกับทางเลือก C++
นักพัฒนาบางคนได้ให้ข้อเสนอแนะทางเทคนิคที่สร้างสรรค์ โดยสังเกตการใช้คุณสมบัติ C23 ของไลบรารี เช่น __VA_OPT__
และแนะนำการปรับปรุงสำหรับการจัดการประเภททั่วไป ผู้เขียนได้ตอบสนองต่อการอภิปรายทางเทคนิคเหล่านี้ แสดงให้เห็นถึงการมีส่วนร่วมอย่างแท้จริงกับชุมชนนักพัฒนา
คุณสมบัติของไลบรารี MisraStdC :
- ไลบรารี C11 สมัยใหม่พร้อมคุณสมบัติบางส่วนของ C23
- ความสามารถในการพิมพ์แบบมีรูปแบบ
- คอนเทนเนอร์และโครงสร้างข้อมูลแบบทั่วไป
- ยูทิลิตี้แบบแมโครสำหรับเพิ่มประสิทธิภาพการทำงานของ C
- รองรับคอมไพเลอร์หลายตัว ( GCC , Clang , MSVC )
- การคอมไพล์ที่เร็วกว่าเมื่อเปรียบเทียบกับทางเลือกของ C++
ผลกระทบในวงกว้าง
เหตุการณ์นี้สะท้อนถึงความท้าทายที่ใหญ่กว่าในระบบนิเวศโอเพนซอร์สที่ความขัดแย้งในการตั้งชื่อสามารถสร้างความสับสนและทำลายความไว้วางใจ มาตรฐาน MISRA C มีประวัติศาสตร์หลายทศวรรษในแอปพลิเคชันที่มีความปลอดภัยสำคัญ ทำให้ความสับสนที่อาจเกิดขึ้นเป็นปัญหาเป็นพิเศษสำหรับนักพัฒนาที่ทำงานในอุตสาหกรรมที่มีการควบคุม
ความขัดแย้งนี้ยังแสดงให้เห็นว่าการรับรู้ของชุมชนสามารถส่งผลกระทบอย่างมีนัยสำคัญต่อการรับของโปรเจกต์ โดยไม่คำนึงถึงคุณค่าทางเทคนิค แม้ว่าผู้เขียนอาจมีเจตนาที่บริสุทธิ์ แต่การปรากฏของความสับสนที่เจตนาได้บดบังการอภิปรายเกี่ยวกับความสามารถและประโยชน์ที่แท้จริงของไลบรารี
อ้างอิง: MikauParser