Erfahrungen mit Programmiersprachen

Dieser Text ist schon etwas älter - die Programmiersprachen und Computer haben sich in den letzten Jahrzehnten unglaublich weiter entwickelt. Vieles an dieser Entwicklung habe ich miterlebt - hier einige Gedanken dazu:

Programmiersprachen sind für die Benutzung von Computern notwendig. Wenn man mit dem Computer ein Problem lösen möchte (das ist sogar die Anzeige eines Buchstabens) muß dafür ein Programm geschrieben werden - von irgendjemandem.

Mit der Zeit haben sich sehr viele Programmiersprachen entwickelt, es gibt sogar spezielle Programme, mit denen man eine Programmiersprache erzeugen kann (Compiler-Generatoren). Inzwischen kenne ich die Grundlagen von einigen Programmiersprachen so gut, daß das Erlernen einer neuen Sprache nur wenige Tage dauert. Leider stolpert man dann immer wieder über die Syntax-Unterschiede zwischen ähnlichen Sprachen, oder in einer bestimmten Sprache geht eine tolle Sache aus einer anderen Sprache nicht wirklich gut.

Früher waren die Programmiersprachen noch etwas besser miteinander verknüpft, so daß man zum Beispiel Berechnungen in Fortran, Ablauflogik in Pascal, und die Ausgaben in Cobol gestalten konnte, und am Ende alles zu einem einzigen Programm verband. Das ist zwar heute auch noch möglich, aber es wird nur noch selten gemacht.

Ich habe selber erst mit dem Programmieren angefangen, als ich schon im Maschnenbau-Studium war. Gut, ich hatte schon einige kleine Erfahrungen mit einem C64 von einem Freund, aber das zählt eher nicht. Als Maschinenbau-Student habe ich Fortran als erste Sprache gelernt, eine schöne alte prozedurale Programmiersprache, die vor allem für Berechnungen benutzt wird, auch heute noch, denn es gibt sehr viele fertige Prozeduren, die komplexe Algorithmen durchführen.

Dann kam auch kurz danach BASIC (immer noch die einfachste Sprache), dabei gefiel mehr vor allem die, im Vergleich zu Fortran, einfachere Bildschirm- und Drucker-Ausgabe, nur die blöden Zeilennummern (gab es damals noch) waren störend. Das waren noch die goldenen Zeiten der GOTO-Befehle.

Dann wurde an der FH ein Mehrbenutzersystem angeschafft (DEC VAX mit VMS als Betriebssystem). Da gab es eine sehr interessante Textverarbeitung, die sich praktisch vollständig umschreiben läßt (TPU). Es ist also auch eher eine Programmiersprache, mit der alle möglichen anderen Textverarbeitungen simuliert werden können. Auch dafür habe ich einige nette Funktionen geschrieben (dann konnte man auf Tastendruck ein Wort groß oder klein schreiben, Buchstaben vertauschen und mehr).

