Antes de que la computadora Apple 1 fuera construida físicamente, Steve Wozniak escribió su intérprete BASIC redactando código de ensamblaje en papel y introduciéndolo manualmente en el hardware. Esta metodología, a menudo denominada 'programación lenta', era una práctica estándar para los aficionados de los 8 bits que carecían de los recursos para tener múltiples máquinas o entornos de desarrollo modernos.
El flujo de trabajo de la 'Programación Lenta'
La publicación original en Hacker News explora cómo Wozniak logró escribir el BASIC de Apple 1 antes de que existiera el hardware. Los comentaristas en Hacker News explicaron que Wozniak siguió la ruta por defecto para los aficionados de los 8 bits: escribir programas en papel y probarlos in situ.
Un comentarista, escribiendo como femto, señaló que esta 'programación lenta' era una compensación deliberada. Debido a que el proceso era lento, obligaba al programador a dedicar una reflexión significativa a la lógica antes de tocar siquiera un teclado.
Este enfoque permitía a los desarrolladores aprender de memoria las instrucciones comunes, lo que finalmente les permitía traducir el ensamblaje a código de máquina casi por completo desde la memoria.
Ensamblaje manual y referencia técnica
El proceso técnico implicaba estudiar el manual de referencia técnica de una CPU para comprender su Arquitectura de Conjunto de Instrucciones (ISA). Un comentarista, billforsternz, describió esto como un proceso de 'moldear la funcionalidad' almacenando códigos específicos en la memoria.
Esto requería escribir cada instrucción y código hexadecimal con mucho cuidado en papel, incluyendo el ajuste de las direcciones de memoria. El proceso era extremadamente intolerante incluso al más mínimo error, ya que un solo carácter incorrecto podía romper todo el programa.
Un comentarista, david-gpu, señaló que si bien esto no es inherentemente 'difícil' si la ISA es bien conocida, es una tarea increíblemente tediosa que los compiladores modernos han reemplazado en gran medida.
Restricciones de hardware y edición fuera de línea
En la era del Apple 1, el hardware y el almacenamiento eran prohibitivamente caros. Un comentarista, MarkusWandel, recordó que incluso un solo disco flexible podía costar más de $20 en dinero actual, lo que dificultaba guardar el trabajo con frecuencia.
Para eludir estos costos, algunos desarrolladores utilizaban impresoras de línea para producir su código. Esto les permitía 'guardar' su trabajo y continuar depurando con un lápiz durante sus tiempos de inactividad, como en un viaje en autobús.
Estas restricciones fomentaron hábitos que algunos desarrolladores todavía mantienen hoy, como la preferencia por la lógica manual sobre las comodidades modernas como el autocompletado o el resaltado de sintaxis.
Compensaciones de la era manual
La principal compensación de esta era fue el sacrificio de la velocidad por una comprensión más profunda e íntima de la máquina. El ensamblaje manual requiere un nivel de maestría sobre el procesador que a menudo es omitido por los lenguajes de alto nivel modernos.
Si bien las herramientas modernas proporcionan retroalimentación inmediata, el método 'lento' aseguraba que la lógica fuera sólida antes de ser ejecutada. Sin embargo, como señaló un comentarista, se necesitaron décadas de experiencia para alcanzar el nivel de maestría que Wozniak mostró en 1975.
