BASIC: Homenaje

Hace algunos días me puse a recordar una de las más grandiosas experiencias que tuve en la vida: Entrevistar a Thomas E. Kurtz a mediados de la década de los años 90. ¡Vaya! Entrevistar a uno de los creadores de mi lenguaje de programación favorito. Todo un asunto... Quiero transcribir íntegramente los dos artículos (sintetizados en uno solo) que aparecieron en PCSemanal en aquellos días con la transcripción a la entrevista por correo electrónico que hice a Thomas E. Kurtz, quien hoy se encuentra retirado a la edad de 88 años. Cabe hacer, nuevamente, un agradecimiento público a la prestancia del Dr. Kurtz, quien tuvo la enorme paciencia de reenviarme la primera parte de esta entrevista en esos entonces pues cuando había recibido su respuesta no pasó mucho tiempo (apenas unas horas) y mi disco duro tronó, así que perdí esa información. Gracias Dres. Kurtz y Kemeny. Ojalá la entrevista sea del agrado del lector. A mí todavía me pone la carne de gallina por la emoción.



Tal vez suene meloso, pero hace unos días impactó en mi cabeza el por qué he escrito columnas y columnas de BASIC, pero nada de sus autores. Esta idea no me dejó dormir, y esa misma noche me di a la tarea de buscar en Internet información acerca de John G. Kemeny y Thomas E. Kurtz. Después de deambular algunos minutos me di cuenta que toda la información podría estar en el site de Dartmouth... Así fue...

Esta columna la quiero dedicar como un sentido homenaje a esas dos personas que nos permitieron el fácil acceso a las máquinas en tiempos en que todo parecía estar inminentemente orientado a los científicos e ingenieros.

Pues bien, ¿Quién fue John George Kemeny? Este personaje nació el 13 de mayo de 1926 en Budapest, Hungría, y será recordado por sus contribuciones a la educación de la computación y las matemáticas así como dar pie a los cambios en Dartmouth durante sus once años como presidente de este prestigiado colegio. Kemeny llegó a los Estados Unidos en 1940 y, después de terminar su educación secundaria en Nueva York, asistió a la Universidad de Princeton. Su trabajo de graduación se interrumpió mientras trabajaba en el proyecto Manhattan en Los Alamos.

Los años de estudiante de Kemeny fueron tiempos de interesantes desarrollos en matemáticas, particularmente en las áreas de lógica y computación. John aprovechó su oportunidad de aprender de los grandes, ya que trabajó con los camaradas Húngaros John von Neumann y Leo Szilard en Los Alamos, escribió su tesis con Alonzo Church, y fue un asistente de investigación de Albert Einstein.
Kemeny llegó a Dartmouth con tan sólo 27 años de edad y se le dio completa libertad para desarrollar un programa de matemáticas. Para entonces ya había escrito su primer libro: "Una mirada filosófica a la ciencia" que tuvo una buena acogida. Aun a esta temprana edad, Kemeny mostró sus habilidades especiales que llegaron a ser su marca personal: Era extremadamente brillante así como un notable solucionador de problemas. Fue uno de los primeros en anticiparse al papel principal que jugaría la computación en nuestro mundo: Kemeny insistió que el conocimiento de la computación era una parte integral de una educación liberal. Para hacer las computadoras accesibles a los estudiantes, algo de lo que no se hablaba en esos tiempos, él y su colega Tom Kurtz desarrollaron uno de los primeros sistemas compartidos del mundo.

John llevó a cabo este proyecto de tiempo compartido en un verdadero estilo personal. A sabiendas que los profesionales creerían que esto era imposible, se apartó de ellos y se hizo de los servicios de aquellos estudiantes brillantes que, como él, pensaban que era posible hacerlo.

Tal como von Neumann se dio cuenta que una computadora que sólo realizara operaciones aritméticas podría tener un poder extraordinario, Kemeny se dio cuenta que para poner este poder al alcance de todos, un lenguaje de programación podría y debería ser sencillo. Esto le llevó a desarrollar con Tom Kurtz el lenguaje BASIC el cual es aún uno de los más usados lenguajes de computación.

Kemeny, además, tuvo grandes logros en materia de matemáticas, los cuales volcaba a sus alumnos en la Universidad. Años después, Kemeny y Kurtz desarrollaron un nuevo y más poderoso lenguaje de programación llamado True Basic, mismo que actualmente se ha desarrollado para casi cualquier plataforma, para garantizar portabilidad.

Sin embargo, John partió lejos del mundo de los vivos el 26 de diciembre de 1992 víctima de un ataque al corazón. Tom Kurtz, sin embargo, aún está con nosotros y tuve la oportunidad de hacerle una entrevista con la magia del correo electrónico. Transcribo, a la letra, una traducción de esta entrevista que, sumido en una profunda emoción, le hice al gurú del BASIC:

David Garza: ¿Podría darme sus datos personales y una breve semblanza?
Tom Kurtz: Soy de los Estados Unidos. Nací en Illinois el 22 de Febrero de 1928. Fui al colegio en Knox, un pequeño colegio en Galesburgo, IL. y me gradué en 1950. Posteriormente fui a Princeton y estudié Estadística. Obtuve mi graduación en 1956. Tuve un acercamiento a la computación en 1951 en la UCLA y posteriormente en Princeton. (Las computadoras fueron la IBM 603, creo, y las SWAC estándar, así como la IBM CPC en Princeton. También usé la IBM 650 en 1957.)

