Permettez-moi de ne pas être d'accord sur la lisibilité. Non, pas complètement: un bon code doit être lisible, et cela peut être facilement réalisé avec suffisamment de commentaires.
Mais je considère deux types de WTF: ceux pour lesquels vous vous demandez si le programmeur est allé plus loin que la programmation 101 et ceux pour lesquels vous ne comprenez absolument pas la génialité du code. Certains codes peuvent paraître très étranges au début, mais c’est en fait une solution très inventive à un problème difficile. Le second ne doit pas compter dans le compteur WTF et peut être évité par des commentaires.
Un code très lisible peut être très, très lent. Une solution moins lisible peut améliorer considérablement la vitesse. R est un excellent exemple d'une langue où c'est souvent vrai. On aime y éviter le plus de boucles possibles. En général, je considère que le code le plus rapide est le meilleur, même s'il est moins lisible. En d’autres termes, si l’amélioration est importante bien sûr et que suffisamment de commentaires sont insérés pour expliquer l’utilisation du code.
De plus, la gestion de la mémoire peut être cruciale dans de nombreuses applications scientifiques. Le code qui est très lisible, tend à être un peu bâclé dans l'utilisation de la mémoire: il y a juste plus d'objets créés. Dans de nombreux cas, l'utilisation intelligente de la mémoire rend le code moins lisible. Mais si vous jonglez avec des gigaoctets de séquences d’ADN, par exemple, la mémoire est un facteur crucial. Encore une fois, je considère que le code utilisant moins de mémoire est le meilleur code, quelle que soit sa lisibilité.
Alors oui, la lisibilité est importante pour un bon code. Je connais l’adagium d’Uwe Liggis: penser mal et ordinateurs ne coûtent pas cher. Mais dans mon domaine (génomique statistique), les temps de calcul d’une semaine et une utilisation de la mémoire supérieure à 40 Go ne sont pas considérés comme anormaux. Ainsi, une amélioration de deux fois la vitesse et de la moitié de la mémoire vaut beaucoup plus que ce petit peu de lisibilité.