Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03193.jsonl.gz/1452

Ich habe erkennen müssen, dass der Mensch nur unzureichende Programme voller Fehler schreiben kann. So habe ich mir grundsätzliche Gedanken gemacht, wie der Computer dazu eingesetzt werden könnte, um menschliche Fehler aufzufinden und verhindern zu helfen. Aus diesen Überlegungen resultierte ein Softwarepaket, von mir Cplus genannt, welches in der ganzen Firma gerne eingesetzt wurde. Es hat die Qualität der Software massgeblich verbessert und Portierungen auf andere Systeme wesentlich beschleunigt. In den modernsten heutigen Programmiersprachen (z.B. C++, Eiffel) sind inzwischen viele dieser Konzepte zum Standard geworden (z.B. automatische Speicherverwaltung, Exceptionhandling). Ich habe diese Konzepte damals aufgegriffen und in die mir zur Verfügung stehenden Programmiersprachen (C, alte Version von C++) eingebaut.
Das erste grössere Software-Paket von mir war der Treiber LLI (Low Level Interface) für die grafische Workstation GINA, eine Eigenentwicklung von Contraves. Die Ansteuerung eines Treibers zur Grafikausgabe auf einem Bildschirm ist sehr mühsam. Texte und komplexere Linien mussten durch Aneinandersetzen von einzelnen Liniensegmenten aufgebaut werden. Wenn man den Bildschirm in mehrere getrennte Bereiche (heute Fenster genannt) aufteilen wollte, musste man die Linien auch noch Clippen. Um all diese Aufgaben zentral zur Verfügung zu haben, programmierte ich das MLI (Middle Level Interface).
Nun fehlten noch Funktionen höherer Ordnung, mit welchen die Grafik strukturiert und verwaltet werden konnte. Die Grafik sollte geräteunabhängig definiert werden können, sodass die Anwendungsprogramme sich nicht um die Ansteuerung der verschiedenen auf dem Markt erhältlichen grafischen Ausgabegeräte (Bildschirme, Workstations, Plotter, Drucker) zu kümmern brauchte.
Ich erkannte die Notwendigkeit für ein solches Programm-Modul. Zu dieser Zeit gab es erst einige firmenspezifische Module z.B. für HP Workstation oder Tektronix. Auf dem Papier und in Entwicklung an einer Universität war ein Vorschlag Namens GKS (Graphic Kernel System). Ein unabhängiges Paket, in welches man GINA hätte einfach integrieren können, existierte noch nicht. So habe ich mich daran gemacht, selbst ein solches Paket zu entwickeln, IG (Independent Graphics). Ich habe mich dabei stark am Konzept von GKS orientiert. Als das Paket mit der Workstation GINA fertig gestellt war, waren auch schon die ersten Implementierungen von GKS auf dem Markt. Dank meiner Voraussicht, konnte GKS einfach ins IG integriert werden, so dass unsere Anwendungen nun plötzlich ohne Änderung auf einer ganzen Reihe von grafischen Workstations lief und alle möglichen Arten von Plotter und Drucker angesteuert werden konnten. Später kam noch die Integration von X11 hinzu, womit der ganze Markt der Unix Workstation erschlossen wurde.
Mit dem IG Modul konnte man Texte, Symbole, Flächen und Linientypen in Symboltabllen selber definieren. Man konnte einzelne grafische Elemente löschen, unsichtbar setzen oder verschieben und die Bildschirmdarstellung wurde automatisch immer korrekt nachgeführt. Eine Spezialität war zudem, dass dasselbe Bild in verschiedenen Grössen und Ausschnitten auf verschiedenen Bildschirmbereichen gleichzeitig dargestellt und manipuliert werden konnte. Die Grafik konnte hierarchisch strukturiert werden, damit sie eine möglichst genaue Abbildung des Modells der Applikation sein konnte. Flächen konnten mit beliebigen Grafiken gefüllt werden, was vor allem in der Landesvermessung gefragt war (Darstellung von Wald, Wasser, Sumpf usw.) und vieles mehr.
Um die selbst entwickelten Programm-Module intensiv testen zu können, habe ich zunächst eine einfache Programmiersprache Wscript entwickelt, die sich an Postscript orientiert. Damit konnte ich alle meine Module interaktiv oder automatisiert testen, was mir die Arbeit wesentlich erleichtert hat und die Software-Qualität garantiert hat. Mit der Zeit haben sich auch immer mehr Arbeitskollegen für diese Programmiersprache interessiert. Wscript hatte den Vorteil, dass es für den Computer sehr einfach auszuführen ist und somit schnell programmiert war.
Der Nachteil von Wscript war, dass es für den Menschen umständlich zu erlernen und zu programmieren war. So habe ich mich an ein neues Projekt gewagt und eine weitere, für Menschen so komfortabel wie mögliche Programmiersprache gemacht. Dazu habe ich alle bereits existierenden Programmiersprachen analysiert und von jeder das Beste heraus gegriffen. Heraus gekommen ist nach ca. 1 Jahr Arbeit die Grundversion von MCL+.
MCL+ kann man sich vorstellen als eine Mischung von Basic und Java, jedoch voll interaktiv, Objekt orientiert (OOP), erweiterbar, mit just in time Compiler. Mit der Zeit kam noch ein Source Level Debugger mit grafischer Benutzeroberfläche dazu. MCL+ ist mir so gut gelungen, dass es sofort in die bestehenden Produkte eingebaut wurde und viele Funktionen nur noch in MCL+ realisiert worden sind. Dies hat die Entwicklungszeit beträchtlich verkürzt. Alle Kollegen setzten MCL+ zudem gerne und erfolgreich als Testumgebung für ihre Module ein.
In allen meinen Programm-Modulen griff ich auf umfangreiche Bibliotheken von Grundfunktionen zurück, die ich alle selbst programmiert habe: Datenstrukturen wie Listen, Hashtabellen, Bäume usw. sowie grundlegende geometrische Bibliotheken mit Funktionen für das Clipping verschiedenster grafischer Elemente, Schnittfunktionen, Transformationen usw. usw.
Zu meinen Aufgaben gehörte natürlich auch das Dokumentieren der Software und das Erstellen der zugehörigen Handbücher (Refernce Manuals, Users Guide, usw.) und die Schulung der Mitarbeiter, welche meine Module einsetzten. Um mir die Arbeit zu erleichtern, habe ich, wie könnte es anders sein, auch dazu Software entwickelt. Die Referenz-Handbücher konnte ich damit direkt aus den Kommentaren in der Software automatisch generieren lassen, sodass sie jederzeit auf dem neuesten Stand waren und nicht separat nachgeführt zu werden brauchten. Als Ausgabeformat habe ich damals schon HTML verwendet, als das Internet noch ein unbekanntes Medium war.