Tamio programmiert

Die Anfänge

Ich hatte bereits in meiner Kindheit eine Affinität für Technik. Und als Halbjapaner - Japaner gelten als sehr technikaffin - spielte ich mit allerlei neuestem japanischem Elektrospielzeug.

1984 hörte ich im Radio einen Bericht von der CES-Messe aus Las Vegas über einen Computer, der mit amerikanischem Akzent sprechen konnte. Die Moderatoren baten den Reporter, der Computer möge "Bratwurst" sagen, da dies für Amerikaner wohl eine Herausforderung in der Aussprache darstellen würde. Zum Erstaunen der Moderatoren war der Computer mit dem amerikanischen Akzent gut zu verstehen. Das faszinierte mich und ich musste dies sofort meiner Mutter erzählen. Ich kannte den Namen des Computers damals noch nicht, doch später fiel mir auf, dass es sich um den Computer handelte, der wenige Jahre später die wichtigste Rolle in meiner Programmierkarriere spielte.

Im selben Jahr sah ich voller Begeisterung die ersten computergenerierten Vollbildanimationen der ARD und zu dieser Premiere wurde eine anregende Dokumentation zum Thema der 3D-Animationen mit vielen Beispielen gezeigt. Diese Begeisterung gründete meine Computeraffinität.

Erste Berührungen mit Computern hatte ich bei meinem damals besten Freund Mirko †, der mir diverse Spiele und kleine Programme auf seinem _Commodore 64_ zeigte. Während der immens langen Ladezeiten von Datasette, hatten wir viel Zeit zum Fachsimpeln. Ich kannte mich noch nicht aus und antwortete auf die Frage, ob ich mir auch einen C64 anschaffen würde, dass mir erst einmal die _Software_ genüge. Ich dachte damals, dass _Hardware_ eine teure Erweiterung der Software wäre. Mirko war für mich damals der Computerexperte.

Mirko und Tamio am C64

Im Elektronik-Magazin ELO (Ausgabe August 1987) las ich einen bebilderten Artikel über den Amiga 500 und war insbesondere von den Fotos des 3D-Raytracing-Bilds der legendären "Juggler-Demo" fasziniert. Ich nahm an, dass es mit diesem Heimcomputer möglich sei, solch' fantastische 3D-Welten zu schaffen wie die ARD und die 3D-Künstler aus dem Fernsehbericht - und zwar stellte ich mir dies damals naiverweise als Echtzeitanwendungen vor.

ELO Magazin August 1987

Auch Mirko war damals sehr angetan vom Amiga. Kurze Zeit später verstarb er. Alles das, was ich später mit Computern anstellte, widmete ich ihm. Meine intensive Auseinandersetzung mit dem Thema begründet sich auch darin, dass ich das Gefühl hatte, seinen angefangenen Weg fortzuführen.

Der Amiga Computer

Amiga500 system.jpg
Bild: Von Bill Bertram - Eigenes Werk, CC BY-SA 2.5, Link

Mir war klar, dass ich keinen C64 sondern das Grafikwunder Amiga nutzen wollte, der in der Lage war "photorealistische" Bilder mit 4096 Farben gleichzeitig auf den Bildschirm zu zaubern - was zu dieser Zeit in dieser Preisklasse einzigartig war. Andere (oft weitaus teurere) Computer boten maximal 16 Farben und in der Regel galt es als "professionell" monochrom in DOS zu arbeiten. Auch mit dem Betriebssystem des Amigas war er seiner Zeit weit voraus. Er bot eine farbige grafische Benutzeroberfläche mit Mausbedienung und präemptivem Multitasking, wozu damals kein anderer Computer in diesem Marktsegment in der Lage war - noch nicht einmal der Macintosh.

Ein Schulkamerad besaß einen Atari ST, der ebenfalls mit Maus bedient werden konnte. Er empfahl mir den Atari ST und mir gefiel das Industriedesign - insbesondere mit den schrägen Funktionstasten - zwar besser als beim eher biederen Design des Amigas, aber die Grafikeigenschaften waren kein Vergleich.

Zu Weihnachten 1987 wurde mein Traum schließlich wahr! Ich bekam von meiner Mutter einen Amiga 500 und mangels Monitor und Fernsehadapter, musste ich mich eine Nacht lang gedulden, um am 1. Weihnachtstag aus dem Büro meines Vaters einen Monochrommonitor zu besorgen, der zwischen den Jahren durch einen Farbfernseher per TV-Adapter und später durch einen echten 1084S Amiga-RGB-Monitor mit Stereo-Lautsprechern ersetzt wurde.

AmigaBASIC

Da ich die ersten Monate lediglich die Systemdisketten besaß, vertiefte ich mich ins Betriebssystem und machte aller erste Schritte in der Programmierung mit Microsofts AmigaBASIC. Dieser Dialekt war damals sehr modern, da keine Zeilennummern notwendig waren und es möglich war die grafische Benutzeroberfläche des Betriebssystems ohne Tricks zu nutzen.

