Draußen nur Kännchen
Mein Name ist Jörg Preiß. Ich programmiere seit dem 8088/8086. Und es fing an mit der Faszination von Fraktalen. Damals war Turbo Pascal noch die Lehrsprache, und es machte mir schon immer mehr Spaß, das letzte Quentchen aus dem VESA-Grafikmodus herauszuholen, als so etwas Profanem wie Religion oder VWL zu lauschen.
Weiter ging es mit C. Das musste ich nicht extra lernen, dafür waren sich beide Sprachen einfach zu ähnlich. Aber die ersten Einflüsse von C++ machten sich schon deutlich in meinen Bibliotheken bemerkbar. Kompiliert mit dem MS C 6.0, lang ist es her.
Doch endlich kam der Umstieg über Borland C++ auf Watcom C++ um die sagenumwobende Hürde von 640KB zu überwinden. Und ich traf auf Qt in der Version 2. Faszinierend, daß die Handhabung von Strings sicher sein kann ohne Fehler in den %-Parametern. Oder daß Array-Grenzen endlich vernünftige Fehler generieren, wenn man sie überschreitet. Aber die Bibliothek brauchte Windows – ich hab kurzerhand die Core-Elemente nach DOS portiert.
Endlich wurden die ersten Windows-Programme mit Visual Studio und Qt3 erstellt, und endlich Erweiterbarkeit von Programmen mittels DLLs bzw Shared Objects. Ich konnte mir das Betriebssystem zum Arbeiten auswählen, und ich hab viele davon ausprobiert, von MS-DOS über DR-DOS, OS/2 (bestes Multitasking aller Zeiten, aber Netzanbindung…), Win95/98 (bootet schneller, stürzt dafür auch schneller ab), Windows NT (Rückschritt im Obeflächendesign), Windows 2000, SuSE Linux (auf 40 Disketten), Debian, Ubuntu, Kubuntu, Knoppix, Windows XP, Vista (sehr sehr kurzes Gastspiel), LinuxMint, Windows 7…
Bei der Entwicklung von Software hat mir seit längerem die Testbarkeit gefehlt. Zwar gab es einige Bemühungen, speziell mit Qt4 und xUnit Funktionen abzusichern. Aber die Integration war eher mangelhaft.
An dieser Stelle kam nun endlich .NET ins Spiel. Refactoring wird mittels Resharper zum Kinderspiel, Umbenennen von Klassen ein Klacks – wer mir diese Zukunft beim Ausprobieren von MFC mit seinen Wizards prophezeit hätte…
Und die integrierten Testrunner tun ein übriges. MS-Test ist zwar ein netter Anfang, aber MSpec sieht einfach natürlicher aus. Mal sehen, welche verschiedenen Sprachen mir noch über den Weg laufen werden. Managed C++ als Brücke zur „alten Welt“ und C# sind schon gesetzt, IronRuby und IronPython locken mit der Austauschbarkeit von Code direkt beim Kunden… vielleicht lande ich doch bei einer Reinkarnation von FractInt in F# und der Kreis schließt sich? Wer weiß?