Yêu cầu là - tốt nhất - ngây thơ.
SLOC không chính xác là một số liệu đáng tin cậy cho bất cứ điều gì hữu ích, ngoại trừ có thể so sánh quy mô của hai hoặc nhiều dự án. Hơn nữa, có hai loại SLOC riêng biệt, LỘC vật lý và LỘC logic và những loại này có thể khác nhau đáng kể. Hãy xem xét ví dụ này, từ Wikipedia :
for (i = 0; i < 100; i += 1) printf("hello");
Ở đây chúng ta có một LỘC vật lý, nhưng hai LỘC logic ( for
và printf
câu lệnh). Nhưng tất nhiên chúng ta có thể viết ví dụ như:
for (i = 0; i < 100; i += 1)
printf("hello");
Điều này sẽ cho chúng ta hai LỘC và hai LỘC logic. Tôi nghĩ rõ ràng rằng bất kỳ phép đo "lỗi trên mỗi địa phương" nào phụ thuộc vào các LỘC vật lý sẽ bị phá hỏng bởi phong cách lập trình, do đó, phép đo của chúng tôi sẽ vô dụng.
Mặt khác, nếu chúng ta đã đi với các LỘC logic thì phép đo của chúng ta sẽ phụ thuộc rất nhiều vào các đặc điểm cú pháp của ngôn ngữ. Mặc dù số liệu kết quả có thể hơi hữu ích khi so sánh các dự án được viết bằng cùng một ngôn ngữ, nhưng nó sẽ khá vô dụng đối với các dự án được viết bằng các ngôn ngữ khác nhau.
Một nguồn có thể cho khiếu nại là thất bại Phần mềm của Les Hatton - những kẻ theo dõi và ngụy biện :
Chúng ta có thể kết luận rằng sự lựa chọn ngôn ngữ lập trình ít nhất liên quan đến độ tin cậy.
Sau đó, bài báo đề cập đến mật độ khiếm khuyết tương tự cho C và C ++:
Trong một nghiên cứu gần đây so sánh hai hệ thống tương tự có kích thước tương tự nhau, (khoảng 50.000 dòng mỗi dòng), một trong C và một trong C ++ được thiết kế đối tượng, mật độ khiếm khuyết kết quả được hiển thị tương tự nhau ở mức 2,4 và 2,9 trên 1000 dòng.
Tuy nhiên, điều này không có nghĩa là "lỗi trên mỗi LỘC" là không đổi trên các ngôn ngữ lập trình, hoặc nó sẽ có ý nghĩa nếu có.