Meine erste Anwendung war ein Vokabeltrainer, da englische und französische Vokabeln zu pauken für mich eine Pein war. Nach einer "Spaghetti-Code"-Version - ich kannte beispielsweise noch keine Schleifen oder Sub-Routinen - entwickelte ich nach einigen Wochen eine recht ausgefeilte Version mit Punktesystem, verschiedenen Lernmodi und visuellen Effekten. Heutzutage würde man zu diesem Ansatz "Gamification" und "Edutainment" sagen.

Schon bald stieß ich an die Grenzen von Amiga Basic und da es eine Interpreter-Sprache war, nervten auf die Dauer die enormen Lade- und langsamen Ausführungszeiten. Ich wollte so schnell wie möglich auf C umsteigen, jedoch wollte ich eine ehrlich-erworbene Version eines Compilers mitsamt der beiliegenden Dokumentation, auf die man damals mangels öffentlichem Internet angewiesen war, kaufen. Der Preis von mindestens 400 - 800 DM war für mich als Schüler jedoch unerschwinglich und so kaufte ich aus Kostengründen den Devpac Assembler, obwohl mir die Programmierbeispiele (sog. Listings) in den Computer-Zeitschriften suspekt vorkamen.

Amiga Compiler Preise

Assembler

Devpac Assembler 2.0

Da Assembler für Unbedarfte sehr kryptisch anmutet, musste ich erst einmal viel lernen und stattete mich mit dem 68000 Assembler-Buch von Peter Wollschläger aus. Mit diesem Buch war ich dann für 3 Wochen ohne Computer im Sommerurlaub in Portugal. Ich hatte dieses Buch durchgelesen ohne das Gelesene ausprobieren zu können. Ich erinnere mich noch genau an den Moment als ich auf dem Weg vom Haus in Richtung Swimmingpool war, stehen blieb und ich förmlich im inneren Ohr den Groschen fallen hörte. Ich verstand vor diesem Moment nur Bahnhof. Und in dem Moment wusste ich, was ich als erstes zu Hause ausprobieren würde. Und genau dies tat ich und es funktionierte auf Anhieb. Assembler habe ich also tatsächlich erst theoretisch gelernt und dann angewendet - ein Szenario, das heutzutage, mit unmittelbaren Informationen aus dem Netz und massigen Software-Bibliotheken, fast undenkbar ist.

Amiga Assembler Buch

Assembler wurde zu meiner absoluten Lieblingssprache und ich entwickelte vor allem kleine Programme, die mir im Computer-Alltag fehlten. Zudem machte ich mir einen kleinen Sport daraus, Systemprogramme des Amiga-DOS-CLI in Assembler nachzuprogrammieren und damit Versionen zu entwickeln, die erheblich weniger Speicher belegten und schneller abliefen.

Ich experimentierte zudem mit hardwarenaher Programmierung im Rahmen der damals angesagten Intro- und Demoentwicklung. Ich entwickelte ein sogenanntes Intro mit Copper-Farbverlauf und Scroller (Textlaufband). Hauptsächlich entwickelte ich in diesem Rahmen einen sog. Soundtracker-MOD-Player (also ein Musikabspielprogramm), den ich auch in Anwendungsprogrammen nutzte.

ARexx, Modula II, Kickpascal und Amiga E

Oft nutzte ich meine selbstentwickelten Programme in Shell- und ARexx-Skripten und automatisierte diverse Arbeitsabläufe.

Ich entwickelte u.a. einige GUI-Tools und war von den Komponenten der grafischen Nutzeroberfläche des Amiga begeistert. Diese Begeisterung für Systemkomponenten und ähnlichen Systemen begleitet mich bis heute in Form von Android, iOS und Web-Designsystemen, was eine wesentliche Wurzel meiner beruflichen Konzeptionstätigkeit war.

Im Informatikunterricht der Schule nutzten wir zunächst Pascal auf Apple IIe und später Turbo Pascal auf MS-DOS-PCs. Auf dem Amiga gab es diese Compiler nicht, so dass ich das verwandte Modula II und später Kick Pascal nutzte. In Modula II schrieb ich für die Projektwoche der Schule einen Mandelbrot-/Juliamengen-Plotter. Meine Version war im Vergleich zu den anderen die einzige mit Farbausgabe und Mausbedienung. Bemerkenswert an der Projektwoche waren noch zwei Mitschüler, die eine Lösung auf Basis zweier Atari ST entwickelten, die mittels MIDI-Schnittstelle kooperativ die Mandelbrotmenge berechneten. Unser Unterricht bei Herrn Dr. Kaiser war klasse.

Mandelbrot-/Juliamengen-Plotter Amiga

Für den Amiga erschien die sehr elegante Sprache Amiga E mit der ich fast so gerne entwickelte wie mit Assembler. Darüber hinaus beschäftigte ich mich mit einigen weitere Sprachen und Umgebungen, wie AMOS, Scala und Amiga Vision - allerdings eher experimentell.

