7 puntos por GN⁺ 2025-04-04 | 2 comentarios | Compartir por WhatsApp
  • Los 50 años de innovación de Microsoft comenzaron con el código de Altair BASIC
  • Fue el primer producto, anterior a Office, Windows 95, Xbox y la IA
  • Este código abrió la era de la computadora personal y se convirtió en la base del crecimiento de Microsoft

El código más genial que he escrito

  • En 1975, Bill Gates y Paul Allen fundaron Microsoft con la visión de “una computadora en cada escritorio y en cada hogar
  • Que Microsoft haya llegado a sus 50 años se debe en gran parte a grandes líderes como Steve Ballmer y Satya Nadella, así como a innumerables empleados
  • Al llegar este momento tan significativo, Gates sintió alegría, pero también cierta nostalgia
    • Siente como si hubiera sido ayer cuando programaba frente al PDP-10 de Harvard
  • El inicio de Microsoft estuvo en la portada de la revista Popular Electronics de 1975, donde vio la computadora Altair 8800
    • Altair era una PC en kit fabricada por una pequeña empresa de electrónica llamada MITS, y para la época era un producto revolucionario
    • En cuanto vieron la revista, Gates y Allen intuyeron que se acercaba la revolución de la PC y decidieron sumarse a esa ola

Qué los llevó a decidir escribir el código de BASIC

  • Ambos quedaron fascinados por las computadoras desde su época de estudiantes en la escuela Lakeside
  • Les impresionó que Altair pudiera dar también al público general la oportunidad de programar
  • Gates y Allen le propusieron primero a MITS desarrollar el lenguaje BASIC para Altair
  • Pero en realidad era un software que todavía ni existía, así que tuvieron que crearlo ellos mismos

Conceptos básicos del lenguaje BASIC

  • BASIC era un lenguaje de programación para principiantes creado en 1964 por dos profesores de Dartmouth College
  • Fue diseñado para que incluso personas sin ninguna experiencia con computadoras pudieran crear sus propios programas tras un aprendizaje breve
    • Ejemplos: una calculadora de saldo de chequera, un juego de tres en raya, etc.
  • Fue el primer lenguaje de programación que aprendieron Gates y Allen, y sigue usándose hasta hoy
  • BASIC es un lenguaje para indicarle tareas a la computadora, parecido al inglés, que permite ejecutar instrucciones, resolver problemas matemáticos y realizar funciones

Cómo hacer que la computadora entienda BASIC

  • El problema era que la computadora no entendía BASIC
  • Gates y Allen decidieron crear un intérprete (Interpreter) que tradujera el código BASIC a instrucciones de computadora y lo ejecutara línea por línea
    • Tenía la ventaja de ofrecer retroalimentación en tiempo real, para que los principiantes corrigieran errores rápidamente
  • También consideraron el enfoque de compilador (Compiler), que traduce todo el programa de una sola vez, pero concluyeron que el intérprete era más adecuado para principiantes

Inicio del desarrollo

  • Como no tenían el chip Intel 8080 usado en Altair, Paul desarrolló en el PDP-10 de Harvard un programa para emular ese chip
  • Gates escribió el código principal del intérprete, y su amigo Monte Davidoff se encargó del módulo de operaciones matemáticas
  • Los tres trabajaron día y noche durante dos meses y lograron completar un software que en realidad no existía al inicio

Superar las limitaciones de memoria

  • En esa época, la memoria de las computadoras era muy costosa, y añadir memoria a la Altair podía incluso elevar el costo por encima del precio de la propia PC
  • La meta era implementar el intérprete de BASIC dentro de 4 KB
    • Así, los usuarios todavía podrían disponer de memoria para ejecutar sus propios programas
  • Gates alcanzó ese objetivo utilizando diversas técnicas de optimización de memoria
    • Ejemplos: estructuras de datos comprimidas, algoritmos eficientes

El nacimiento de Microsoft

  • Después de innumerables noches sin dormir, presentaron el intérprete de BASIC terminado a Ed Roberts, director de MITS
  • La demostración fue exitosa, y MITS compró la licencia del software
  • Gracias a ese éxito, Altair BASIC se convirtió en el primer producto de Microsoft y nació el nombre de la empresa Micro-Soft (más tarde se eliminó el guion)
  • Ese único código se convirtió en el punto de partida de todas las innovaciones de Microsoft durante los siguientes 50 años
  • La historia completa puede consultarse en las memorias Source Code

Descargar el código fuente

  • Es posible revisar directamente el código fuente original de Altair BASIC con el que comenzó Microsoft
  • Como documento histórico, muestra cuánto ha evolucionado la programación en los últimos 50 años, y Gates sigue sintiendo un gran orgullo por este código

Descargar código fuente (PDF)

2 comentarios

 
iolothebard 2025-04-06

El código fuente de BASIC para 6502 que Microsoft suministró como OEM (Apple II, Commodore, etc.) ha sido restaurado (?) a un estado compilable.
https://github.com/mist64/msbasic

También hay bastantes casos de gente que arma directamente una SBC con 6502 y luego porta MSBASIC ahí.
https://github.com/beneater/msbasic

Está bien quedarse solo admirándolo, pero quizá sea más divertido meterse de lleno… ;)

 
GN⁺ 2025-04-04
Comentarios en Hacker News
  • El código fuente es una lectura divertida. Encontré el código fuente de GW-BASIC y tiene algunos comentarios interesantes
    • Hay un comentario que dice que, como no se pudo ajustar el número al búfer, hay que volver a sacar todos los caracteres de la pila, recuperar la posición inicial del búfer e introducir el símbolo "%"
    • Hay un comentario que dice que no se cambien las constantes del generador de números aleatorios sin consultar Knuth Vol 2, Chapter 3
  • Corrección: GW-BASIC, no QBASIC
  • Steve Jobs solía decir que el problema de Microsoft era que no tenía gusto
    • El efecto de parpadeo de la tipografía al hacer scroll me hace pensar en eso. Es muy distractor, y no se puede desactivar ni siquiera usando el modo lector
    • Para que conste, me gusta Bill Gates y lo que ha hecho por el mundo
  • Escribí un emulador de Intel 8080 de manera que pudiera portarse entre Dec10/VAX/IBM VM CMS. El 8080 podía implementarse fácilmente con un switch de 256 valores. Lo escribí en FORTRAN77
    • Es mucho más difícil escribir un intérprete BASIC con punto flotante. El BASIC de Gates, Allen y otros colaboradores era bastante bueno
  • Un poco de suerte y la disposición a asumir riesgos dieron resultados de formas inesperadas. No estoy seguro de que vuelva a ver en mi vida algo como la era de la PC. Tal vez los teléfonos móviles o internet
  • El código fuente está enlazado al final (advertencia: es un PDF de 100 MB)
  • Me pregunto por qué hay que habilitar JS para ver este sitio web
  • Es interesante leer esto después de haber leído Palo Alto, de Malcom Harris
  • Esto es realmente genial. Creo que el texto es un medio poco aprovechado en diseño
  • Quisiera decir "estoy esperando un repositorio de GitHub con este código en ASCII", pero me doy cuenta de que Microsoft probablemente no lo permitiría
  • Microsoft (y probablemente Bill Gates en lo personal) provocó una fuerte "antipatía" en la comunidad hacker. Pero no se puede negar que él y Paul Allen eran hackers puros y ayudaron mucho al avance tecnológico. Claro, todos preferimos el OSS y elegiríamos a Linus (u otro desarrollador de OSS) 100 veces antes que a un "capitalista malvado", pero ellos merecen reconocimiento