El pasado 1 de Mayo celebraremos los 50 años del lenguaje de programación BASIC (Beginner's All-purpose Symbolic Instruction Code), el primer lenguaje de programación en ofrecer interacción a los usuarios de la forma en que lo conocemos hoy en día, llevando a las computadoras de la era del procesamiento por lotes (batch processing) al tiempo compartido. Para celebrar los 50 años el Darmounth College, la cuna de BASIC ha creado una página para promover la celebración de estos 50 años. El BASIC fue el lenguaje con el que llegó la primera generación de microcomputadoras a finales de los setenta y principios de los ochenta, además de ser el primer lenguaje de programación que aprendí y el que muchos de los que hoy pasan los cuarenta aprendieron en su adolescencia. Esta celebración me ha puesto nostálgico.
Recuerdo cuando mi padre me llevaba todas las tardes de sábado a "ayudarlo" en su trabajo con el minicomputador HP 9830A, que tenía la universidad en donde trabajaba en Venezuela. Mi ayuda consistía en tipear los programas y ver como estos dibujaban en el ploter los gráficos que le interesaban a mi padre. Esa poderosa minicomputadora contaba con apenas 4KB de RAM un disco duro de 5MB que la mayoría del tiempo estaba inoperativo, un ploter, una impresora térmica, una lectora de tarjetas y un lector de cassettes, para poder grabar y leer el código que se escribía. Corrían los finales de los setenta y yo era un niño demasiado inquieto como para ser contenido en casa y por lo tanto tenía que "ayudar" a mi padre que de esa forma podría vigilarme más de cerca, mientras mi madre se hacía cargo de mis otros dos hermanos menores de caracter más dócil.
La revolución de las microcomputadoras la viví durante mi adolescencia, mi primera computadora en casa fue una Color Computer (CoCo) de segunda mano con 16KB de RAM, sobre la cual ya he hablado en un post anterior. La popular CoCo venía con un BASIC de Microsoft que era prácticamente el estándar de aquellos días y fue en esa computadora en donde aprendí mucho más sobre BASIC, especialmente para hacer gráficos a colores (algo que la HP 9830A no permitía) y sencillas animaciones. Pero sin lugar a dudas tratar de crear pequeños juegos en BASIC me permitieron aprender muchas cosas que de otra manera no hubiera podido hacerlas.
BASIC está lejos de ser el mejor lenguaje de programación y el famoso Profesor Edsger W. Dijkstra dijo de él: "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration." (Traducción "Es practicamente imposible enseñar buena programación a estudiantes que han sido expuestos previamente a BASIC: como programadores potenciales ellos están mentalmente mutilados más alla de toda regeneración"). tal vez es por ello que me he dedicado a ser sysadmin más que un desarrollador, pero por otro lado he aprendido multitud de otros lenguajes sin que BASIC me haya limitado de alguna forma perceptible.
Por otro lado BASIC era la única opción de programación de alto nivel en los primeros microcomputadores de los años setenta y ochenta, básicamente esto era así porque BASIC se integraba fácilmente con el sistema monitor que venía en todos los microcomputadores y jugaba el doble rol de ser un "shell" y un lenguaje de programación a la vez. Esta característica la podemos encontrar incluso en la primera versión de BASIC que apareciera en el Darmounth College, del cual el primer manual oficial puede ser descargado de aquí.
Recuerdo aún todos los programas que escribí en BASIC, que básicamente eran reinventar la rueda ya que en aquellos años no existía Internet como lo conocemos hoy. Por ejemplo resolver un problema que hoy toma unas línea en Octave, requería varias horas de escribir código y depurar el código escrito usando valores conocidos antes de intentar resolver el problema en cuestion. Además de que aunque teóricamente todas las microcomputadoras de principios de los ochenta usaban BASIC, la parte gráfica que era una "extension" del BASIC original no estaba implementado de la misma manera en todas y muchas veces resultaba más sencillo reescribir el programa que intentar convertirlo de una plataforma a otra.
He encontado una muy simple implementación de BASIC de la forma clásica (se llama ChipmunkBASIC) y he configurado un pequeño servidor que permite ejecutar progrmas BASIC a través del navegador en el VPS que he configurado para dicho propósito que es accesible desde este URL:
https://basic.volkanrivera.com/
Sólo necesitan loguearse con usando como usuario BASIC y el password is chipmunk.
Gracias a OpenVirtuals por proveernos de un VPS para este experimento de retro-informática 😀 y espero sus comentarios sobre los recuedos que trae a la mente el volver a revivir esos años sin la necesidad de desempolvar las CoCo, C64 o Atari 800XL.
Saludos Volkan mis primeros prgramas fueron en BASIC, que enseñaban en el colegio claro que era super basico, pero yo compraba revistas donde logre aprender algo más. Mi estimado el URL no funciona queria recordar programando en basic.
Lo acabo de probar y funciona bien. Tal vez es por la alerta del certificado autofirmado, sólo acepta la alerta y continúa.
quise probar el url pero no se nada de basic jajajaja…. creo que esperare a los 50 años de C++.
La idea de hacer este ejercicio de arqueología de software era traer a la memoria un lenguaje de programación que aquellos que ya hemos pasado los 40 usábamos en nuestra adolescencia/juventud. Fue un gran avance cuando se compara contra las otras alternativas como FORTRAN, COBOL o PL/I. Pero googleando a ver si encontraba algún tutorial sobre como empezar a usar el viejo BASIC me dí con la sorpresa de que no hay ni siquiera en inglés, parece como si hubieramos olvidado todo lo que pasó con la revolución de las microcomputadoras desde finales de los setenta a principios de los noventa.
Lo que encontré fue este vide de la reacción de los niños de la actualidad cuando son presentados con una computadora como las que yo usaba a principios de los ochenta:
https://www.youtube.com/watch?v=PF7EpEnglgk
En 50 años, imaginate como veran las computadoras con Windows u OSX del presente. 😀