(Erstveröffentlichung: 2008)
Einen „Vorteil“ muss ich Windows jedoch zugestehen:
es gibt wesentlich mehr Software für Windows.
Aber warum ist das so? Es wird eine Menge Software für GNU/Linux geschrieben.
Das Problem ist: Software, die für GNU/Linux geschrieben wird, wird meistens
auch nach Windows portiert, während es umgekehrt nicht der Fall ist.
Warum aber ist es umgekehrt nicht der Fall? Weil die Windows API unfrei ist,
während die freien Bibliotheken halt frei sind, und von daher portiert werden
dürfen und können.
Warum bevorzugen Windows Programmierer die Windows API? Sie ist keineswegs
gut und schon gar nicht einfach. Zum einen kann man für Windows aber gar
nichts schreiben, ohne die Windows API zumindest indirekt zu benutzen.
Und weil die bei Windows dabei ist, während freie Bibliotheken vom Anwender
erst nachinstalliert werden müssen. Viele Anwender sind dazu nicht bereit
oder in der Lage.
Was könnte ich persönlich dagegen tun? (Das heißt, in dem bescheidenen Rahmen,
in dem ich überhaupt etwas tun kann) Antwort: Nichts für Windows
programmieren. Zumindest werde ich möglichst nicht mehr direkt die Windows API
verwenden, auch wenn das meine Programme unter Windows schlechter aussehen
lässt. Doch… so sei es!
Zur Zeit setzen viele meiner Programme auf die SDL. Die SDL ist bei den freien Systemen in der
Regel schon dabei (sogar bei Damn Small Linux). Es gibt sie auch für
Windows und Mac OS X, muss dort aber erst nachinstalliert werden.
Wie denkt ihr darüber?
Einige Zusatzinformationen:
Die Windows API wird für freie Systeme über das Wine Projekt nachprogrammiert. Unfreie Software
nachzuprogrammieren ist aber natürlich wesentlich aufwendiger, als freie
Software zu portieren. Deswegen wird Wine wohl nie wirklich fertig sein
(obwohl die Versionsnummer schon über 1.0 hinaus ist, aber das heißt nicht
viel).
Microsoft versucht jetzt selbst die Windows API auslaufen zu lassen und
stattdessen ihre .Net-Plattform zu puschen. Mit .Net haben die aber auch
wesentlich mehr Kontrolle über Fremdprodukte und wenn denen etwas nicht
gefällt, können die es relativ einfach unbrauchbar machen. Auch ist .Net bei
weitem nicht so offen, wie die tun. Viele behaupten sogar, dass .Net
„Open Source“ sei. Das ist aber eindeutig falsch! Der Quelltext ist zwar
öffentlich zugänglich, aber man darf nur gucken, und nichts damit machen.
Das ist weder mit Freier Software noch mit Open Source vereinbar.
Es gibt auch Freie Software Nachbauten von Microsoft .Net. Zu den selben
Problemen von Wine gibt es bei diesen Nachbauten aber weitere Nachteile.
Vor allem ist nicht geklärt, inwieweit die eventuell von von
Microsoft-Patenten betroffen sind.
Für freie Implementierungen ist die Veröffentlichung des Quelltextes von
.Net absolut kein Vorteil, wie viele glauben, sondern im Gegenteil extrem
hinderlich.
(Das auszuführen würde aber den Rahmen dieses Artikels eindeutig sprengen.)