Ballast in der Sackgasse

Räumt bitte endlich Windows gründlich auf!

Was für ein Typ Mensch sind Sie? Halten Sie immer penibel Ordnung, entsorgen Sie sofort alles, was nicht mehr zwingend benötigt wird? Sind Sie eher ein Mensch, der alles hortet, in der Hoffnung, man könne es mal wieder benutzen? Oder sind Sie gar ein Messie und können sich selbst von Abfall nicht trennen?

Wenn Sie zur zweiten oder dritten Gattung gehören, werden Sie irgendwann feststellen, dass die Lagerkapazität begrenzt ist und man irgendwann vor lauter Altlasten nicht mehr findet, was man sucht.

Kürzlich habe ich zufällig mal wieder einen Artikel gelesen, mit dem vor vielen Jahren OS X angekündigt wurde, das noch immer aktuelle Betriebssystem für Apple-Computer. Darin stand unter anderem, dass von rund 8.000 Schnittstellenbefehlen der beiden Vorgängersysteme mehr als 2.000 entfernt wurden, um das neue System möglichst schlank zu halten. Vorbildlich!

Leider ist so etwas bei Windows, dem weltweit dominierenden Desktop-Betriebssystem, nie passiert. Nicht nur, dass immer noch fast alle Schnittstellen aus der 16-Bit-Zeit von Windows 3.1 und Windows 95 erhalten geblieben sind, es wurden mittlerweile noch tausende neue Schnittstellenbefehle hinzugefügt.

Deutlich wird dies unter anderem im Bereich der Ausgabe von Grafiken auf dem Bildschirm. Ursprünglich geschah dies mit dem GDI (Graphics Device Interface) unter Nutzung von 16-Bit-Koordinaten. Mit der Umstellung auf 32 Bit wurde auch GDI auf 32 Bit umgestellt. Als Ergebnis gibt es im WMF-Dateiformat (eine Datei mit einer Folge von GDI-Befehlen) noch heute fast alles doppelt – einmal mit 16-Bit-Koordinaten, einmal mit 32-Bit-Koordinaten.

Bald stellte man fest, dass GDI allein nicht mehr ausreicht, um allen neuen Anforderungen gerecht zu werden. Also wurde GDI+ erfunden, eine Klassenbibliothek mit zusätzlichen Befehlen, die unter anderem Kantenglättung, Transparenz und bessere Bitmap-Funktionen anbot.

Leider ist diese Klassenbibliothek nur in Software realisiert, nutzt also keine Hardware-Beschleunigung seitens der modernen Grafikkarten und ist in vielen Situationen extrem langsam. Außerdem kann GDI+ nur auf dem Bildschirm genutzt, nicht aber ausgedruckt werden. Es ist somit von vornherein eine Sackgasse.

Als Microsoft dann irgendwann bemerkt hat, dass weder GDI noch GDI+ für vernünftige Spiele ausreichen, wurde als nächstes DirectDraw erfunden. Eine komplett neue Menge von Befehlen, realisiert als Klassenbibliothek, deren Hauptaugenmerk der direkte Zugriff auf leistungsfähige Grafikkartenchips und somit maximale Leistung war. Anfangs nur als Direct3D für 3D-Anwendungen verfügbar, wurde bald mit Direct2D ein spezieller Ableger für 2D-Anwendungen geschaffen, der von der Leistungsfähigkeit GDI und GDI+ weit in den Schatten stellte.

Leider aber kann auch diese Klassenbibliothek nur auf dem Bildschirm genutzt werden, nicht ausgedruckt. Sie ist somit wieder eine Sackgasse.

Wie kommt das? Ich sehe vor allem folgende Ursachen:

  • Sollte jemals GDI durch etwas Besseres (wie beispielsweise Direct2D) ersetzt werden, müssten geschätzt 90% aller Programme, die nicht auf Direct2D setzen, komplett umgeschrieben werden. Der Aufwand wäre zwar nicht sehr groß, aber trotzdem vorhanden. Und Microsoft befürchtet, damit Entwickler zu vergraulen.
  • Viel schlimmer wäre, dass dann alle (also 100%) der Druckertreiber neu geschrieben werden müssten. Egal, ob für einen einfachen S/W-Drucker, Farbdrucker oder PDF-Drucker. Komplett neu. Und Microsoft befürchtet, damit Hardware-Hersteller zu vergraulen.

Dabei stünden anschließend unglaubliche Möglichkeiten zur Verfügung, von denen Entwickler und Hardware-Hersteller heute doch eigentlich nur träumen können. Warum sollte dadurch jemand vergrault werden?

Was bleibt einem genervten Entwickler? Man pickt sich die Rosinen aus allen Möglichkeiten heraus und muss deshalb alle verschiedenen Systeme kennen und beherrschen. Vieles kann nicht oder nur sehr eingeschränkt ausgedruckt werden, anderes verträgt sich nicht untereinander.

Zusätzlich zu Vektorgrafik betrifft diese Baustelle auch alles, was mit Bitmaps zu tun hat. Auch hier ist man als Entwickler gezwungen, sich Befehle und Funktionen aus verschiedensten Quellen und Fremdbibliotheken zusammen zu suchen, um daraus ein schlüssiges Ganzes zu kreieren.

Da wünscht man ein wenig mehr Mut seitens Microsoft und den Willen, mal gründlich aufzuräumen und Ballast abzuwerfen. Aber spätestens seit Windows 10, welches uns anscheinend unter diesem Namen auf Dauer erhalten bleiben wird, ist die Wahrscheinlichkeit für eine solche Aufräumaktion gegen Null gesunken. Schade!

[EOF]

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s