BBS, HTML, LiveScript und Future Splash

Als CoSysOp einer Mailbox (BBS) entwickelte ich kleine Skripte, was meinen Programmiereinstieg in die DFÜ- bzw. Netz-Welt war.

Golden Garden BBS Aushang

Mit dem Aufkommen des World Wide Webs entwickelte ich 1994 meine erste Homepage, die ich gerne zum Experimentieren nutzte.

Die darauf folgende enorme Dynamik im Web-Technologiebereich erwies sich als ideale Spielwiese für mich, da meine Multimedia-, Programmier-, und DFÜ-Erfahrung darin aufging. Und meine Leidenschaft, alles mögliche auszuprobieren, wurde ebenfalls gut bedient. Ich experimentierte u.a. mit LiveScript und Future Splash - den Vorläufern von JavaScript und (Shockwave bzw. Adobe) Flash.

Web-Entwicklung

Seit 1996 arbeitete ich im Internet-Bereich als Web-Entwickler, Konzepter und Teamleiter.

Meine Schwerpunkte waren im Verlauf der Zeit bis heute:

  • HTML (seit Version 2)
  • Flash
  • CSS
  • ASP
  • JavaScript, Node.js, ActionScript, ECMAScript / DemandwareScript
  • XHTML, XHTML MP
  • WML
  • PHP
  • SQL
  • SCSS
  • Grunt, Gulp, Bower
  • ES6+, React, Redux, Styled Components

Ich habe die Aspekte markiert mit denen ich mich aktuell weiterhin beschäftige.

Persönliche Meilensteine

Im Folgenden liste ich einige persönliche Meilensteine meiner Programmiertätigkeit auf, welche für mich sehr lehrreich waren.

1991: Share #25

Auf der diskettenbasierten Shareware-Serie Share wurden einige meiner Programme auf der Nummer #25 im Jahr 1991 veröffentlicht. Ich verdiente damit mein erstes Geld durch Programmierung. Enthalten waren ein Vokabelprüfer (Basic), Adressbuch (Assembler), schlanke CLI-Anwendungen (Assembler) und diverse Utilities. Zudem habe ich auf der Diskette einige Computergrafiken und Animationen veröffentlicht, welche ich mit Deluxe Paint, Digi Paint und Fantavision produziert hatte.

Share #23

1996: Raw2Ent

Mit Raw2Ent hatte ich eine Stapelverarbeitungs-fähige CLI-Anwendung zur Kodierung und Dekodierung von HTML Character Entity Codes und Farbnamen mitsamt Editor-Integration (CygnusEd) in Assembler und Rexx programmiert, welches mein erstes kontinuierlich weiterentwickeltes Software-Produkt war.

Ich kombinierte dieses Programm mit Skripten zur Erzeugung statischer Websites auf Basis von Vorlagen und automatischer Erzeugung der Website-Navigation. Dieses System war die Basis für das campusweite Informationssystem (CWIS) der Universität Düsseldorf, welches ich auf die Bitte Prof. Norbert Henrichs' initiierte und betreute.

2002: Clippy

2002 hatte ich mit dem Programm Clippy eine Anwendung zur Verwaltung der Zwischenablage auf Windows-Computern geschrieben, welche ein positives Presseecho in der Computerzeitschrift c't (Ausgabe 21/2002 S.080), in der Tageszeitung FAZ (vom 15.10.02 in Technik und Motor) und im britischen DVD-ROM-PC-Magazin PC Advisor (Ausgabe 95, Juli 2003) fand.

Clippy

c't pcadvisor

F.A.Z.

Für mich war es sehr lehrreich zu erfahren, dass die Verwaltung von Registrierungsschlüsseln und die Kundenunterstützung die Hälfte des Gesamtaufwands der Software ausmachte, so dass ich die Gebühren der heutigen App-Stores für angemessen halte, da hier vieles im Vertrieb erheblich vereinfacht wird.

2018: Raspberry Pi

2018 kam ich durch einen Kollegen mit dem Raspberry Pi Mini-Computer in Kontakt. Und ich fing sofort an, mich in das System zu "verlieben".

Raspberry Pi

Ich sehe im Raspberry Pi den alten Geist der Amiga-Zeit aufleben und habe sehr viel Spaß beim Basteln mit ihm, Raspbian, Node-RED, OpenHAB und Sensoren und Aktoren. Es schließt sich hier auch der Kreis zu meiner Vor-Computer-Zeit, da ich kürzlich wieder angefangen habe Elektronik zu löten.

Profile

Hier sind einige meiner Online-Profile zum Thema Programmierung.

Codewars:
Codewars IOIO72 aka Tamio Honma

Codepen:

GitLab:
gitlab-logo-gray-rgb

GitHub:

GitHub Gist

NPM: