Microsoft abre el código de GW-BASIC

Microsoft abrió el sistema GW-BASIC. Este fue uno de los anuncios finales de Microsoft Build 2020.

Microsoft no rechaza el código abierto y de hecho, su CEO, Satya Nadella, promueve esta práctica de abrir el código a todo aquel que quiera verlo, estudiarlo y usarlo.

Desde luego, el cómputo moderno requiere de gente muy capacitada y empresas como Microsoft pagan mucho dinero por los desarrollos que eventualmente llegan a sus clientes. Y por ello, en muchos casos, no pueden abrir su código a todos tan fácilmente.

Los programas emblemáticos del pasado

Pero Microsoft, como muchas otras compañías de software, tienen desarrollos que hoy en día son ya obsoletos pero que en su momento fueron de uso cotidiano.

Por ejemplo, con MsDOS se tenía el intérprete de BASIC, GW-BASIC, que se usaba para crear software para ciertos ámbitos. Este BASIC no era estructurado ni tenía las facilidades que hoy nos parecen una obviedad, pero finalmente era lo que había y en estos lenguajes que hoy calificaríamos de rudimentarios, se hizo mucho del cómputo que conocemos.

Ahora Microsoft decidió abrir el código y poner los fuentes de GW-BASIC en GitHub (otra empresa de Microsoft). Sin embargo, hay que decir que antes -hace un año aproximadamente- habían abierto el código de MsDOS 1.25 y 2.0 y que quizás esta idea había permeado en mucha gente, la cual pidió por mucho tiempo que GW-BASIC se hiciese de código abierto.

El código fuente

Los listados de ensamblador del 8088, son del 10 de febrero de 1983, cuestión que se aclara en el archivo «readme» del depósito del software en GitHub. La intención de hacer públicos estos listados tiene que ver con ser una referencia histórica y además, por motivos educativos. Esto significa que Microsoft no aceptará mejora alguna ni cambios de estos archivos.

Este software, creado en 1983, fue el tiempo en el que Bjarne Stroustrup estabva la mitad del desarrollo de su primer versión de su lenguaje de programación C++.

Por orta parte, se estandarizaba el protocolo TCP/IP y Borland anunciaba Turbo Pascal, creado por Anders Hejlsberg, quien trabajaría en dicha empresa hasta el primer desarrollo de Delphi. Posteriormente Hejlsberg se uniría a Microsoft en donde crearía J++, C# y TypeScript.

Las computadoras en boga eran la Apple II y la BBC Micro Sporting, ambas ejecutándose sobre un procesador 6502. Con 64K de memoria, este tipo de computadoras costaban unos 1400 dólares, algo así como 3500 dólares del 2020.

Apple lanzaría la primera computadora con interfaz gráfica, la Apple Lisa, con 1 MB de RAM, corriendo con un procesador Motorola 68000 y con un costo de ese entonces de 9,995 dólares, unos 25 mil dólares de hoy día en el 2020.

Pero ¿qué es el GW-BASIC?

GW-BASIC era el intérprete de BASIC, una derivación del BASIC avanzado de IBM -BASICA- que fue además un programa portado también por Microsoft. BASIC de hecho era el lenguaje materno de los creadores de la empresa, Bill Gates y Paul Allen, quienes implementaron el lenguaje BASIC para una de la sprimeras computadoras caseras, la Altair 8800.

GW-BASIC fue un software que se portó a otras plataformas y además, cambió en ocasiones de nombre. Hay GW-BASIC para procesadores 8088, 6502, 6809 y Z80, entre otros. Hay que decir que los listados que ahora Microsoft hace públicos, están escritos al 100% en lenguaje ensamblador del 8088, un paso arriba del lenguaje de la computadora. La razón de esto es que por las limitaciones de memoria, había que trabajar a este nivel. Por eso no eswperen intérpretes de BASIC en lenguajes como C, Pascal o Java, por mencionar algunos.

Un código de ensamblador ¿traducido?

Los archivos en ensamblador para 8088 contienen un encabezado que indica la fecha de traducción del software. Esto se hizo vía un programa llamado Instruction Set Architectura (ISA), que por cierto, no está contemplado en el código abierto (aún), y que permitía a los programadores poder portar el BASIC a otras plataformas haciendo una traducción a la nueva plataforma, al nuevo procesador.

Es como si en un idioma dijéramos «hola» y se tuviese un traductor que pasara lo que decimos a «otras plataformas», otros idiomas, como el inglés, en donde el sistema nos diría que «hola» es «hello».

Y sí, aunque hay otras versiones del GW-BASIC para otros procesadores, esta versión no las contempla. Sólo se tiene disponible la correspondiente al 8088, cosa que por el momento parece suficiente.

Como sea, ya Microsoft abrió el código de su sistema MsDOS. Ahora es GW-BASIC. Creo que esto es un acto de justicia a software que usaron millones de personas y que ahora es accesible a muchos más.