Und Weiteres

Die Beschreibung zu anderen Skills / Kenntnissen folgt noch.

Ich hab zumindest mir alles mal angeschaut, einiges ausprobiert, und es ist so, umso mehr man gemacht hat, umso leichter versteht man das nächste Widget-Kit oder das nächste Betriebssystem. Denn es gibt wohl immer ein "nächstes".

So ist es durchaus verblüffend, das WxWindows in vielen Teilen Ähnlichkeit mit MFC hat - die per Makro erstellten Methodentabellen (für Windows COM) stechen da sehr heraus. Obwohl Qt und Gtk verschiedene Programmiersprachen benutzen, so unterliegt ihnen doch das moderne Signal-Slot-Modell. Demgegenüber arbeiten Java/Swing und .Net/WinForms auf einem hybriden Modell, wo zwar dynamische Bindung eingesetzt wird, jedoch in der Regel keine Message-Loop für den Transport von Signalisierungen benutzt wird. Und bei vielen Widget-Kits muss man dann doch nochmal nach unten durchgreifen - da hilft es, wenn man schon mal direkt auf X11 oder Win32 programmiert hat, auch wenn man dies für echte Projekte vermeiden sollte.

Ähnlich verhält es sich mit Betriebssystemen. Auch die modernen WindowsNT-Kernel sind heute Unix-kompatibel. Da wird es vor allem interessant, wenn manche Dinge dann doch mal anders gelöst sind, etwa Thread-Synchronisation. Dies trifft umso mehr auf Plattformen wie Java oder VxWorks, die von Hause aus Multithreaded sind, aber es dafür umso schwerer machen, Applikationen voneinander zu trennen, da diese in der gleichen Box ablaufen. Das wird umso deutlicher bei PalmOS, das sogar nur kooperatives Multitasking kennt (wie bei altem DOS/Win32).

Die Treiberprogrammierung ist unter Embedded-Systemen wie Vxworks (und auch QNX) am einfachsten geraten, aber Linux ist auch recht gut verständlich. Bei Windows muss man sich dagegen nicht wundern, dass fast jede Betriebssystemvariante ein neues "Standardmodell" eingeführt hat (SYS, WDM, VXD). Wurde anfangs noch auf DOS Rücksicht genommen, so spielen heute Multiprozessor-systeme eine große Rolle in der Treiberprogrammierung, und Windows konnte nie einen sanften Übergang der teils recht komplexen Treibermodelle ermöglichen.

Projekte

GTK hat den großen Vorteil, nahezu überall verfügbar zu sein. Das liegt oft obenauf auf meinen privaten Projekten. Im betrieblichen Umfeld dagegen ist immer noch MFC das Maß der Dinge, so auch bei Tektronix und Logisoft. Obwohl natürlich auch hier der Übergang zu WinForms einsetzt, denn MS Managed C++ macht die Mischung von altem C++ und neuem .NET Code einfacher.

Bei Betriebssystemen ist natürlich VxWorks eine Besonderheit, obwohl es mittlerweile auch recht Unix-nah geworden ist, ja in letzter Zeit verlegt sich der Hersteller WindRiever zunehmend darauf, Linux zu unterstützen. Dagegen ist es wiederum erstaunlich, wie verschieden die JavaME Plattform ist, wie man sie auf Handhelds und Handys findet. Es gibt dort unter anderem ein anderes Widget-Kit, und verschiedene Zugriffe aufs Netzwerk und Datenspeicher als bei JavaSE/JavaEE.