Gelernt habe ich dann auch Pascal (gefällt mir nicht so sehr) und die Programmierung eines Statistik-Paketes (SPSS - da gibt's alle möglichen Auswertungs-Funktionen). Und ich habe herausgefunden, daß mein programmierbarer Taschenrechner nicht nur BASIC sondern auch Assembler versteht, dies ist die primitivste Programmiersprache, aber die versteht der Prozessor am besten. Plötzlich konnten einfache Rechnungen um ein Vielfaches schneller ablaufen, außerdem kann man damit direkt auf alle Teile des Rechners (z.B. auf Schnittstellen, Bildschirmpunkte...) zugreifen. Ein Apfelmännchenprogramm mit Ausgabe auf den Drucker für diesen Taschenrechner hat tolle Bilder gemacht!

In meiner Diplomarbeit habe ich mit GKS (DIN 66252 / ISO/IEC 7942) gearbeitet - damit sind graphische Ausgaben auf fast beliebigen Geräten möglich.In der Diplomarbeit ging es um graphische Darstellung von Meßwerten - und das lange bevor graphische Benutzeroberflächen allgemein genutzt wurden.

Nach dem Studium mußte ich mich beruflich mit dem Betriebssystem Unix auseinandersetzen, damit verbunden ist natürlich die Sprache C (schnell, etwas kompliziert, ein wenig gefährlich - man kann alles machen, also auch den gesamten Hauptspeicher löschen). Unter Unix ist zusätzlich die Shell-Programmierung sehr wichtig. Für alle Leute, die Unix nicht kennen, Shell-Befehle sind die Luxus-Ausgabe von .BAT-Dateien in MS-DOS. Dazu kann man viele Werkzeuge einsetzen, die zum Teil reguläre Ausdrücke benutzen (eine sehr leistungsfähige Möglichkeit, um automatisch Texte zu überarbeiten). Wer richtige Probleme mit Texten hat, wird um awk (ein Programm in Unix) nicht herumkommen, wer es noch besser braucht, sollte Perl in Augenschein nehmen.

In C habe ich dann auch versucht, einige Funktionen für die Bildschirmausgabe von Grafiken zu schreiben. Ich hatte schon während meiner Diplomarbeit mit einem Routinenpaket für Grafik (nach GKS-Norm) gearbeitet unter Fortran, und wollte selber auch mal so etwas schreiben. Ist gar nicht so schwer, nur am Anfang löscht man öfters nicht nur den Bildschirmspeicher, sondern den gesamten Hauptspeicher, mit etwas Glück hatte ich auch einige Male die Uhrzeit und Festplatteneinstellungen zerschossen. Aber dabei lernt man am meisten (insbesondere regelmäßige Datensicherung)!!!

Ein wenig habe ich mir dann noch die Sprache Forth (sehr schnell auf speziellen Prozessoren) angeschaut, dort überraschte mich vor allem die Formel-Notation (UPN = "Umgekehrte Polnische Notation", bekannt auch durch HP-Taschenrechner). Für die Arbeit brauchte ich neben C und Unix-Shell-Programmierung nur weniges aus anderen Sprachen, aber sehr viel Anpassungsarbeiten innerhalb anderer Programm-Systeme. Denn es gibt sehr viel Software, die in einem Grundzustand geliefert wird und anschließend noch einigen Aufwand bei der Installation erfordert, das kennt jeder, der schon einmal eine Datenbank (SQL - DIE Sprache für Datenbanken) oder AutoCad (Lisp(toll(viele(Klammern)))) eingerichtet hat.

Auch bei mir stand irgendwann einmal SQL auf der Liste, zum Glück ist diese Sprache nicht besonders kompliziert, man muß sich aber intensiv mit den Grundlagen von Datenbanksystemen beschäftigen, um die ganzen Möglichkeiten von SQL zu nutzen.

Und wo man schon mal dabei ist, nimmt man VBA (Visual Basic for Applications) in Word oder Excel und kann Arbeitsabläufe verbessern. Als in einer kleinen Firma als EDV-Abteilung arbeitete, habe ich versucht, den anderen Mitarbeitern damit die Arbeit zu erleichtern.

Viel neues hab ich gelernt, als ich dem Dolmetschen anfing, denn ich hatte auch viele Vorlesungen in Programmiersprachen gedolmetscht. Dadurch habe ich Einblick bekommen in objektorientierte Programmiersprachen, wie zum Beispiel Prolog (für Expertensysteme oder Regelwerke), Smalltalk (die erste und beste OOP) oder C++ (na ja, irgendwie ist C und Objekt ein Widerspruch in sich selbst, trotzdem klappts), Scheme (Nachfahre von Lisp).

Und jetzt bin ich viel im Internet, dabei braucht man natürlich HTML (ist gar keine richtige Sprache, dafür sehr einfach), CGI-Programmierung in Perl (besonders gute Stringbehandlung, "Reguläre Ausdrücke" sind eingebaut), Java (besser als C++, schlechter als Smalltalk) oder die diversen Abwandlungen (Java-Script, Java Beans...).