Estoy con ron. El BASIC fue la revolución es su día. ¿Qué opciones había? Fortran, ASM, alguna cosa propietaria... Y llega un lenguaje que te permite de manera muy simple realizar tareas con el ordenador y, además, más o menos estandarizado (con sus cosas, vale). BASIC no solo es simple, sino que además es muy fácil de interpretar, es compacto en el uso de memoria y con un conjunto muy reducido de cosas ya puedes empezar. Si no fijaros en el basic del C64
.
Y es posible usarlo de prompt, cuando no había algo como un SO con su línea de comandos.
Es, efectivamente como dice Wilco, completo. Puede computar todo lo computable. Otra cosa es que sea más fácil o difícil de usar para ciertas cosas.
Yo recuerdo con cariño el Pascal, creo recordar que diseñado para enseñar programación estructurada, pero ya era compilado (tuve el HISOFT Pascal para el speccy) y, por supuesto el C. Lo que pasa es que da la impresión de que todos estos lenguajes procedurales han ido evolucionando en el mismo sentido, creo yo: añadiendo las características de la programación orientada a objetos y empiezan a ser todos bastante parecidos.
Hasta han añadido características de lenguajes funcionales (tipo LISP o HASKEL), fijaros en el C++11 o el C# y algunas de lenguajes orientados a datos (creo recordar que C# con LINQ soporta queries SQL sobre fuentes de datos).
Con Matlab u Octave trabajar con matrices es una delicia. Tengo amigos a los que les encantan los lenguajes funcionales tipo Haskell (para mí es chino) La función para la sucesión de Fibonacci es, en una posible implementación:
Código: Seleccionar todo
fib n = fibs (0,1) !! n
where fibs (a,b) = a : fibs (b,a+b)
Y luego están los lenguajes
esotéricos, creados en plan de coña o en plan exploración. Lenguajes como el Whitespace, Leet, LOLCode o BrainFuck.
Esto es un Hello World! en LOLCode
Vamos, que son como los cacharros... todos distintos, todos interesantes. Lo mejor es utilizar el que nos resulte más cómodo para cada tarea.
Yo hace tiempo que no aprendo (en el sentido de llegar a dominar) lenguajes nuevos: los uso de manera instrumental. Quiero decir que si tengo que hacer algo en C# voy aprendiendo lo que necesito sobre la marcha, empezando a hacer las cosas como lo haría en C++ y evolucionando. Me da igual tirar de Matlab, que de Python (no lo he hecho nunca), C# o incluso java (que lo he evitado en todo lo posible).
Ahora bien, soy más crítico en cuanto a que sea el lenguaje para aprender como primero o para desarrollar. No lo he pensado nunca, pero se me antoja que hay mejores alternativas. Hoy en día igual Python, Java o incluso C++. Pero vamos, lo digo sin meditar demasiado.