Pozwólcie, że nie zgadzam się co do czytelności. Nie, nie do końca: dobry kod powinien być czytelny i można to łatwo osiągnąć za pomocą wystarczającej liczby komentarzy.
Rozważam jednak dwa rodzaje WTF: te, w których zastanawiasz się, czy programista przekroczył programowanie 101, i te, w których absolutnie nie rozumiesz genialności kodu. Niektóre kody na początku mogą wyglądać bardzo dziwnie, ale w rzeczywistości są bardzo pomysłowym rozwiązaniem trudnego problemu. Drugi nie powinien się liczyć w mierniku WTF i można tego uniknąć dzięki komentarzom.
Bardzo czytelny kod może być bardzo, bardzo wolny. Mniej czytelne rozwiązanie może wielokrotnie zwiększyć prędkość. R jest doskonałym przykładem języka, w którym często tak jest. Lubi się unikać pętli for jak najwięcej. Ogólnie uważam, że najszybszy kod jest lepszy, nawet jeśli jest mniej czytelny. Oznacza to, że jeśli poprawa jest znaczna poza kursem i wstawiono wystarczającą liczbę komentarzy, aby wyjaśnić, co robi kod.
Co więcej, zarządzanie pamięcią może mieć kluczowe znaczenie w wielu zastosowaniach naukowych. Kod, który jest bardzo czytelny, jest raczej niechlujny w użyciu pamięci: powstaje tylko więcej obiektów. W niektórych przypadkach inteligentne wykorzystanie pamięci powoduje, że kod jest mniej czytelny. Ale jeśli na przykład żonglujesz gigabajtami sekwencji DNA, kluczowym czynnikiem jest pamięć. Ponownie uważam, że kod wymagający mniejszej ilości pamięci jest lepszy, niezależnie od czytelności.
Tak, więc czytelność jest ważna dla dobrego kodu. Znam adagium Uwe Liggisa: myślenie boli, a komputery są tanie. Ale w mojej dziedzinie (genomika statystyczna) obliczeniowe czasy tygodnia i zużycie pamięci powyżej 40 Gb nie są uważane za nieprawidłowe. Tak więc poprawa dwukrotnie większej prędkości i połowy pamięci jest warta dużo więcej niż ta dodatkowa odrobina czytelności.