¿Por qué crees que no fue genial antes de Bill Gates? No lo hizo genial. Ha sido genial desde Babbage.
Así que me interesé en la informática en mi adolescencia a mediados de la década de 1960 después de descubrir el documento de Claude Shannon sobre ratones mecánicos para resolver laberintos (intenté construir uno de estos con una pila de relés; no tenía suficientes relés, ratas :). Había libros que salían del MIT con todo tipo de cosas locas como esta; Era difícil no estar emocionado.
En 1968, diseñé y construí mi propia computadora de 8 bits a partir de circuitos integrados de lógica de transistor de diodo que recuperé de las tarjetas de PC militares sobrantes usando una antorcha de benceno para calentar la PCB para que con un ViceGrips pudiera arrancar el chip de la PCB. (Mi tasa de recuperación de chips fue de alrededor del 80%; si eso parece bastante desesperado, solo recuerde que estos eran chips de especificaciones militares de mediados de los 60 y no había forma de que pudiera comprar esos chips). Utilicé una línea de retraso de 8 bits, por lo que tenía un total de 256 palabras de almacenamiento, con un acumulador de 8 bits. Esta máquina definió mi noción de pequeño .
También me enseñó que construir cosas y editar circuitos electrónicos reales requiere mucho más tiempo que construir y editar cosas con un golpe de teclado y una tecla de retroceso. Eso realmente estableció mi entusiasmo por la programación; fue tan fácil en comparación con el hardware .
En 1969, fui a la Universidad de California en Irvine para comenzar una Licenciatura en Ciencias de la Computación (Irvine fue una de las primeras universidades en ofrecer esto). Un poco de experiencia en programación me consiguió un trabajo a tiempo parcial el verano anterior a mi ingreso, y terminé construyendo un sistema de tiempo compartido en minicomputadoras Data General, aprendiendo en la escuela ideas que incorporaría a ese sistema operativo a veces solo unos días después de conocerlas. [Recuerdo haber aprendido sobre las colas justo en el momento en que tenía que descubrir cómo hacer un seguimiento de los múltiples bits de trabajo que tenía que hacer el sistema operativo. Esta fue una excelente manera de aprender.] Ese sistema operativo se ejecutó en 16Kb de memoria * core * con un disco de intercambio de 256Kb cabeza por pista y manejó 4 usuarios interactivos en los teletipos ASR33.
Comencé a jugar con APL \ 360 en algún momento de 1970, corriendo en un modelo 360 40 con 128 Kb de RAM. Algunos momentos divertidos allí haciendo cosas con agujeros de seguridad en APL y el sistema operativo.
En 1972, comencé a compilar compiladores basados en el papel compilador MetaII de 1965 de Val Schorre de 10 páginas. ¡Guau, podrías escribir compiladores completos usando técnicas de metacompilación!
En 1974, yo y mi amigo diseñamos una minicomputadora de 16 bits completa con memoria virtual desde cero, y construimos un sistema de fresado 3D con ella. Nunca logramos llevarlo al mercado. Pero, ¿construyes tu propia CPU y la usas para cortar metal ? Es emocionante colocar una cortadora giratoria en un bloque de aluminio lo suficientemente rápido como para romperla (malditamente peligroso también).
En 1976 tuve la suerte de trabajar en TRW Advanced Product Labs, donde construimos sistemas de microprocesador dual 6800 para ejecutar las primeras cajas registradoras electrónicas de May Company, conectadas entre sí utilizando una arquitectura de sistema distribuido que diseñé. Pude construir y probar las herramientas y compiladores del sistema de desarrollo.
Comencé mi propia compañía de software para construir SO y herramientas de desarrollo para máquinas 6800/6809. Como actividad secundaria, construí un terminal de exploración de ráster muy temprano (mucho antes de que las PC los tuvieran) y lo programé para jugar al ajedrez usando un BASIC compilado.
Eso me lleva a alrededor de 1978.
Entonces, mucho antes de que Bill apareciera, había MUCHAS cosas divertidas que hacer. Sobre todo, me mantenía ocupado haciendo cosas que no tenía derecho o experiencia para hacer antes, y eso lo convirtió en una maravilla; todo fue descubrimiento. Y las computadoras estaban hechas de componentes electrónicos de 5V; En general, es bastante difícil lograr que un programa fallido lo mate, por lo que puede llegar a un extremo y no morir (al menos si no cuenta las fresadoras).
Y no soy el primero en pasarlo bien haciendo esto. Hay toda esa gente en el MIT a fines de los años 50 y 60, y muchos, muchos otros en todo el mundo (¿recuerdan Dijkstra? Él inventó los semáforos para hacer que los SO multiprocesadores funcionen) en esas mismas décadas, que estaban ocupados inventando tecnología. Fue difícil no pasar un buen rato.
Las computadoras eran mucho más pequeñas. Se han vuelto computacionalmente masivos en comparación con las máquinas Data General originales en las que trabajé, y mucho menos el juguete de 8 bits que construí con DTL. Gran parte del cómputo masivo parece desperdiciado en capas de sustancia en estos días. (Mi sistema operativo 6800 se inició para manejar 15 usuarios en 1Mb de RAM en aproximadamente 4 segundos). Pero, podemos hacer muchas cosas más interesantes debido a la gran cantidad de RAM y CPU.
Cuando obtienes juguetes más grandes, tus ambiciones simplemente se hacen más grandes. Los cohetes de botella son divertidos, pero un Saturno V te llevará a la luna.
Lo que hago en estos días es crear herramientas de software para analizar y transformar automáticamente el software. Esto es muy difícil y, sin embargo, sigue siendo muy divertido. No suele migrar el código de misión del B-2 Stealth Bomber.