Inspiriert von dieser Frage .
Ich habe gehört, dass einige sehr sehr frühe Versionen von C-Compilern für Personal Computer (ich denke, es ist um 1980) auf zwei oder drei Disketten gespeichert waren. Um ein Programm zu kompilieren, musste man die Diskette zuerst mit "first pass" einlegen und ausführen den "ersten Durchgang", wechseln Sie dann mit "zweiten Durchgang" auf die Festplatte, führen Sie das aus, und machen Sie dasselbe für den "dritten Durchgang". Jeder Durchgang dauerte Dutzende von Minuten, sodass der Entwickler selbst bei einem Tippfehler viel Zeit verlor.
Wie realistisch ist diese Behauptung? Was waren tatsächliche Zahlen und Details?
Antworten:
Absolut. Ich hatte Microsoft C (Version 1.0, glaube ich) für einen Zenith Z100-Computer in den frühen 80er Jahren, der auf mehreren 5,25-Zoll-360-K-Disketten ausgeliefert wurde. Der Z100 hatte keine Festplatte, daher musste ich beim Wechseln häufig die Disketten austauschen zwischen dem Editor, dem Compiler und dem Linker. Die Kompilierungs- und Linkzeiten von mehreren Minuten waren nicht ungewöhnlich. Es war so ärgerlich, dass ich 500 US-Dollar für eine 2-MB-Speichererweiterungskarte (ja, Megabyte) bezahlte, damit ich alle Dateien in eine laden konnte RAM-Disk. Das verkürzte die Zeit auf ungefähr 30 Sekunden. Witzig ... Ich habe es damals genossen zu programmieren, weil es Spaß gemacht hat. Heute ist es Arbeit.
quelle
Es ist wahrscheinlich wahr.
In den frühen Tagen der Heimcomputer (für die Kinder / Eltern nicht die Hobiest) Maschinen hatten nicht einmal Festplatten.
Meine Eltern hatten einen Amstrad, auf dem sich das Betriebssystem auf einer Diskette befand, und der es Ihnen ermöglichte, die auszuführende Anwendung auszuwählen, für die möglicherweise ein Wechsel der Diskette erforderlich war (dh die Textverarbeitung befand sich auf einer anderen Diskette) brauchte einige spezialisierte OS-Service.
Ich hatte eine Kopie von Pascal für den Amstrad. Ich erinnere mich, dass sich der Editor auf einem Datenträger befand, aber während der Kompilierung musste zwischen Datenträger1 und Datenträger2 hin und her gewechselt werden, da die Kompilierungsvorgänge fortgesetzt wurden (an bestimmten Stellen in den Prozessen musste möglicherweise sogar auf den Betriebssystemdatenträger gewechselt werden (was ich jedoch nicht bin) also sicher aus)).
Eine gute alte Zeit, in der das gesamte Betriebssystem auf eine einzelne 3,5-Diskette passte (aber sonst nicht viel).
quelle
Disketten wurden 1971 eingeführt (das heißt die 8-Zoll-Diskette), waren aber erst Mitte der 70er Jahre (mit den 5,25-Zoll-Disketten) beliebt. C stammt aus dem Jahr 1973, daher hängt die Antwort meines Erachtens stark davon ab, was Sie als "erste Version" bezeichnen und wie der Kompilierungskontext lautete. Denken Sie an diese Variablen:
Schließlich dauert das Kompilieren heutzutage noch einige Minuten. Passen Sie einfach den Kompromiss zwischen Ihrer Hardware und der Komplexität des Programms an. Nur der Disketten-Teil ist nicht :-).
Berücksichtigen Sie auch, dass in den 70er Jahren noch viel auf einem Terminal-Mainframe-Computer gearbeitet wurde, so dass das Wechseln von Disketten (zumindest im geschäftlichen Produktionskontext) eher unwahrscheinlich ist. Ich weiß nicht, ob C als "Heim" verwendet wurde " Sprache).
quelle
Mein erster Versuch, C zu lernen, war in den späten 80er Jahren auf einem Commodore 64 (ja, es gab einen Compiler dafür). Wenn ich mich richtig erinnere, befand sich der Compiler / Editor / Linker auf einer Festplatte und Ihre Quelle auf einer anderen, und Sie mussten während der Kompilierungsphase mindestens einmal tauschen. Natürlich warst du auf der C-64 immer im Austausch.
Für das, was es wert ist, habe ich immer noch die Box und die Dokumentation für diesen Compiler. Macht alle paar Jahre eine nostalgische Lektüre.
quelle
Mein erster C-Compiler befand sich auf einem TRS-80-Modell 4, auf dem CP / M ausgeführt wurde (das erste Modell, das dies ordnungsgemäß ausführen würde und dessen Speicherplatz nicht dauerhaft dem ROM zugeordnet war). Die Festplatte im ersten Laufwerk musste CP / M enthalten.
Sobald ich mit dem von mir verwendeten Editor fertig war, musste ich das Programm kompilieren, zusammenstellen und verknüpfen, bevor ich es ausführen konnte. Jedes war ein eigener Prozess, der über die Befehlszeile gestartet wurde. Der Compiler, Assembler und Linker passen nicht alle auf eine Diskette. (IIRC, der Assembler und der Linker könnten zusammenpassen.)
Daher würde ich das Programm und den Editor auf der CP / M-Systemplatte haben und die Compiler- und Assembler- / Linker-Platten austauschen.
Ich suchte nach einem Programm, mit dem ich ohne Systemdatenträger arbeiten konnte, und hatte einen Plan (an den ich mich nicht mehr erinnere), um die Dinge so einzurichten, dass ich eine kleine Batchdatei erstellen und die Befehlszeilenaufrufe automatisieren konnte. aber ich bin nie durchgekommen.
Nachdem ich versucht hatte, dieses System zu verwenden, gab ich C so ziemlich auf und kehrte für einige Jahre zu Pascal zurück.
quelle
Als ich in der High School war (1989-1990) machten wir Pascal auf einem Apfel II und es war SLOW . Sie können ein Programm mit etwa 100 Zeilen schreiben, wenn Sie auf Kompilieren klicken, dauert es einige Minuten. Ich erinnere mich, dass Sie Zeit hatten, in den Mens Room zu gehen, während er kompiliert wurde, bevor das Programm ausgeführt wurde.
Etwa auf halbem Weg habe ich einen Mac SE bekommen, der so viel schneller war! Denke, Pascal war so viel besser.
quelle
Der Vater eines Freundes von mir war damals ein bekannter Programmierer. Er wurde müde, auf die Ergebnisse seiner Zusammenstellungen zu warten, Tage, manchmal Wochen. Meistens von zu Hause aus gearbeitet, das Programm geschrieben, die Karten gestanzt, überfahren, die Box dem Bediener übergeben und eine Weile darüber streiten, dass sein Code wichtiger war als alle anderen und warten.
Manchmal erreichte der Code nie den Computer, mein Freund erzählte mir die Geschichte der Zeit, als sein Vater wirklich, ich meine WIRKLICH sauer auf ihn wurde. Er hat nie wirklich verstanden, warum bis viel später im Leben, aber Junge, diese Schachtel voller starrer Papiere sah aus wie Spaß ... Hey, sie sind auch voller Löcher !!!
Eines Tages nahm er die Auseinandersetzung mit dem Management auf, und ich glaube, er machte eine gute Sache, weil sie einen Mini-Computer zu seinem Haus lieferten. Ich sollte erwähnen, dass der Computer bis dahin den größten Teil des Wohnzimmers einnahm, was natürlich verboten war.
Also ja, das Austauschen von Datenträgern zwischen den Phasen in einer Zusammenstellung ist definitiv eine Möglichkeit und vertraue mir, wenn ich sage, dass es eine VAST Verbesserung gegenüber dem war, was vorher verfügbar war !!!
Warten Sie 20 Jahre oder so, ich kann mir vorstellen, dass jemand eine Frage stellt, die etwa so aussieht:
Stimmt es, dass sie früher ihren Code Buchstabe für Buchstabe über Tastatur eingeben mussten?
quelle
Ich weiß nichts über C, aber in dieser Zeit hatte ich einen Microsoft Fortran-Compiler, der zwei Durchgänge benötigte. Nicht nur das, aber ich hatte ein seitenlanges Programm, bei dem es falsch lief (ich bin sicher, der Quellcode war richtig), also gab ich das Kompilieren für den PC auf. Es waren Tage vor dem Internet, und der PC gehörte meinem Arbeitgeber. Es war immer noch toll, den PC zu haben, ich konnte die Arbeit auf eine Diskette legen und sie mit nach Hause nehmen und bearbeiten. Als ich also am nächsten Tag zur Arbeit ging, hatte ich bereits ein bearbeitetes Programm und keine handschriftlichen Notizen.
Sogar in den viel früheren Tagen, als ich mit der Programmierung des Frühjahrs 70 begann, war der Compiler ein einzelner JCL-Befehl auf einem Großrechner-Betriebssystem mit Stapelverarbeitung. Es ist genau wie oben beschrieben. Sie haben in der Schlange auf einen Schlag gewartet und Ihre Holerith-Karten gestanzt. Dann gaben Sie sie durch ein Fenster an einen Bediener weiter. Abhängig von der Farbe Ihres PNC (im Grunde genommen eine Lochkarte mit Kontonummer / Passwort) erhalten Sie Ihre Ergebnisse möglicherweise 1 bis 24 Stunden später zurück. Niedrigstufige Studenten hatten den späteren Turnaround. Es war wirklich eine Herausforderung, die "Hallo Welt" -Aufgabe in den dafür vorgesehenen zwei Wochen zu erledigen! Ein paar Jahre später bekam ich einen Teilzeitjob als Programmierer und konnte nachts im Rechenzentrum rumhängen. Einige von uns könnten den Kartenleser sogar selbst füttern. Dann dauert es nur noch ein paar Minuten. Aber das konnte man erst spät in der Nacht.
Daher waren Compiler lange Zeit hauptsächlich eine Sache für Großrechner (Maschinen der Millionen-Dollar-Klasse, die sehr großen Organisationen gehören). Und die wenigen Minicomputer in der Umgebung mussten oft auf seltsame und knifflige Weise programmiert werden. Ich habe mit einem Mini-Computer Seismogramme digitalisiert. Es dauerte ungefähr 10-15 Minuten, bis das Papierband durch das Betriebssystem gelaufen war, und dann machten Sie Ihr Ding auf dem Digitizer-Tisch.
quelle
Ja sicher. Ich habe auf diesen alten CP / M-Maschinen kein C verwendet, sondern CB-80. Kompiliertes BASIC. (Und ja, es war ziemlich schrecklich). Auf einem Heath / Zenith Z-89 mit 2 Diskettenlaufwerken, die jeweils 89 KB fassen.
Die Kompilierung einer einzelnen Festplatte war so schrecklich, dass man sie vergessen musste. Zu viel Plattenwechsel. 2 Diskettenlaufwerke war LUXUS! Quelle auf der einen, Compiler auf der anderen Seite. Stellen Sie eine Zusammenstellung auf und gehen Sie auf eine Tasse Tee weg, während die Maschine klirrend klirrte, während die Disketten ein- und ausgeschaltet wurden und die Köpfe herumknallten.
Der Chef kaufte eine 5-MB-Festplatte mit einer Größe von etwa 18 x 18 x 8 Zoll, die separat mit Strom versorgt und mit einem ca. 2 m langen Flachbandkabel an der Rückseite des H89 befestigt wurde.
Oh die Geschwindigkeit! und die Kapazität! mit 5 MB Speicher.
quelle
Ich kenne C nicht (mein erster C-Compiler lief von einer Festplatte und war nicht schnell), aber der erste von mir verwendete Macro Assembler (C64) erforderte einen Diskettenwechsel (einer zum Laden des Assemblers, der andere zum Laden des Code), dauerte mehr als 20 Minuten, um das System zu erstellen, und nach einigen Monaten der Entwicklung waren sowohl das Diskettenlaufwerk als auch das Motherboard überhitzt und abgestorben.
quelle
College 1988 = Fortran auf einem PC, 8088 512 K (das ist ein K !!) RAM und ein einzelnes Diskettenlaufwerk Das Kompilieren dauerte 20-30 Minuten, ich musste keine Disketten austauschen, weil ich eine dieser neuen 720 K hatte.
Ein Sun3 (68030 1Mb RAM) und 24 VT100 Terminals für die ganze Klasse.
quelle
Vor meiner Zeit, nehme ich an. Meine erste "echte" Programmierung (jedenfalls auf PCs) war COBOL. Zu dieser Zeit verwendeten wir IBM-PCs. Sie hatten 2 360k-Diskettenlaufwerke; Einer hatte den Compiler und der andere hatte Ihren Quellcode.
Ich weiß, dass sogar meine einfachen College-Projekte buchstäblich 15 Minuten brauchten, um das Laufen auf diesen Disketten zu kompilieren - ich bin in die Cafeteria gelaufen, um Kaffee zu trinken, während es kompiliert wurde. Dann habe ich für das Abschlussprojekt in meinem Buddy-Haus daran gearbeitet. Er hatte gerade eine brandneue Maschine mit dem Namen Festplatte bekommen - 10 Megabyte! Unser Projekt wurde in weniger als einer Minute zusammengestellt. Es hat mich total umgehauen.
quelle
Ich musste den Floppy Dance auf meinem alten 128K-Mac für verschiedene Anwendungen ausführen, daher bezweifle ich dies keine Minute, obwohl ich keine Details nennen konnte. Es würde mich nicht wundern, wenn dies nicht dazu beiträgt, dass BASIC-Interpreter auf frühen Personalcomputern so allgegenwärtig waren (keine Notwendigkeit für mehrere Durchläufe, Symboltabellen usw.).
quelle