Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03270.jsonl.gz/1721

Programmieren ist logikbasierte Kreativität
Diese Aussage stammt von
John Romero,
, einem Pionier der Spieleprogrammierung und dem Vater von
"DOOM".
Hier das vollständige Zitat::
"Man mag Programmierer nicht als Künstler ansehen, aber Programmieren ist ein extrem kreativer Beruf. Es ist logikbasierte Kreativität.
Doch bevor ich für Sie kreativ werden kann, müssen die Grundvoraussetzungen stimmen. Am Anfang steht ein klares Konzept. Was soll die Software erreichen und was muss der Benutzer tun, um zu diesem Ziel zu gelangen. Tatsächlich sollte jeder Programmierer die Benutzeroberfläche definieren, bevor er eine einzige Zeile Code schreibt. Führen Sie den Benutzer durch die Eingaben, geben Sie das nötige Feedback, platzieren Sie alle benötigten Eingabeelemente im sichtbaren Bereich und geben Sie der Funktion den Vorrang vor der Schönheit. Wer zu viel Wert auf modernes Design und Trends legt, kann entscheidende Schritte vergessen, die ein Produkt funktional machen.
Als Projektleiter der Ravensburger Spiele "Scotland Yard Interactive" und "Labyrinth der Meister" (beide auf Phillips CD-I) hatte ich viele schlaflose Nächte in Sachen Userinterface-Design. Diese Lehrjahre (oder Nächte) geben mir heute das Selbstvertrauen und den Mut, mich mit Grafikern, Art-Direktoren und Werbeagenturen zu streiten, wenn es um die Funktionalität eines User-Interfaces geht.
Diese kreative Auseinandersetzung führt zum Konzept der Programmierung und den ersten Codezeilen. 1978 musste ich noch jedes Byte mit dem virtuellen Eimer einzeln zur Zentraleinheit des Mikrochips tragen (assembler code: LDA) um es dort zu einem anderen Byte zu addieren (Assembler-Code: ADC).
Heute stehen mir hervorragende Entwicklungsumgebungen und mächtige Programmiersprachen zur Verfügung. Das macht Vieles einfacher aber nicht automatisch besser. Ich spreche fließend die Fremdsprachen PHP, JAVASCRIPT, VB.NET, C# und PYTHON. Aber selbst jahrelange Erfahrung bewahrt einen Programmierer nicht vor dem ultimativen Alptraum aller Coder: dem Debugging. Nein, Bugs sind keine netten kleinen Tierchen (ein Bug ist KEIN Käfer), es sind vielmehr fiese Gesellen, die sich bis zur Unkenntlichkeit maskiert in den dunklen Tiefen Ihres Programmcodes verstecken.
Ein frühes und schmerzhaftes Beispiel dafür, was ein FEHLENDER BINDESTRICH im Programmcode anrichten kann, war die Venussonde Mariner 1 der NASA. Im Jahr 1962 schaffte es diese Raumsonde gerade noch aus Cape Canaveral heraus, als ein Softwarefehler die Rakete gefährlich vom Kurs abkommen ließ und sie drohte, auf die Erde zurückzustürzen. Alarmiert gaben die NASA-Ingenieure am Boden den Befehl zur Selbstzerstörung. Die Kosten für den fehlenden Bindestrich summierten sich auf 18 Millionen Dollar. Programmieren ist eine Frage des Vertrauens. Ich sorge dafür, dass alle Bindestriche in Ihrem Programm an der richtigen Stelle sind und dass die Anwender es problemlos bedienen können...
Apps für den PC
Für Novartis Pharma habe ich eine CD/DVD Engine entwickelt mit der Powerpoint Slides synchron zu einem Video abegpielt werden. Die Applikation wurde kontinuierlich weiterentwickelt und für über 50 CD-ROM/DVD Projekte verwendet. Ebenfalls für Novartis entstand das Touchscreen-Kiosk System "From Bench to Bedside". Das System wurde mit 7 Einheiten mehrere Monate lang auf dem Novartis Campus eingesetzt. Für das Innocel Lörrach und die Firma Lauffenmühle habe ich in der Folge ähnliche Kiosksysteme programmiert.
Apps für Smartphones und Tablets
Die App-Programmierung für Tablets und Smartphones ist, nun ja, sagen wir es mal nett: kniffelig.
Durch die unterschiedliche Hardware, unterschiedliche Betriebssysteme und die oft fehlenden Informationen der Hersteller wird die Entwicklung zu einem unschönen Hürdenlauf und manchmal sogar zum legendären Ritt über den Bodensee. Für Novartis Pharma habe ich mehrere iPad Apps programmiert, die intern verteilt wurden.
HIER können Sie die Webversion einer iPad App anschauen, die ich für meinen Kunden Digitalwerk Basel erstellt habe.