Hãy để tôi vui lòng không đồng ý về khả năng đọc. Không, không hoàn toàn: Mã tốt nên có thể đọc được, và điều đó có thể dễ dàng đạt được với đủ ý kiến.
Nhưng tôi xem xét hai loại WTF: những nơi mà bạn tự hỏi liệu lập trình viên có tiến xa hơn lập trình 101 hay không, và những nơi bạn hoàn toàn không nắm bắt được tính nguyên bản của mã. Một số mã ban đầu có thể trông rất lạ, nhưng thực sự là một giải pháp rất sáng tạo cho một vấn đề khó khăn. Cái thứ hai không nên tính vào đồng hồ WTF và có thể tránh được bằng các bình luận.
Mã rất dễ đọc có thể rất, rất chậm. Một giải pháp ít đọc hơn có thể giúp cải thiện tốc độ gấp nhiều lần. R là một ví dụ tuyệt vời về ngôn ngữ thường là đúng. Một người thích tránh vòng lặp ở đó càng nhiều càng tốt. Nói chung, tôi coi mã nhanh nhất là mã tốt hơn mặc dù nó ít đọc hơn. Đó là, nếu sự cải tiến là không đáng kể, và đủ các bình luận được đưa vào để giải thích những gì mã làm.
Thậm chí, quản lý bộ nhớ có thể rất quan trọng trong nhiều ứng dụng khoa học. Mã rất dễ đọc, có xu hướng cẩu thả trong việc sử dụng bộ nhớ: chỉ có nhiều đối tượng được tạo. Trong một số trường hợp, việc sử dụng bộ nhớ thông minh làm cho mã trở nên ít đọc hơn. Nhưng nếu bạn tung hứng xung quanh hàng gigabyte chuỗi DNA chẳng hạn, bộ nhớ là một yếu tố rất quan trọng. Một lần nữa, tôi coi mã ít bộ nhớ hơn là mã tốt hơn, bất kể khả năng đọc.
Vì vậy, có, khả năng đọc là quan trọng cho mã tốt. Tôi biết adagium của Uwe Liggis: Suy nghĩ đau và máy tính là rẻ. Nhưng trong lĩnh vực của tôi (genomics thống kê), thời gian tính toán trong một tuần và việc sử dụng bộ nhớ trên 40 Gb không được coi là bất thường. Vì vậy, một sự cải thiện gấp đôi tốc độ và một nửa bộ nhớ đáng giá hơn rất nhiều so với mức độ dễ đọc thêm đó.