Wie war es damals ohne IDE, ohne Frameworks und ohne umfangreiche Libraries zu programmieren?
Es ging auch. Nur viel langsamer. Alles.
Auf der ersten Maschine, auf der ich als Entwickler Geld verdient habe, haben sich so 50 Leute getummelt und entwickelt, getestet, Support geleistet und administrativ gearbeitet. War ein 80er Jahre Großrechner. 16 MB RAM, ~10 MHz Takt (eher: 10 MIPS), 8 GB Plattenplatz, 4 Bandlaufwerke.
Das Compilieren eines in PL/I geschriebenen Moduls von ca. 3000 Zeilen plus geschätzt gleicher Umfang an (ähnlich wie C/C++ #include) externen Zeilen dauerte ca. 10 Minuten, wenn nicht mehr. Ein Modul. Das Linken hat nochmal genauso lange gedauert.
So 3000 oder auch 6000 Zeilen PL/I konnten weniger als heute, dank Libraries, sagen wir 20 Zeilen Java mit Streams oder JPA-Annotationen.
Und die meisten Sachen waren sogar in Assembler geschrieben - da sind 3000–6000 Zeilen so viel wie 25 Zeilen Java ohne Library-Aufrufe und Annotationen.
Doku gab's nicht auf Knopfdruck, sondern in gedruckter Form in Dutzenden Regalmetern. Von daher gab's schon sehr sehr viele Libraries. Oder eher Betriebssystemfunktionen.
Debuggen bestand (neben hinzugefüten Logausgaben o.ä. - 2*10 Minuten später) darin, in einem von der Firma selbst entwickeltem Tool in einem 256-Byte-Hex-Ausschnitt des Speichers plus Registeranzeige Breakpoints zu setzen und Singlestep zu betreiben. Ohne Disassembly der Statements, die paar Instruktionen kannte man schnell auswändig.
Fand es beeindruckend, wenn die Spezis sich so 256 Bytes Hexdump anschauen und sagen konnten "da ist der Fehler!".
A propos Fehler: ein Bugfix wurde als Patch ausgeliefert. Das ist sowas wie ein Hex-Diff: checke, dass im Modul X an Offset Y die Hex-Bytes ab cd ef 01 stehen und ersetze sie durch 23 45 67 89. Ausgeliefert typischerweise per FAX. Jedes Modul hat dafür eine Patcharea bekommen, damit für Fixes überhaupt Platz war.
Und man hat mehr Papier verbraucht. Viel mehr. Jedes Compilat (mit erzeugtem Assembler-Code) und jedes Wandlungsprotokoll eines Assembler-Moduls (von Mnemonics zu Hexwerten, von Labels zu Offsets, man braucht das für's Patchen) wurde mindestens aufgehoben, wenn nicht ausgedruckt. Ausgedruckt, weil mehr als 80x24 oder 80x32 Zeichen Text hatte man nicht auf dem Terminal. Keine Maus.
Das einzige, was vergleichbar schnell war wie heute, sind die Drucker gewesen: so ein Kettendrucker schafft auch schon mal 20 Seiten pro Minute oder mehr.