Basic – das Latein der Programmiersprachen?

Manche Ideen liegen rum und grinsen mich blöd an:  „Ist Basic das Latein der Programmiersprachen?“ Wie zur Hölle bin ich auf diese Artikel-Idee gekommen? Aufgeschrieben im Herbst 2016, bin ich immer wieder über den Gedanken gestolpert. Heute stelle ich mich ihm.

Nein, für mich haben Latein und Basic nicht viel miteinander zu tun. Ich hatte in meiner Schulzeit mit beiden Sprachen zu tun. Latein habe ich gehasst, Basic fand ich toll.

Latein hatte ich ab der fünften Klasse, zu Basic bin ich in der elften gekommen. Latein war für mich unnützer Kram, die Programmiersprache sehr nützlich. Latein war grausam, Code eintippen spaßig. Mit Latein konnte ich nichts anfangen, mit Basic haben sich mir Welten eröffnet.

Also, warum soll Basic jetzt wie Latein sein?

Zwei tote Sprachen

Die einzige Verbindung für mich: Beide sind tote Sprachen. Wer spricht heute noch Latein? Und wer programmiert noch in Basic?

Das war es dann auch schon mit Gemeinsamkeiten. Denn Latein dient noch als Grundlage für alle romanischen Sprachen, sagt man. Französisch, Italienisch, Spanisch sollen damit leichter von der Zunge gehen. Französisch und später das VHS-Semester Italienisch fielen mit tatsächlich recht leicht. Also mag das sein. Dann ist Latein vielleicht doch nicht ganz so unnütz, wie ich das immer dachte.

Und Basic? Grundlage für andere Sprachen? Eher nicht. Im Gegenteil. Vom Ur-Basic, also dem mit den Zeilennummern finde ich nichts mehr in anderen Sprachen.

Startbildschirm Turbo Basic XL
Mit strukturiertem Code und atemberaubender Geschwindigkeit war Turbo Basic XL mein Programmierfavorit.

Was ist geblieben?

Eigentlich war Basic ein Irrweg in Sachen Programmierung. Die Sprache hat meinen Programmierstil über Jahre hinweg belastet. Ich will nicht wissen, wie viele junge Programmierer Basic letztlich versaut hat. Programmieren mit Zeilennummern und direkten Sprüngen. Ein Graus, wenn ich heute daran denke.

Aber die alte Sprache hatte einen großen Vorzug: Sie war zugänglich. Auf jedem Heimcomputer gab es eine Basic-Version und das Programmieren war wirklich einfach – auch auf meinem Atari XL. PRINT zum Ausgeben von Texten und Zahlen, INPUT für die Eingabe. Dann noch IF für Bedingungen und FOR für Schleifen. Was braucht man mehr?

Ok, die Zeilennummern – das war wirklich komisch. Jede Programmzeile war nummeriert. Üblicherweise verwendeten wir Zehnerschritte, also:

10 PRINT "HALLO WELT"
20 END

Um jetzt zwischen der ersten und der zweiten Programmzeile weiteren Code einzufügen, mussten wir wieder eine Zeilennummer verwenden – zwischen 11 und 19. Der Klassiker war eine Fünfer-Zahl, also

10 PRINT "HALLO WELT"
15 PRINT "ZWISCHENZEILE"
20 END

Und wenn die Zeilennummern ausgingen? Dann gab es den RENUM-Befehl, um wieder die Zehnerabstände (oder andere Intervalle) herzustellen. Diese Umständlichkeit kann sich heute kein Mensch mehr vorstellen. Damals ging es mir aber andersrum: ich konnte mir nicht vorstellen, wie man jemals ohne Zeilennummern programmieren könnte. All diesen Sprachen wie Pascal oder C fehlten die Nummern – und damit irgendwie der optische Halt.

Ein Listing in Turbo Basic XL, dem Hammer-Basic für den Atari 800XL

Wende mit Turbo Basic XL

Dann kam Turbo Basic XL – von Frank Ostrowski, der später auch das legendäre GFA Basic für den Atari ST geschrieben hat. Das brauchte zwar auch noch Zeilennummern, aber die waren nicht mehr notwendig. Denn die Unterroutinen hatten plötzlich Namen. Ich musste nicht mehr mit

GOSUB 200

eine Zeilennummer anspringen, sondern konnte mit

EXEC MEINUNTERPROGRAMM

direkt eine Funktion aufrufen. Welch Komfort.

Und doch auch so eine Art Rettung, denn über Turbo Basic XL war dann der Weg über Quick Basic auf dem PC zu C und schließlich – viele Jahre später PHP bereitet.

Also – Basic und Latein? Sie haben also gemein, dass keiner diese Sprachen mehr spricht. Und dass sie irgendwie Grundlage waren für andere Sprachen.

Dann war der Gedanke doch nicht so weit hergeholt. Gut, dass wir drüber gesprochen haben.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert