Một thư viện lập trình C có tên MisraStdC đã gây ra cuộc tranh luận sôi nổi trong cộng đồng nhà phát triển về những lo ngại liên quan đến việc cố tình gây nhầm lẫn tên với tiêu chuẩn MISRA C nổi tiếng. Cuộc tranh cãi này làm nổi bật những vấn đề đang diễn ra xung quanh thực tiễn đặt tên trong phần mềm mã nguồn mở.
Tranh cãi về việc đặt tên
Tác giả của thư viện, Siddharth Mishra , tuyên bố rằng tên MisraStdC xuất phát từ họ của chính anh kết hợp với Std cho standard (tiêu chuẩn) và C cho ngôn ngữ lập trình. Tuy nhiên, các thành viên cộng đồng đã nêu lên những lo ngại nghiêm trọng về sự tương đồng đáng chú ý với MISRA C , một bộ hướng dẫn mã hóa đã được thiết lập và được sử dụng rộng rãi trong các ngành công nghiệp quan trọng về an toàn như ô tô và hàng không vũ trụ.
Sự hoài nghi tập trung vào một số yếu tố đáng ngờ. Những người chỉ trích chỉ ra rằng tác giả đã bỏ chữ h khỏi họ Mishra của mình để tạo ra Misra, điều này tình cờ trùng khớp hoàn toàn với tiêu chuẩn MISRA . Ngoài ra, trong khi tác giả giải thích Std là viết tắt của standard, một số người lưu ý rằng nó không phù hợp với các chữ cái trong Siddharth .
Bạn có thực sự lấy tên mishra và biến nó thành misra.h rồi gọi thư viện của bạn là MisraStdC và mong đợi mọi người tin rằng sự nhầm lẫn này không phải là cố ý? Toàn bộ chuyện này cảm thấy cực kỳ không trung thực.
Những lời giải thích của tác giả đã không làm dịu đi những lo ngại của cộng đồng. Khi bị chất vấn về chữ h bị thiếu, nhà phát triển tuyên bố rằng nó đại diện cho tiêu chuẩn cá nhân của anh mà anh sử dụng nhiều hơn các tiện ích C tiêu chuẩn.
Tranh cãi về việc phân tích tên:
- Tuyên bố của tác giả: " MisraStdC " = " Misra " (từ Siddharth Mishra ) + " Std " (Standard) + " C " (Ngôn ngữ lập trình)
- Mối quan ngại của cộng đồng:
- Bỏ chữ "h" từ " Mishra " để khớp chính xác với tiêu chuẩn MISRA
- " Std " không tương ứng với các chữ cái trong " Siddharth "
- Tạo ra sự nhầm lẫn với các hướng dẫn viết mã MISRA C đã được thiết lập
- Có vẻ như là việc cố tình chiếm đoạt tên miền tương tự (typo-squatting)
Giá trị kỹ thuật bị lu mờ
Bất chấp tranh cãi về tên gọi, bản thân thư viện dường như cung cấp chức năng hợp pháp. MisraStdC cung cấp các tính năng C11 hiện đại bao gồm in có định dạng, container chung và các tiện ích dựa trên macro. Dự án nhằm mục đích mở rộng khả năng của C trong khi duy trì thời gian biên dịch nhanh hơn so với các lựa chọn thay thế C++ .
Một số nhà phát triển đã cung cấp phản hồi kỹ thuật mang tính xây dựng, lưu ý việc thư viện sử dụng các tính năng C23 như __VA_OPT__
và đề xuất cải tiến cho việc xử lý kiểu chung. Tác giả đã phản hồi tích cực với những thảo luận kỹ thuật này, cho thấy sự tham gia thực sự với cộng đồng phát triển.
Tính năng của thư viện MisraStdC :
- Thư viện C11 hiện đại với một số tính năng C23
- Khả năng in định dạng
- Container tổng quát và cấu trúc dữ liệu
- Tiện ích dựa trên macro để nâng cao chức năng C
- Hỗ trợ đa trình biên dịch ( GCC , Clang , MSVC )
- Biên dịch nhanh hơn so với các lựa chọn thay thế C++
Tác động rộng hơn
Sự cố này phản ánh một thách thức lớn hơn trong hệ sinh thái mã nguồn mở nơi xung đột tên có thể tạo ra sự nhầm lẫn và làm suy yếu lòng tin. Tiêu chuẩn MISRA C có lịch sử hàng thập kỷ trong các ứng dụng quan trọng về an toàn, khiến bất kỳ sự nhầm lẫn tiềm ẩn nào đều đặc biệt có vấn đề đối với các nhà phát triển làm việc trong các ngành được quy định.
Cuộc tranh cãi cũng chứng minh cách nhận thức của cộng đồng có thể tác động đáng kể đến việc tiếp nhận một dự án, bất kể giá trị kỹ thuật của nó. Trong khi tác giả có thể có ý định vô tội, vẻ ngoài của sự nhầm lẫn có chủ ý đã che lấp các cuộc thảo luận về khả năng và tính hữu ích thực tế của thư viện.
Tham khảo: MikauParser