Inspiré par cette question .
J'ai entendu dire que certaines versions très très anciennes des compilateurs C pour ordinateurs personnels (je suppose que c'était vers 1980) résidaient sur deux ou trois disquettes et donc pour compiler un programme, il fallait d'abord insérer le disque avec "premier passage", exécuter le "premier passage", puis passez sur le disque avec "deuxième passage", exécutez-le, puis faites de même pour le "troisième passage". Chaque passage a duré des dizaines de minutes, le développeur a donc perdu beaucoup de temps en cas de faute de frappe.
Dans quelle mesure cette affirmation est-elle réaliste? Quels étaient les chiffres et les détails réels?
Réponses:
Absolument. J'avais Microsoft C (version 1.0, je pense) pour un ordinateur Zenith Z100 au début des années 80 qui était livré sur plusieurs disquettes de 5,25 pouces à 360K. Le Z100 n'avait pas de disque dur, j'ai donc dû échanger fréquemment des disquettes lorsque je passais entre l'éditeur, le compilateur et l'éditeur de liens. Les temps de compilation et de liaison de plusieurs minutes n'étaient pas inhabituels. C'était tellement ennuyeux que j'ai payé 500 $ pour une carte d'extension de mémoire de 2 Mo (oui, mégaoctet) pour pouvoir charger tous les fichiers dans un Disque RAM. Cela a réduit le temps à environ 30 secondes. Drôle ... J'ai vraiment apprécié la programmation à l'époque parce que c'était amusant. Aujourd'hui, cela fonctionne.
la source
C'est probablement vrai.
Dans les premiers temps de l'informatique à domicile (pour les enfants / parents pas les Hobiest), les machines n'avaient même pas de disques durs.
Mes parents avaient un Amstrad, le système d'exploitation était sur 1 disquette et cela vous permettait de sélectionner l'application à exécuter, ce qui peut avoir nécessité la commutation de disquettes (c'est-à-dire que le traitement de texte était sur un autre disque) nécessitant un basculement manuel vers le disque du système d'exploitation si l'application avait besoin d'un service OS spécialisé.
J'avais une copie de pascal pour l'amstrad. Je me souviens que l'éditeur était sur 1 disque, mais pendant la compilation, il a fallu basculer en avant et en arrière entre disque1 et disque2 au fur et à mesure que les processus de compilation se sont poursuivis (cela peut même avoir nécessité un passage au disque du système d'exploitation à certains moments des processus (mais que je ne suis pas si sûr off)).
Un bon vieux temps où tout le système d'exploitation était installé sur une seule disquette 3,5 (mais pas grand-chose d'autre).
la source
Les disquettes ont été introduites en 1971 - (la disquette de 8 pouces, c'est-à-dire), mais n'étaient pas populaires jusqu'au milieu des années 70 (avec les disques de 5,25 pouces). C date de 1973, donc je pense que la réponse dépend en grande partie de ce que vous appelez la "première version" et du contexte de compilation. Pensez à ces variables:
Après tout - de nos jours, la compilation prend encore plusieurs minutes - ajustez simplement le compromis entre votre matériel et la complexité du programme. Seule la partie disquette n'est pas :-).
Tenez également compte du fait qu'une grande partie de l'informatique dans les années 70 se faisait encore sur une construction terminal-mainframe, donc changer de disquette est peut-être quelque peu improbable (au moins dans un contexte de production d'entreprise. Je ne sais pas si C a été utilisé comme "maison" " Langue).
la source
Ma première incursion dans l'apprentissage de C était sur un Commodore 64 (oui, il y avait un compilateur pour cela), à la fin des années 80. Si je me souviens bien, le compilateur / éditeur / éditeur de liens était sur un disque et votre source était sur un autre et vous avez dû échanger au moins une fois pendant la phase de compilation. Bien sûr, sur le C-64, vous échangiez toujours.
Pour ce que ça vaut, j'ai toujours la boîte et les documents pour ce compilateur. Fait pour une lecture nostalgique tous les deux ans.
la source
Mon premier compilateur C était sur un TRS-80 modèle 4 exécutant CP / M (le premier modèle qui le ferait correctement, n'ayant pas de mémoire faible mappée en permanence sur la ROM). Il fallait que le disque dans le premier lecteur ait CP / M dessus.
Une fois que j'avais fini avec l'éditeur que j'utilisais, je devais compiler, assembler et lier le programme avant de pouvoir l'exécuter. Chacun était son propre processus, lancé sur la ligne de commande. Le compilateur, l'assembleur et l'éditeur de liens ne tiendraient pas tous sur une disquette. (IIRC, l'assembleur et l'éditeur de liens pourraient s'emboîter.)
Par conséquent, j'aurais le programme et l'éditeur sur le disque système CP / M, et j'échangerais les disques du compilateur et de l'assembleur / éditeur de liens.
Je cherchais un programme qui me permettrait de fonctionner sans avoir de disque système, et j'avais un plan (dont je ne me souviens plus) pour configurer les choses afin de pouvoir créer un petit fichier batch et automatiser les appels en ligne de commande, mais je n'ai jamais suivi.
J'ai pratiquement abandonné C après avoir essayé d'utiliser ce système, et je suis retourné chez Pascal pendant plusieurs années.
la source
Quand j'étais au lycée (1989-1990), nous faisions du pascal sur une pomme II et c'était LENT . vous pouvez écrire un programme de 100 lignes environ lorsque vous appuyez sur la compilation, cela prend quelques minutes. Je me souviens que vous aviez le temps d'aller dans la salle des hommes pendant la compilation avant que le programme ne s'exécute.
Environ à mi-chemin a jeté ce terme, j'ai obtenu un Mac SE qui était tellement plus rapide! Je pense que Pascal était tellement mieux.
la source
Le père d'un de mes amis était un programmeur de haut niveau à l'époque. Il était fatigué d'attendre les résultats de ses compilations, des jours, parfois des semaines. Travaillé principalement à domicile, écrire le programme, perforer les cartes, conduire, donner la boîte à l'opérateur et argumenter pendant un moment son code était plus important que tous les autres et attendre.
Parfois, le code n'a jamais atteint l'ordinateur, mon ami m'a raconté l'histoire de l'époque où son père était vraiment, je veux dire VRAIMENT en colère contre lui. Il n'a jamais vraiment compris pourquoi jusqu'à bien plus tard dans la vie, mais ce garçon plein de papiers rigides avait l'air amusant ... hé plein de trous aussi !!!
Un jour, il a porté l'argument à la direction et je suppose qu'il a fait une bonne affaire car ils ont livré un mini-ordinateur chez lui. Je dois mentionner que, à ce moment-là, l'ordinateur occupait la majeure partie du salon qui, bien sûr, était devenu interdit.
Alors oui, l'échange de disques entre les étapes d'une compilation est une possibilité certaine et croyez-moi quand je dis que c'était une VASTE amélioration par rapport à ce qui était disponible auparavant !!!
Attendez une vingtaine d'années environ, j'imagine que quelqu'un pose une question un peu comme:
Est-il vrai qu'avant, ils devaient utiliser des claviers pour taper leur code lettre par lettre?
la source
Je ne sais pas pour C, mais dans ce laps de temps pendant un certain temps, j'ai eu un compilateur Microsoft Fortran qui a pris deux passes. Non seulement cela, mais j'avais un programme d'une page qui fonctionnait mal (je suis sûr que le code source était correct), alors c'était tout, j'ai abandonné la compilation pour le PC. C'était avant Internet et le PC appartenait à mon employeur. C'était toujours bien d'avoir le PC, je pouvais mettre du travail sur une disquette et le ramener à la maison et le modifier. Donc, quand je suis arrivé au travail le lendemain, j'avais déjà un programme édité, plutôt que des notes manuscrites.
Même à une époque beaucoup plus ancienne (j'ai commencé la programmation au printemps 70), le compilateur était une seule commande JCL sur un système d'exploitation central de traitement par lots. C'est comme décrit ci-dessus. Vous avez fait la queue pour un clavier et vous avez perforé vos cartes holerith. Vous les avez ensuite remis à un opérateur par une fenêtre. Selon la couleur de votre PNC (essentiellement une carte perforée contenant un numéro de compte / mot de passe), vous pouvez obtenir vos résultats de 1 à 24 heures plus tard. Les élèves de bas niveau ont connu le dernier revirement. C'était vraiment un défi de terminer la mission "bonjour le monde" dans les deux semaines qui lui étaient allouées! Quelques années plus tard, j'ai obtenu un travail de programmation à temps partiel et je pouvais passer la nuit au centre informatique. Certains d'entre nous pourraient même nourrir le lecteur de carte nous-mêmes. Ensuite, le retournement n'a duré que quelques minutes / Mais vous ne pouvez le faire que tard dans la nuit.
Ainsi, pendant longtemps, les compilateurs étaient principalement destinés aux mainframes (machines de classe millionnaire appartenant à de très grandes organisations). Et les quelques mini-ordinateurs autour devaient souvent être programmés de manière étrange et délicate. J'ai utilisé un mini-ordinateur pour numériser les sismogrammes. Il a fallu environ 10 à 15 minutes pour guider la bande de papier à travers elle pour démarrer le système d'exploitation, puis vous feriez votre chose sur la table du numériseur.
la source
Oui bien sûr. Je n'ai pas utilisé C sur ces vieilles machines CP / M, j'ai utilisé CB-80. BASIC compilé. (Et oui, c'était assez horrible). Sur un Heath / Zenith Z-89 avec 2 lecteurs de disquette pouvant contenir chacun 89 Ko.
La compilation sur un seul disque était tellement horrible qu'il fallait l'oublier. Échange de disque trop important. 2 lecteurs de disquette, c'était le LUXE! Source sur l'un, compilateur sur l'autre. Lancez une compilation et partez pour une tasse de thé pendant que la machine se met à "clang clang clang" alors que les disquettes sont engagées et désengagées et que les têtes claquent.
Le patron a acheté un disque dur de 5 Mo d'environ 18 x 18 x 8 pouces, alimenté séparément et fixé à l'arrière du H89 avec un câble ruban d'environ 4 pieds de long.
Oh la vitesse! et la capacité! avec 5 Mo de stockage.
la source
Je ne sais pas pour C (mon premier compilateur C fonctionnait à partir d'un disque dur et n'était pas rapide), mais le premier assembleur de macros que j'ai utilisé (C64) nécessitait une commutation sur disquette (une pour charger l'assembleur, l'autre pour charger le code), a pris plus de 20 minutes pour construire le système, et après quelques mois de développement, le lecteur de disquette et la carte mère ont surchauffé et sont morts.
la source
Collège en 1988 = Fortran sur un PC, 8088 512K (c'est un K !!) de RAM et un seul lecteur de disquette La compilation a pris 20-30 minutes, je n'ai pas eu à échanger les disquettes car j'avais une de ces nouvelles 720K.
Un Sun3 (68030 1Mb ram) et 24 terminaux vt100 pour toute la classe.
la source
Avant mon temps, je suppose. Ma première "vraie" programmation (sur PC, en tout cas) était COBOL. À cette époque, nous utilisions des PC IBM. Ils avaient 2 lecteurs de disquette 360k; l'un avait le compilateur, et l'autre avait votre code source.
Je sais que même mes projets collégiaux simples ont pris littéralement 15 minutes pour compiler en cours d'exécution sur ces disquettes - je courrais à la cafétéria pour le café pendant la compilation. Ensuite, pour le projet final, j'ai travaillé dessus chez mes copains. Il venait d'acquérir une toute nouvelle machine avec ce qu'on appelle un disque dur - 10 mégaoctets! Notre projet a été compilé en moins d'une minute. Cela m'a complètement époustouflé.
la source
J'ai dû faire la danse de disquette sur mon ancien Mac 128K pour diverses applications, donc je n'en doute pas une minute, même si je n'ai pas pu donner de détails. Je ne serais pas surpris si cela ne faisait pas partie des raisons pour lesquelles les interprètes BASIC étaient si omniprésents sur les premiers ordinateurs personnels (pas besoin de plusieurs passes, tables de symboles, etc.).
la source