Ist das Programmieren heute einfacher als vor dreißig Jahren?
Jain.
Als ich vor 30 Jahren anfing, war ein “Hello World” eine Leistung. Die Maschinen waren einfacher, die Betriebsysteme waren einfacher. Man konnte relativ einfach etwas beachtenswertes auf die Beine stellen. Mit 13 schrieb ich ein Zeichenprogramm, das veröffentlicht wurde. Ich hatte damals 3 Jahre Programmiererfahrung und das Programm wurde groß gelobt. Quasi ein “Photoshop” für einen Commodore 128. In Basic.
Heute unterstützen einen Compiler und Entwicklungsumgebungen. Aber all den Scheiß muss man erstmal lernen. Schaltete man den C128 ein, war man sofort in der Entwicklungsumgebung. Die Entwicklungsumgebung war das OS. Wenn man einen Befehl eingab wurde der ausgeführt. Es gab keine Hürde bis zum Entwickeln, denn wenn man den Computer einschaltete, war man schon da und selbst das Laden oder starten eines Programms war eigentlich “Programmierung”, die direkt ausgeführt wurde. “Load” kopierte einen Datensatz von Band oder Diskette in den Speicherbereich, zu dem bei “Run” hingesprungen wurde.
Heute muss man erstmal ins Internet, sich eine Entwicklungsumbung runterladen und den ganzen Kram installieren. Der Speicher steht einem nicht mehr einfach so zu Verfügung, man muss sich mit Speicherverwaltung auseinander setzen. Ein Computer hat nicht nur eine CPU, da gibt es auch noch mehrere Prozessoren und damit meine nicht nur den Grafikprozessor, sondern auch Spezialsysteme in der CPU, wie SSE und AVX. Die CPU damals hatte drei Register, eine Hand voll Befehle, die man schnell gelernt hat. Bei drei Registern brauchst Du keine großartigen Techniken, es stellt sich nicht die Frage, was wann wie lange in einem Register bleibt. Laden, Rechnen, in den Speicher zurückschreiben. Zwei Register zum Rechnen, eins zum Zählen. Da muss man sich nicht mehr fragen, welche Variable man im Register halten will - da sind keine Register für verfügbar. Heutige CPUs haben mehrere Kerne, erlauben Hyperthreading. Heute muss man sich bei einem Standard-PC fragen, welcher Teil der Anwendung wie schnell läuft: Data Racings waren früher kein Thema.
Es gibt Multitasking, aufwendige Dateisysteme, User-Verzeichnisse und Systemverzeichnisse für die man Administratorrechte haben muss. Früher gab’s halt die Diskette. Keine Rechte, keine Verzeichnisse, nur Dateien. Einfach draufschreiben, fertig.
Eine Programmiersprache ist heute viel mächter als das Basic. C++ ist eine multiparadigmen Sprache. Was ein Paradigma ist, hat vor 30 Jahren keinen interessiert, wenn man nicht gerade an einer Universität saß. Objektorientierung war schon erfunden, aber spielte eigentlich keine Rolle. Also gab es auch keine Ableitungen zu verstehen, keine Diamantprobleme, keine Template-Meta-Programmierung, keine Lambdas.
Das musste man also auch alles nicht lernen, man musste keine Design-Patterns kennen, keine Idiome, keine Paradigmen: Es wurde einfach Befehl für Befehl abgearbeitet.
Einerseits unterstützen einen moderne Computer unglaublich mit den IDEs und den Debuggern. Wir können virtuelle Maschinen zum Testen laufen lassen. Wir stellen aber auch Software her, die vor 30 Jahren undenkbar war. Der moderne Webbrowser ist ein Beispiel dafür: Ein Textanzeiger mit einer aufwendigen Beschreibungssprache und Rendering-Engine und einer eingebauten Programmiersprache mit einem JIT-Compiler. Um animierte Katzenbilder und Videos auf Youtube zu gucken :)
Und wer heute etwas zeigen will, der muss damit konkurrieren. Heute auf ein Level zu kommen, dass sich irgendjemand dafür interessiert, was Du da tust, ist VIEL mehr Arbeit. Nicht umsonst boomen Raspberry PIs und Arduinos. Da spielt der ganze moderne Kram keine Rolle drauf. Ein Arduino hat 32KB RAM, eine CPU, kein Hyperthreading. Das ist genau die Welt, die vor 30 Jahren “Personal Computer” hieß und wo man einfach loslegte.
Programmieren ist genauso wie vor 30 Jahren. Die Frage ist, wie weit will man gehen. Um als Software-Entwickler bemerkt zu werden, muss man heute sehr viel weiter gehen als vor 30 Jahren. Mit dem, was ich als Softwareentwickler hobbymäßig heute nebenher mache, hätte ich vor 40 Jahren Bill Gates ziemlich alt aussehen lassen. So ist aber der Anspruch heute. Das heißt aber nicht, dass man dem nicht gerecht werden könnte. Im Gegensatz zu früher gibt es heute eine Unmenge an Fachbüchern, es gibt Libraries, es gibt Dokumentation und es gibt Wikipedia, professionelle Usergruppen und Konferenzen. Es gibt Volkshochschulkurse, es gibt Online-Akademien und man kann Informatik an jeder Ecke studieren.
Leistungsfähige Computer stehen kostenlos am Straßenrand, um vom Sperrmüll abgeholt zu werden. Das reicht vollkommen, um Programmieren zu lernen. Da sind sogar Festplatten drin. Ich habe mit einer Datasette angefangen. 1992 habe ich meine erste Festplatte gekauft. Für 900 DM. Und als das Paket kam, kam Enttäuschung auf, weil das Paket mit der “Fest-Platte” so klein war, wie soll man da angemessen Essen drauf präsentieren (kein Joke…). Das Ganze war etwa so groß wie eine Geforce 1080 heute. Ein Festplattenkontroller war damals ja Sonderzubehör und nicht auf dem Mainboard drauf… 144MB - unformatiert, das Größte, was ein gerade neuer Billig-Lieferant damals in den Printmedien inserierte. Alternate ist heute einer der größten Online-Shops überhaupt, aber Online gab’s damals ja auch noch nicht, da gab’s nur ganz eng bedruckte Kataloge auf einer halben Anzeigenseite in irgendwelchen Computer-Zeitungen.
Der Zugang zu Computern ist also heute kein Problem mehr. Vor 30 Jahren war das Glückssache. Und ohne Computer gibt’s auch kein Programmieren.