Sicher. Bevor die Dinge mit Altair, MITS, SWTPC, Kim, Sinclair, Pet, RadioScrap, OSI und Apple passierten, gab es eine entzückende kleine Maschine namens IBM 5100 . Es hatte BASIC im ROM , ein großes Kassettenlaufwerk (oder zwei), 8 KB Speicher. Ein 24-zeiliger Bildschirm und ein Drucker für nur USD 10.000 - eine Größenordnung günstiger als ein typischer Mini. Ursprünglich für Wissenschaftler gebaut ( APL in ROM war auch eine Option), aber dann entdeckten einige Buchhaltungstypen es und begannen einen Wahnsinn: Jedes kleine Unternehmen wollte eines. Natürlich mit kundenspezifischer Software. Die 5110 folgte, wobei die Bandlaufwerke durch 8-Zoll-Disketten ersetzt wurden.
Irgendeine kommerzielle Software? Galoons .
Können Sie Hauptbuch, Gehaltsabrechnung, Kreditorenbuchhaltung, Debitorenbuchhaltung, Bestandskontrolle und Rechnungsstellung sagen? Ich war dort, habe das getan - in BASIC. Stromrechnungen, Neu- und Gebrauchtwagenbestand, Müllwagenabholung und Getränkelieferplanung? Yup - BASIC. Willst du Eisenerz von Minen auf Züge auf Schiffe verfolgen ... BASIC. Alles, was kein Doppelboden war, wurde wahrscheinlich in BASIC erledigt. Kommerziell meine ich. (Weil RPG II nicht zählt ;-).
Wie hat man die Grenzen umgangen?
Nun, das erste, was Sie getan haben, war, den Kunden an IBM zurückzuschicken, um mehr Speicher zu erhalten. Denn wer könnte in 8 KB etwas Ernsthaftes schreiben? Sie einfach hatte 16. Und zwei Bandlaufwerke zu haben, wenn möglich, weil die Automatentheorie beiseite, merge auf einer einzige Band Sortierung ist, na ja, ein bisschen langsam.
Oh, sorry - du hast die Einschränkungen von BASIC gemeint.
Nun, Sie mussten Ihre Ressourcen sehr sorgfältig verwalten - zum Beispiel Zeilennummern -, weil Ihnen diese nicht ausgehen wollten. Es tut wirklich weh, einen ganzen Abschnitt neu zu nummerieren und alles erneut einzugeben, ohne versehentlich eine oder zwei Zeilen Code zu verlieren.
Nein, nur ein Scherz. Wir hatten dieses Problem nicht wirklich, bis Mikrocomputer mit einem BASIC-Interpreter auftauchten, der es nicht schaffte, von sich aus neu zu nummerieren.
Wir haben auch die Modularität verwendet: Sie haben ein neues Programm aufgerufen, ausgeführt, bis es beendet wurde, und sind zum aufrufenden Programm zurückgekehrt. Ein Problem mit Steroiden (weil Sie mehr Speicher verwenden müssen), aber viel langsamer (weil es eine Weile gedauert hat, bis die Maschine das Programm auf dem Band gefunden und geladen hat, und dann zurückgespult und das ursprüngliche Programm gefunden und geladen hat zurück...). Viel wie ein Fork und Exec, aber ohne den Fork, nur besser, weil der gesamte Speicherplatz geteilt wurde.
Die konsequente Verwendung von Konventionen hat auch geholfen - wissen Sie, wie "Sie MÜSSEN ein GOSUB immer auf eine Kommentarzeile ausrichten, die besagt, was diese Routine tut, und Sie SOLLTEN dasselbe für ein GOTO tun, wenn es möglich ist. So etwas. Oh, und strukturiert Programmieren , etwas später - wieder "nach Vereinbarung".
Einige gingen sogar ein wenig bis zum Äußersten: OAOO , YAGNI , TSTTCPW , Paarung, unbarmherzig refaktorieren , solche Sachen. Natürlich nicht mit diesen Namen. (Siehe auch: Prediger ;-)
Die glorreichen Tage.
Were those BASIC dialects only used to teach aspiring programmes bad style
Hm ... Es ist jetzt ein schlechter Stil, aber es war nicht damals.