Inspirado por esta pregunta .
Escuché que algunas versiones muy tempranas de compiladores de C para computadoras personales (supongo que es alrededor de 1980) residían en dos o tres disquetes y, para compilar un programa, primero tenía que insertar el disco con "primer paso", ejecutar el "primer paso", luego cambie al disco con el "segundo paso", ejecútelo y luego haga lo mismo para el "tercer paso". Cada pase duró decenas de minutos, por lo que el desarrollador perdió mucho tiempo incluso en caso de un error tipográfico.
¿Cuán realista es esa afirmación? ¿Cuáles fueron las cifras y detalles reales?
Respuestas:
Absolutamente. Tenía Microsoft C (versión 1.0, creo) para una computadora Zenith Z100 a principios de los años 80 que se entregó en varios disquetes de 5.25 "360K. El Z100 no tenía un disco duro, así que tuve que cambiar los disquetes con frecuencia mientras cambiaba entre el editor, el compilador y el enlazador. Los tiempos de compilación y enlace de varios minutos no fueron inusuales. Resultó tan molesto que pagué $ 500 por una placa de expansión de memoria de 2 MB (sí, megabyte) para poder cargar todos los archivos en un Disco RAM. Eso redujo el tiempo a unos 30 segundos. Divertido ... De hecho, disfruté la programación en aquellos días porque fue divertido. Hoy es trabajo.
fuente
Probablemente sea verdad.
En los primeros días de la informática doméstica (para los niños / padres, no para los más aficionados), las máquinas ni siquiera tenían discos duros.
Mis padres tenían un Amstrad, el sistema operativo estaba en 1 disquete y le permitía seleccionar la aplicación para ejecutar, lo que podría haber requerido cambiar los disquetes (es decir, los procesadores de texto estaban en otro disco) que requieren un cambio manual al disco del sistema operativo si la aplicación necesitaba un servicio especializado de sistema operativo.
Tenía una copia de pascal para el amstrad. Recuerdo que el editor estaba en 1 disco, pero durante la compilación requería cambiar de un lado a otro entre disk1 y disk2 a medida que continuaban los procesos de compilación (incluso puede haber requerido un cambio al disco del sistema operativo en ciertos puntos de los procesos (pero eso no lo soy) así que seguro)).
A los viejos tiempos cuando todo el sistema operativo cabía en un solo disquete 3.5 (pero no mucho más).
fuente
Los disquetes se introdujeron en 1971 (es decir, el disquete de 8 pulgadas), pero no fueron populares hasta mediados de los 70 (con los discos de 5,25 pulgadas). C es de 1973, por lo que creo que la respuesta depende en gran medida de lo que llaman "primera versión" y del contexto de compilación. Piense en estas variables:
Después de todo, en estos días, la compilación todavía lleva varios minutos, solo ajuste la compensación entre su hardware y la complejidad del programa. Solo la parte del disquete no es :-).
Tenga en cuenta también que gran parte de la informática en los años 70 todavía se realizaba en una construcción de mainframe de terminal, por lo que cambiar los disquetes puede ser algo improbable (al menos en un contexto de producción comercial. No sé si C se usó como un "hogar" " idioma).
fuente
Mi primera incursión en aprender C fue en un Commodore 64 (sí, había un compilador para ello), a fines de los 80. Si no recuerdo mal, el compilador / editor / enlazador estaba en un disco y su fuente estaba en otro y tuvo que intercambiar al menos una vez durante la etapa de compilación. Por supuesto, en el C-64, siempre intercambiabas.
Por lo que vale, todavía tengo la caja y los documentos para ese compilador. Hace una lectura nostálgica cada dos años.
fuente
Mi primer compilador de C fue en un TRS-80 Modelo 4 que ejecuta CP / M (el primer modelo que lo haría correctamente, sin tener ubicaciones de poca memoria asignadas permanentemente a ROM). Se requería que el disco en la primera unidad tuviera CP / M.
Una vez que terminé con el editor que estaba usando, tuve que compilar, ensamblar y vincular el programa antes de poder ejecutarlo. Cada uno era su propio proceso, iniciado en la línea de comando. El compilador, el ensamblador y el enlazador no encajarían todos en un disquete. (IIRC, el ensamblador y el enlazador podrían encajar).
Por lo tanto, tendría el programa y el editor en el disco del sistema CP / M e intercambiaría los discos del compilador y ensamblador / enlazador.
Estaba buscando un programa que me permitiera ejecutar sin tener un disco del sistema, y tenía un plan (que ya no recuerdo) para configurar las cosas para poder hacer un pequeño archivo por lotes y automatizar las llamadas de línea de comandos, pero nunca lo seguí.
Casi me di por vencido en C después de intentar usar ese sistema, y volví a Pascal por varios años.
fuente
Cuando estaba en la escuela secundaria (1989-1990) Estábamos haciendo pascal en una manzana II y fue lento . podrías escribir un programa de 100 líneas más o menos cuando presionas compilar, te tomó unos minutos. Recuerdo que tuvo tiempo de ir a la sala de hombres mientras se estaba compilando antes de que el programa se ejecute.
A mitad de camino lancé ese término. Obtuve un Mac SE que fue mucho más rápido. Piensa que Pascal fue mucho mejor.
fuente
El padre de un amigo mío era un programador de alto perfil en el pasado. Se cansó de esperar los resultados de sus compilaciones, días, a veces semanas. Trabajó principalmente desde casa, escribió el programa, golpeó las tarjetas, condujo, entregó la caja al operador y discutió por un momento su código era más importante que todos los demás y espera.
A veces el código nunca llegó a la computadora, mi amigo me contó la historia de la época en que su padre realmente, quiero decir, REALMENTE se enojó con él. Nunca entendió realmente por qué hasta mucho más tarde en la vida, pero vaya, esta caja llena de papeles rígidos parecía divertida ... ¡¡¡oye, también están llenos de agujeros !!!
Un día llevó el argumento a la gerencia y supongo que hizo un buen caso porque le entregaron una mini computadora a su casa. Debo mencionar que, para entonces, la computadora ocupó la mayor parte de la sala de estar que, por supuesto, quedó fuera de los límites.
¡Entonces sí, intercambiar discos entre etapas en una compilación es una posibilidad definitiva y confía en mí cuando digo que fue una gran mejora de lo que estaba disponible antes de eso!
Solo espera 20 años más o menos, me imagino a alguien haciendo una pregunta algo así como:
¿Es cierto que antes tenían que usar teclados para escribir su código letra por letra?
fuente
No sé acerca de C, pero en ese período de tiempo tuve un compilador de Microsoft Fortran que tomó dos pases. No solo eso, sino que tenía un programa de página larga que se ejecutó incorrectamente (estoy seguro de que el código fuente era correcto), así que eso fue todo, dejé de compilar para la PC por completo. Esto era antes de internet, y la PC pertenecía a mi empleador. Todavía era genial tener la PC, podía poner el trabajo en un disquete y llevarlo a casa y editarlo. Entonces, cuando pude trabajar al día siguiente, ya tenía un programa editado, en lugar de notas escritas a mano.
Incluso en los primeros días, (comencé a programar la primavera de 70), el compilador era un solo comando JCL en un sistema operativo mainframe de procesamiento por lotes. Es como se describe arriba. Esperaste en la cola por un golpe de teclado y golpeaste tus cartas holerith. Luego se los entregó a un operador a través de una ventana. Dependiendo del color de su PNC (básicamente una tarjeta perforada que contiene el número de cuenta / contraseña), puede obtener sus resultados de 1 a 24 horas más tarde. Los estudiantes de bajo nivel tuvieron el cambio posterior. ¡Realmente fue un desafío terminar la tarea de "hola mundo" en las dos semanas asignadas para ello! Un par de años después conseguí un trabajo de programación a tiempo parcial y pude pasar el rato en el centro de cómputo por la noche. Algunos de nosotros incluso podríamos alimentar al lector de tarjetas nosotros mismos. Luego, el tiempo de respuesta fue de solo unos minutos / Pero solo podría hacerlo a altas horas de la noche.
Entonces, durante mucho tiempo, los compiladores fueron principalmente una cosa para mainframes (máquinas de clase millonaria propiedad de organizaciones muy grandes). Y las pocas minicomputadoras a menudo tenían que programarse de manera extraña y complicada. Usé una mini computadora para digitalizar los sismogramas. Le tomó entre 10 y 15 minutos guiar la cinta de papel para iniciar el sistema operativo, luego haría lo suyo en la mesa del digitalizador.
fuente
Si por su puesto. No usé C en esas viejas máquinas CP / M, usé CB-80. BÁSICO compilado. (Y sí, fue bastante horrible). En un Heath / Zenith Z-89 con 2 unidades de disquete que contenían 89K cada una.
La compilación de un solo disco fue tan horrible que fue un caso de olvidarlo. Demasiado intercambio de discos. 2 unidades de disquete fue de lujo! Fuente en uno, compilador en el otro. Ponga en marcha una compilación y aléjese para tomar una taza de té mientras la máquina hacía "clang clang clang" mientras los disquetes estaban enganchados y desconectados y las cabezas golpeaban.
El jefe compró un disco duro de 5 MB que tenía aproximadamente 18x18x8 pulgadas, alimentado por separado, y conectado a la parte posterior del H89 con un cable plano de aproximadamente 4 pies de largo.
Oh la velocidad! y la capacidad! con 5 MB de almacenamiento.
fuente
no sé acerca de C (mi primer compilador de C se ejecutó desde un disco duro y no fue rápido), pero el primer Macro Assembler que utilicé (C64) requirió el cambio de disquete (uno para cargar el ensamblador, el otro para cargar el código), tardó más de 20 minutos en construir el sistema, y después de unos meses de desarrollo, tanto la unidad de disquete como la placa base se sobrecalentaron y murieron.
fuente
Colegio en 1988 = Fortran en una PC, 8088 512K (¡eso es una K!) De ram y una sola unidad de disquete. La compilación tardó 20-30 minutos, no tuve que cambiar los disquetes porque tenía uno de esos nuevos 720K.
Un Sun3 (68030 1Mb ram) y 24 terminales vt100 para toda la clase.
fuente
Antes de mi tiempo, supongo. Mi primera programación "real" (en PC, de todos modos) fue COBOL. En ese momento utilizamos PC de IBM. Tenían 2 unidades de disquete de 360k; uno tenía el compilador y el otro tenía su código fuente.
Sé que incluso mis proyectos simples de la universidad tomaron literalmente 15 minutos para compilarlos en esos disquetes; corrí a la cafetería a tomar un café mientras se estaba compilando. Luego, para el proyecto final, trabajé en él en la casa de mis amigos. Acababa de comprar una máquina nueva con esta cosa llamada disco duro: ¡10 megabytes! Nuestro proyecto se compiló en menos de un minuto. Me voló la cabeza por completo.
fuente
Tuve que hacer el baile flexible en mi viejo Mac 128K para varias aplicaciones, así que no dudo de esto por un minuto, aunque no pude dar ningún detalle. No me sorprendería si eso no fuera parte de por qué los intérpretes de BASIC eran tan ubicuos en las primeras computadoras personales (sin necesidad de múltiples pases, tablas de símbolos, etc.).
fuente