lunes, 5 de septiembre de 2011

Legibilidad en lenguajes de programación


por Alfred Thompson
visto en MSDN Blogs


Recientemente vi una comparación de un montón de lenguajes de programación en línea. Lenguajes de script: PHP, Perl, Python, Ruby Mi primera y segunda reacción fue ¡rayos! Ahora tengo mis prejuicios - prejuicios que pueden no ser compartidos por otros, por supuesto. Pero me gusta el código legible y para mí cada vez que veo un carácter especial (cualquier cosa que no es un alfanumérico) me frena. Esto me hizo pensar acerca de ¿hacia dónde vamos en el diseño de lenguajes de programación?, ¿Nos estamos moviendo hacia adelante (lo que sea que eso signifique) o hacia atrás o hacia los lados justo?

Hace tiempo, cuando empecé a programar en los años 40's, los tres grandes lenguajes de programación eran FORTRAN y COBOL con un pujante lenguaje llamado BASIC. FORTRAN fue usado por los matemáticos y los científicos. COBOL se utiliza para aplicaciones de negocios. BASIC era un lenguaje de enseñanza / aprendizaje que se extendía a los negocios. COBOL fue a la vez amado y odiado por diferentes personas por su palabrería. Pero por lo menos comprensible. Tomemos de ejemplo el siguiente ciclo:

PERFORM VARYING WS-BOTTLE-NUM FROM 98 BY -1
               UNTIL WS-BOTTLE-NUM < 2
END-PERFORM

Muy cerca de una sentencia de Inglés. Compare eso con esta muestra de un lenguaje al estilo de C (C #).

for (WSBOTTLENUM = 98; WSBOTTLENUM < 2; WSBOTTLENUM--)
{
}

¿Cuál es más evidente? Haz de cuenta que no eres un programador experimentado.

BASIC (Visual Basic, en este caso) está en un punto intermedio.

For WSBOTTLENUM = 98 To 1 Step -1
 
Next

El Step - la cuenta atrás - es más fácil de entender, para mí al menos. Ahora echemos un vistazo a algo muy simple.

k = i / 10;

Esto lleva a los principiantes una locura. ¿Qué está pasando aquí? Claro que los programadores saben, pero para algunos  principiantes es difícil entender la dirección en que la operación va. Compare esto con el mismo código en COBOL

divide i by 10 giving k

¿Muchas palabras? Claro, pero por lo menos hasta un principiante puede leerlo. Ahora, no estoy diciendo que todos debemos volver a COBOL, aunque honestamente con IDE's modernos y características como Intellisence sería mucho más fácil de lo que era cuando yo estaba escribiendo a tarjetas perforadas.

Más bien estoy sugiriendo que para un principiante los idiomas pueden y probablemente deberían ser más claros en su lectura en lugar de más oscuros - que el Inglés es más fácil de aprender en vez de "¿qué significa # en este lenguaje de programación?"

Solo por diversión, si desean ver como lucen diferentes lenguajes de programación, visiten el sitio 99 botellas de cerveza.

Este sitio Web contiene una colección de la canción de 99 botellas de cerveza programados en diferentes lenguajes de programación. En realidad, la canción se representa en 1434 diferentes lenguajes de programación y sus variaciones.

No hay comentarios: