Fotolia
Por qué realmente no existe un mejor lenguaje de programación para aprender primero
Algunos consideran que Java es el mejor lenguaje de programación para que los desarrolladores aprendan primero. Pero, ¿realmente importa? La mayoría de los idiomas se componen de los mismos componentes básicos.
Hace un tiempo, TheServerSide –una de las publicaciones especializadas de TechTarget para la comunidad de usuarios empresariales de Java– abordó el valor de enseñar Java como un lenguaje de programación introductorio. El autor hizo un buen trabajo al analizar el lenguaje en términos de sus características, su complejidad y cómo se compara con otros lenguajes de programación.
Es una buena lectura, una que recomiendo. Sin embargo, dicho artículo hace una suposición que creo que es discutible: hay una mejor programación para aprender en primer lugar. Yo diría que, dado que los conceptos básicos de la programación prevalecen en cualquier idioma, realmente no importa cuál se aprenda primero.
Permítanme decirlo de otra manera. Para un niño recién nacido, ¿realmente importa qué idioma aprende primero? ¿Es mejor aprender chino o inglés? ¿Por qué no árabe o sueco primero? El hecho es que el niño va a aprender un idioma pase lo que pase. Es parte del desarrollo humano. La verdadera pregunta es: ¿Dominará el niño el idioma?
¿Cómo funciona el lenguaje?
En un nivel alto, cada idioma tiene los mismos componentes básicos: sustantivos, verbos, adverbios, conjunciones, etc. Lo que hace que un idioma sea diferente son los sonidos asociados con sus palabras, su gramática y sus modismos. Algunos lingüistas incluso llegan a afirmar que un ser humano nace con una capacidad innata para el lenguaje.
Lo mismo puede decirse de los lenguajes de programación. En un nivel alto, todos tienen los mismos bloques de construcción: variables, operadores, declaraciones, estructuras, etc. Sí, algunos lenguajes de programación tienen características que están diseñadas para manejar tecnologías especiales, por ejemplo, subprocesos. Pero a nivel de bloques de construcción, las formas en que funcionan estos "mejores primeros lenguajes de programación para aprender" son sorprendentemente similares. Las declaraciones if-then-else (si-entonces-o) necesitan una condición. Los bucles necesitan algún tipo de mecanismo de iteración. Los operadores necesitan comportamiento.
Parece que la mayor parte del esfuerzo que se pone en la enseñanza de lenguajes de programación se centra en hacer que el código sea comprensible para el compilador/intérprete. Esa es la sintaxis. Tendrá que dominar la semántica en el futuro, si es que lo hace. Hay un buen argumento que puede argumentar que, si enseñáramos inglés de la manera en que enseñamos programación de computadoras, los estudiantes nunca superarían la concordancia del tiempo verbal.
La sintaxis importa, pero la semántica tiene el valor
Tan importante como la sintaxis es el uso del lenguaje, sin olvidar que el propósito del lenguaje no es dominar la sintaxis. Todavía no me he encontrado con un aspirante a programador que se entusiasme por aprender el formato de un comando print. Sin embargo, una vez que se usa ese comando para crear el programa Hello World inicial, las luces se apagan.
La mayoría de los desarrolladores que conozco quieren crear un código que tenga significado. Esto no quiere decir que dominar la sintaxis de un idioma sea solo una necesidad extenuante. Hay una cierta belleza en el uso elegante de la sintaxis. Pregúntenle a cualquiera que haya escrito un algoritmo de clasificación extraordinariamente complejo pero eficiente. Realmente necesitan saber cómo funciona el idioma para lograr tal hazaña. Pero el valor real de dicho código proviene de los comportamientos que produce el algoritmo y las ideas que ayuda a expresar. Es la semántica la que le da valor al código.
¿Les cuento un chiste?
Mi primer lenguaje de programación fue PL/I. Aprendí lo suficiente como para poder tomar alguna entrada de la terminal y hacer algunos cálculos matemáticos simples. Además, aprendí cómo escribir los comandos si-entonces e imprimir en respuesta a la entrada. El primer programa que escribí contaba chistes. He aquí un ejemplo:
> ¿Quiere escuchar un chiste? [Ingrese sí o no]
> si
> Dos cacahuetes caminaban por la calle. Uno fue agredido.
Eso es todo. Algunos dirían que el humor es cuestionable y mi dominio de la sintaxis fue elemental. Sin embargo, la semántica tenía un valor enorme para mí y, sorprendentemente, para otros. Resulta que a algunas personas les gustaron los chistes. Y, además de todo, yo había encontrado un método de expresión creativa que era versátil, poderoso e interactivo. La programación informática proporcionó un tipo de expresión creativa que era difícil de encontrar en otros lugares. Todavía lo hace.
Me tomaría una década más interesarme profesionalmente en la tecnología. Pero hasta el día de hoy, recuerdo ese pequeño programa de bromas. Cambió mi forma de pensar. ¿Importaba que comenzara en PL/I? ¿Debería haber comenzado con COBOL? ¿Eso me habría convertido en un mejor programador en los años venideros? No lo creo. Tenía que empezar por algún lado, y PL/I era el punto de partida.
Para mí, nunca se ha tratado de la sintaxis del lenguaje. Si bien siempre le he dado importancia al aprendizaje de la sintaxis, su dominio nunca ha sido el objetivo. Me preocupan las ideas que la sintaxis me permite expresar. Aun así, tenemos que empezar por algún lado. Si quieren saber cuál creo que es el mejor primer lenguaje de programación para que lo aprenda un principiante, mi respuesta es esta: el que tengan delante.