Desde hace unos días reflexiono entre líneas de código, debatiéndose entre la nostalgia romántica del ayer digital y el pragmatismo de la programación contemporánea.
En el blog de Escuela de Empresarios (Edem), Alberto Sanz afirma que «Python es un nuevo BASIC para el siglo XXI». Comparto los argumentos del autor: Python es un lenguaje maravilloso —lo mires por donde lo mires—; sin embargo, no, no me parece que sea el BASIC del siglo XXI.
En primer lugar, porque BASIC sigue vivo, en mayor o menor medida, a través de varios lenguajes basados en él y en una numerosa comunidad de programadores y usuarios retro muy activos. Tanto es así que aún se programan juegos para plataformas como MSX o Commodore 64, por citar dos muy populares en su día.
La segunda razón es que Python y BASIC son dos lenguajes con planteamientos muy diferentes. Tienen algunos puntos en común y de ambos se podría destacar la facilidad de aprendizaje con respecto a otros lenguajes de programación, pero entre ellos hay también diferencias notables.
Por ejemplo, BASIC es un lenguaje imperativo, mientras que Python es un lenguaje multiparadigma. Algunos dirán —con razón— que existen versiones de BASIC que incorporan orientación a objetos; a mi parecer eso los aleja de la esencia misma del lenguaje y de su facilidad de aprendizaje. Pero por otro lado, claro está que los tiempos cambian.
Entre los programadores existe la creencia generalizada de que BASIC es un lenguaje obsoleto e inútil y que —puestos a aprender— lo mejor sería dedicar tiempo y esfuerzo a un lenguaje de programación actual (o popular, puesto que el ser humano se mueve a golpe de modas). Dejadme arrugar el morro.
Con BASIC se puede hacer casi cualquier cosa: desde una suite ofimática hasta videojuegos. Así que inútil, lo que se dice inútil, no parece que sea. En cuanto a su obsolescencia, como ya he indicado más arriba BASIC sigue vivo y se va adaptando a las necesidades de los nuevos usuarios y a los requerimientos de equipos cada vez más potentes.
Por citar solo dos ejemplos: tenemos, por un lado, BASIC256, orientado a la enseñanza escolar de la programación y, por otro, Liberty BASIC, destinado a la creación de software profesional (no os dejéis engañar por la apariencia desfasada de la web de este último, creo que es una estrategia bien definida, dado el público al que se dirige).
Mientras que BASIC256, gratuito, se muestra como un IDE integrador (al estilo de herramientas como Thonny, para Python) y cuenta con un buen manual de programación en español; Liberty BASIC, de pago, incorpora un editor de entornos de usuario (GUI) para realizar aplicaciones en modo gráfico. Este último tiene un hermano menor gratuito: JustBASIC.
Además, saber BASIC es un buen paso previo para aprender Python (o cualquier otro lenguaje) con mayor facilidad, pues es un lenguaje que te permite conocer de primera mano cómo se comporta la computadora, cómo «piensa» y resuelve cada instrucción.
Su sintaxis rígida obliga al programador a definir, analizar y entender los problemas a los que desea dar respuesta antes de picar la primera línea de código, así como a estudiar y decidir cuáles son las mejores soluciones.
Sugiero la lectura del siguiente artículo: Why Johnny can't code, de David Brin.
Dicho de otro modo: con BASIC no solo se aprende un lenguaje, se aprende la esencia misma de la programación y este conocimiento es extrapolable a y útil para el aprendizaje de cualquier otro lenguaje informático.
Es por este motivo que ando pensando que tal vez sea buena idea enseñar los fundamentos de programación por medio de BASIC y hacer de este un trampolín para que el alumno pueda aprender Python de una manera más sólida.