domingo, 20 de noviembre de 2011

[1964] BASIC

Commodore Basic 7.0
Todas las Home Computers de 8 bits tenían en ROM un intérprete BASIC. Al comprar y desembalar la computadora, nos encontrábamos con una guía rápida de instalación y conexión, y luego un manual (generalmente de muchas páginas) con el juego de instrucciones y comandos del BASIC. Era un manual para aprender a programar, más cómo cargar y grabar los programas en cassette o diskette, aunque era común que las disketteras y datassettes tuvieran sus propios manuales de operación.

Una vez instalada, conectada y encendida la computadora, no quedaba otra opción que leer con tiempo y paciencia el manual del BASIC. Esa tarea, ineludible, era la única manera de saber qué hacer a continuación. Aprender BASIC significaba aprender a usar la computadora. Así de fácil. La pantalla de inicio, a través de la palabra "READY" y el cursor titilando continuamente nos invitaba a comenzar a ingresar las primeras líneas de programa, un comando, una instrucción o simplemente una operación matemática. El detalle era que no teníamos ni la más mínima idea de cómo hacer eso. La aventura de la informática había comenzado.

El BASIC (siglas de “Begginers All purpose Symbolic Instruction Code”) es un lenguaje de programación de alto nivel diseñado originalmente en 1964 por John George Kemeny y Thomas Eugene Kurtz en el Dartmouth College en New Hampshire, Estados Unidos, como un medio para facilitar la programación de computadoras a los estudiantes y profesores que no fueran del ámbito científico. Inventado y desarrollado con fines educativos y como una herramienta de enseñanza, el BASIC y todas sus variantes llegaron a estar ampliamente disponibles en las Home Computers de finales de los años 70's y durante toda la década de los 80's. Cada plataforma de computadora hogareña de 8 bits tenía su propia versión de BASIC. Veamos algunos ejemplos.

Atari compró el código fuente de una versión del Microsoft 8K BASIC para el 6502 con la intención de adaptarlo para su línea de Home Computers, pero los ingenieros de Atari se vieron ante un gran problema al intentar reducir el BASIC y hacerlo caber en los cartuchos Atari de 8K, entre otras cosas porque el código proporcionado por Microsoft carecía de documentación adecuada. Entonces tuvieron que pedir ayuda a la compañía Shepardson Microsystems (SMI) para que completara el BASIC dentro del límite de 8K. Con el tiempo hubo tres revisiones (A, B y C) del Atari BASIC.
Sinclair, por su parte, creó el Sinclair BASIC y lo implementó en toda su línea de computadoras, desde la ZX80 hasta las diferentes versiones de la ZX Spectrum. En general, el Sinclair BASIC era una versión de BASIC clásico que utilizaba números de línea y no admitía programación estructurada.
Amstrad, en tanto, recurrió a la compañía británica Locomotive Software para la creación del Locomotive BASIC, el intérprete presente en toda la gama de computadoras CPC de Amstrad. Se trataba de una implementación del BASIC sencilla, pero potente para su época, que compitió, entre otros, con el BASIC de la Commodore 64, el cual no disponía de comandos dedicados para gráficos o sonido. Lo malo del Locomotive BASIC fue la ausencia de programación estructurada, algo común en casi todos los intérpretes BASIC de su tiempo.
Texas Instruments, que había desarrollado el TI-Basic para integrarlo en algunas de sus calculadoras gráficas programables, incorporó una versión adaptada en la ROM de sus computadoras, como es el caso de la TI-99/4A que poseía el TI-Basic y, a través de un cartucho, el TI Extended Basic.
Microsoft fue un gran contribuyente y responsable de muchas versiones de BASIC, además de las conocidas versiones de BASIC para MS-DOS y Windows. Desarrolló, entre otros, el Commodore Basic y el AmigaBASIC, presentes en toda la línea de Home Computers de Commodore y Amiga, el Applesoft BASIC creado inicialmente para la Apple II, y todas las variantes del MSX-BASIC incorporado en todas las máquinas de esa norma.

Todos quienes nos iniciamos en el camino de la computación en los 80's hemos escrito y programado en BASIC. Aún tengo presente los primeros juegos que programé en mi Commodore 16 allá por 1987, utilizando un sin fin de sentencias IF, THEN, ELSE porque la C-16 no poseía manejo de Sprites, como era el caso de la C-64. Esos juegos, grabados en cassette, deben estar perdidos en alguna caja...