Fui a Dartmouth en 1956 y me uní al departamento de matemáticas que presidía John (Kemeny). Fui profesor de estadística y métodos numéricos los primeros días. También me asocié con el centro de computación MIT, quienes instalaron una computadora IBM 704 en 1957. Aprendí el lenguaje ensamblador SAP y Fortran en esa máquina.

Tuvimos una LGP-30 en Dartmouth en 1959, y fui su director.

DG: ¿Cuales fueron las causas exactas que les dieron la idea de crear BASIC?
TK: Tomamos la decisión en 1962 con el objeto de hacer la computación disponible para todos los estudiantes de Dartmouth. El requerirles el uso de tarjetas perforadas estaba fuera de cualquier cavilación. Así que decidimos desarrollar un sistema de Tiempo Compartido por recomendación de John McCarthy (Que estaba en Dartmouth, luego en MIT y después en Stanford). Esto hicimos.
El lenguaje estaba disponible para TODOS los estudiantes y TODAS las personas en Dartmouth, incluyendo a los conserjes. Con el objeto de hacer las cosas más simples para TODOS los usuarios, decidimos desarrollar un nuevo y más simple lenguaje, después de verificar que Fortran y Algol (Un precursor de Pascal) no eran del todo aceptados. Así llegó BASIC. Se basaba en algunas simplificaciones: una línea = una instrucción; entradas y salidas sin formatos; sólo un tipo numérico (punto flotante de doble precisión); palabras clave en vez de puntuaciones (Como FOR I = 1 to n step 5 en lugar de DO 100, I = 1, 5, n); valores predeterminados razonables (Por ejemplo, si el incremento en FOR es 1, puedes ignorar STEP); mensajes de error que decían cual es el problema (En lugar de números de error). Hay algunas otras cosas por el estilo.

DG: ¿Esperaban que BASIC creciera como hasta hoy?
TK: No. Esto es más bien cosa de suerte, y por el hecho de que más de 100 oficinas de servicios de tiempo compartido modelaron sus ofertas incluyendo el BASIC, desde GE, que copiaron de nuestro sistema.

DG: ¿Qué ha sucedido con su BASIC original (Me refiero a True BASIC)?
TK: Aún lo usamos. Después de todo, está basado en la norma ANSI de 1987, así como la norma ISO de 1991.

DG: ¿Microsoft es propietario de los derechos de BASIC (Como Michael Jackson con los de The Beatles B-) )?
TK: No. BASIC es un lenguaje estándar y, como tal, quien sea puede crear un intérprete o compilador acorde y llamarlo BASIC. (Nuestra versión, True BASIC, está registrada como "True BASIC".)

DG: ¿Qué piensa de su creación? (Me refiero a que mucha gente dice que BASIC es una vacilada. Yo no creo esto y he derramado toneladas de bytes en conversaciones al respecto aquí en México y en otros lugares.)
TK: La gente que dice esto no está muy consciente del todo. True BASIC está completamente estructurado, y además ofrece algunas de las características que se encuentran sólo en lenguajes orientados a objetos (como encapsulamiento de datos.) y es el único lenguaje que no requiere que el usuario conozca de declaraciones de tipos o apuntadores.

DG: Esta pregunta es muy importante para mí dada una situación personal que he discutido largamente. Hay algunas personas que sostienen que BASIC (En cualquiera de sus sabores) no es la herramienta adecuada para aprender el arte de la programación dado que hay "mejores" herramientas para hacerlo, como Pascal. La pregunta es: a) ¿BASIC es anacrónico?
TK: No, BASIC no es anacrónico. True BASIC es un lenguaje completamente estructurado y no usa números de línea o instrucciones GO TO. Visual Basic es en extremo ampliamente utilizado para desarrollar aplicaciones para Windows.

DG: b) ¿Cuantas escuelas en los Estados Unidos usan una versión de BASIC para enseñar el arte de la programación?
TK: Cerca de 4,635 escuelas de enseñanza media, superior, colegios comunitarios y universidades. Por ejemplo, la Universidad de Virginia en su Escuela de Ingeniería requiere que todos sus estudiantes inscritos aprendan True BASIC.

DG: c) ¿Cree que BASIC sin objetos y apuntadores no es más que un juguete?
TK: No. True BASIC (Y Visual Basic) es un lenguaje serio para el desarrollo de aplicaciones, capaz de desarrollar aplicaciones que contienen muchos miles de líneas de código. El caso es que C es un lenguaje para la programación de sistemas, no un lenguaje para la programación de aplicaciones; por esto, C es un lenguaje para expertos y profesionales. El hecho de que C sea más ampliamente usado para esto no convierte a BASIC en un juguete. JAVA desplazará a C++ en aplicaciones para la Web, y no convierte a C++ en un juguete. Nuevamente, esto tampoco convierte a BASIC en un juguete. ¿Fortran es un juguete? True BASIC es mucho más sofisticado que Fortran.

