Un par de investigadores han tenido la santa paciencia de comprobar empíricamente si es más preciso y legible el código que utiliza palabras clave y variables escritas como PalabrasJuntas o espacios_subrayados (CamelCase vs. snake_case). Se puede leer aquí: An Eye Tracking Study on camelCase and under_score Identifier Styles [PDF]. Ganan los que reemplazan los espacios por «subrayados» (guiones bajos o underscores). Aunque todo esto es un poco como lo de la tortilla de patata con cebolla o sin cebolla, o quien prefiere escribir código con espacios o tabuladores, el estudio tiene sentido pues aspira a entender cuál de los dos estilos es óptimo en cuanto a comprensión y velocidad de lectura.
La verdad es que nunca me había cuestionado ni que hubiera un debate respecto a esto, porque en cada lenguaje de programación las reglas (o recomendaciones) son un poco diferentes. Los hay que distinguen entre combinaciones de mayúsculas y minúsculas y los que no; los que admiten el subrayado como separador y los que no, los que obligan a que las primeras letras sean mayúsculas y los que no…
Y tampoco había leído acerca de los nombres comunes en castellano para este asunto. De modo que está el estilo CamelCase (llamado así porque las mayúsculas de las palabras interiores «parecen las jorobas de un camello»), que la Wikipedia traduce como «Letra de caja camello» y snake_case (donde supongo que la rayita del subrayado parece una serpiente) que a veces se traduce como todo_minúsculas. También parece debatirse si en el snake_case las palabras pueden empezar en mayúsculas o minúsculas, igual que la primera letra de las de CamelCase (!?) Está claro que la gente por debatir y debatir, que no quede…
Personalmente yo combino ambos estilos, según me apetece, o según el lenguaje, aunque es verdad que si opto por una de las fórmulas (pudiendo usar ambas) suelo mantenerlo todo en ese estilo en el mismo código. Lo cual tampoco es fácil, porque a veces copias código antiguo o reutilizas el que han compartido otras personas y la cosa se lía, pero bueno.
El estudio de legibilidad se hizo con un sistema de seguimiento ocular automático (eye tracking) y una muestra muy pequeña de participantes voluntarios… Así que a saber cómo era la fiabilidad. Los resultados indicaron que aunque la precisión era la misma cuando los voluntarios leían código en ambos estilos, pero que sí que había una notable diferencia en la velocidad de lectura que es lo más interesante. Y que permite traducir a horas-hombre los resultados, con ahorros para quienes se dejan los ojos frente a la pantalla.
(Vía @JavierGonzalez.)