Un comentario acerca de los apuntadores: Dado que son absolutamente necesarios para la programación de sistemas, son usados en Pascal y C principalmente para "apuntar a" datos almacenados distribuidos. Ahora que requerir (o permitir) al programador que trate con apuntadores es algo que no debería permitirse a todos más allá de los profesionistas y especialistas en las ciencias de la computación. El hecho es que Visual Basic es más parecido a C que las versiones anteriores de Microsoft Basic, pero sin apuntadores. En True BASIC, todo el almacenamiento se lleva a cabo dinámicamente, de tal forma que los programadores principiantes e intermedios no tienen que tratar con ellos. Sólo recuerda que los apuntadores son sólo para expertos.

Otro comentario: El requerimiento principal de la Programación Orientada a Objetos es el encapsulamiento de datos. True BASIC provee de ello a través de sus estructuras MODULE. (Otros aspectos de la POO, como la herencia y morfología [polimorfismo] son mucho menos importantes.)

DG: d) ¿Cree que Logo es mejor que BASIC?
TK: Sólo para escolares que usan la Tortuga. ¿Has visto que alguien escriba un programa en LOGO más allá que hacer dibujos bonitos?

DG: e) ¿Cual es la verdadera orientación de BASIC?
TK: La verdadera orientación es la que ya conoces. Es el lenguaje más sencillo para que un principiante aprenda, y que "escale" a grandes aplicaciones poco a poco y bien. Además, True BASIC es transportable a través de varias plataformas, dado que está basado en normas nacionales e internacionales. (No puedo decir lo mismo de C, dado que las variaciones entre las implementaciones causan grandes problemas al portar el código fuente.)

DG: ¿Qué piensa que pasará con BASIC en el futuro?
TK: BASIC continuará siendo usado. Después de todo, Visual Basic es el principal lenguaje de desarrollo de aplicaciones para los productos de Microsoft. Tenemos una gran cantidad de usuarios, además de que es largamente usado en escuelas y colegios. La mayoría de las aplicaciones que creamos se escriben en True BASIC. Escribir aplicaciones grandes (De unas 10,000 a 20,000 líneas) es mucho, mucho más fácil en True BASIC que en CUALQUIER OTRO lenguaje, sin excepción.

DG: ¿Cómo se puede obtener una copia de su lenguaje True BASIC? (Aquí en México no lo he podido encontrar. Sólo encontré el True Basic Calculus de Kemeny.)
TK: Puedes ordenarlo con nosotros llamando al 1-800-436-2111, usando una tarjeta de crédito.

DG: ¿Hay algún sitio de True BASIC en Internet?

DG: Finalmente, siempre me ha azotado la pregunta ¿Por qué BASIC? Es decir ¿Por qué el nombre BASIC? ¿Por qué pensaron en su significado? ¿Cómo es que vino la idea? ¿Fue difícil de encontrar?
TK: Originalmente BASIC se eligió por su clara interpretación de "simple", entonces se divisó un acrónimo: "Beginners All-purpose Simplified Instruction Code" (Código multipropósito de instrucciones simplificadas para principiantes). Nosotros en True BASIC aún usamos BASIC (Todas en mayúsculas). Microsoft lo ha cambiado a Basic para alejarse del acrónimo original.

Recuerda que Fortran es el acrónimo de FORmula TRANslator (Traductor de fórmulas).

Así, y en propias palabras del creador de este lenguaje hemos visto y compartido sus propias impresiones al respecto. Hubiese sido interesante hacer lo propio con John, pero partió antes que iniciara mi participación en PCSemanal. Queda, pues, este artículo como un pequeño pero sincero homenaje a estos dos personajes que han tenido tanto que ver con el crecimiento y penetración de la computación a un nivel mucho más allá de científicos e ingenieros, y el mío propio. 

Hasta aquí el artículo original. Está transcrito tal cual se publicó en aquellos días, y es por ello que se ven cosas interesantes como llamar por teléfono para pedir el True BASIC, cuando hoy se le puede obtener desde la propia página Web y pagarlo allí mismo. Nota: Las imágenes de Kurtz y Kemeny se publican sólo como referencia y tienen registro de propiedad.

¡Nos seguimos leyendo!

[¿Qué dijo?
La versión original de BASIC se diseñó y escribió en el Dartmouth College bajo la dirección de John George Kemeny y Thomas E. Kurtz. En 1962 comenzaron a trabajar en un proyecto para crear un lenguaje de programación escrito desde el punto de vista del usuario. El nacimiento de BASIC se considera el 1 de Mayo de 1964.

Más adelante, en 1983, Kurtz y Kemeny presentaron una nueva versión de BASIC, conocida como True BASIC, que incorpora numerosas estructuras y que se apega a los estándares ANSI e ISO.

¡Ah! Eso dijo]

Comentarios

Entradas más populares de este blog

Toshiba Satellite T215-SP1004M

Consecuencias de la falta de mantenimiento en el equipo de cómputo

Normalización de bases de datos (Parte 6 y última): Quinta y sexta formas de normalización (5NF) (6NF)