Da ich die Diskussion in letzter Zeit öfter geführt habe möchte ich mal meine Gedanken zu Open Source Entwicklungstools im Vergleich mit Proprietären hier veröffentlichen. Vieles davon ist uneingeschränkt auch für jede andere Software gültig, aber ich beziehe mich vorrangig auf Entwicklertools.
Oft wird Open Source Software immer mit "Frickeltools", niederer Qualität, Unvollständigkeit, Unbeständigkeit usw. assoziiert. Diese Wahrnehmung mag durchaus gelegentlich auch nicht unbedingt falsch sein, aber meistens ist es auch genau andersrum. Open Source hat im Vergleich zu kommerzieller Software sogar einige unschätzbare Vorteile die viele nicht bedenken oder sogar erst gar nicht sehen.
Obwohl ich meine Diplomarbeit mit dem Visual Studio und .Net in C# entwickelt habe, und ganz nebenbei das VS auch für eine der Besten IDEs überhaupt halte, so bin ich doch überzeugt das die Open Source Gegenstücke in einigen Bereichen sehr viel besser da stehen. Oft kann man bemerken das Leute vor allem von den "Shiny" GUIs geblendet sind und man muss zugeben das auch beim VS darauf geachtet wurde das sich ämtliche Komponenten sehr gut integrieren, es ist auch ohne Plugins bereits sehr vollständig und selbst der GUI Editor für WPF ist im Grunde selbsterklärend. Die Lernkurve bei Alternativen ala Eclipse, Netbeans, MonoDevelop oder wie sie alle heißen ist beinahe immer höher und vor allem bei Eclipse heißt es oft erstmal Plugins installieren, Sprachpakete laden usw.. Der erste große Vorteil erschließt sich schon aus dem eben geschriebenen. Bei Open Source habe ich die absolut freie Toolwahl. Jeder Entwickler kann das Tool einsetzen was ihm am meisten zusagt und die wenigsten Probleme bereitet. Man macht sich außerdem nicht abhängig von einer einzigen Firma deren Tools man zumindest dann benutzen muss wenn man den größtmöglichen Komfort und die schnellst Mögliche Umsetzung aktueller Spracherweiterungen nutzen möchte. Dazu kosten diese Tools dann meist viel Geld, Upgrademöglichkeiten werden oft nicht angeboten und so muss ich alle paar Jahre meine Tools wieder neu kaufen um alle Features nutzen zu können. Bei den Updates und Upgrades liegt sowieso einer der größten Vorteile von Open Source Tools. Hier bekomme ich i.d.R. neue moderne Features, Bugfixes und Optimierungen sehr viel schneller und regelmäßiger als bei Proprietären Produkten. Generell kamen viele Neuerungen und Innovationen in den letzten Jahren durchaus aus der Open Source Szene und wurden später erst in Proprietäre Produkte aufgenommen. Neue Versionen kann ich mir einfach herunterladen und testen, da sie eh frei verfügbar sind. Ein neues Visual Studio gibt es maximal in der abgespeckten Express Edition und viele ergänzende Dinge wie Expression Blend bekomme ich vor dem kostenintensiven Kauf maximal in Videos zu Gesicht.
Ein weiteres Problem ist die Codequalität der Tools selbst. Auch wenn hier einige sofort denken möchten das Open Source Tools aus schlechtem Code bestehen müssen so ist das absolut falsch. Ein Open Source Tool kann von jedem der es möchte angesehen und sein Code kontrolliert werden. Schreibt ein Open Source Entwickler nun schlechten Code wird sofort eine hitzige Diskussion entbrennen bis der Code allgemeinen Maßstäben genügt. Bei Proprietären Tools sieht das ganz anders aus. Hier kann hinterher sowieso niemand in den Code schauen, dafür zählt aber die Releasedeadline gnadenlos herunter. Priorität dürfte in den meisten Proprietären Projekten haben das die Arbeit schnellstmöglich fertig ist. Es gibt bereits einige Beispiele wo ehemals geschlossener Code geöffnet wurde und vorher "aufgeräumt" werden musste da die Öffnung des Codes so wohl zu peinlich war.
Vor einem großen Problem stehen viele Anwender auch wenn eine neue Version eines Programmes veröffentlicht wird und sie einen kritischen Fehler aufweist, nicht mehr mit bestehender Zusatzsoftware zusammenarbeitet oder lieb gewonnene Funktionen einfach weggelassen wurden. Im Falle von Proprietären Produkten wie dem Visual Studio bleibt mir nichts übrig als zu warten das Microsoft dieses Problem behebt. Bei einem Tool wie Eclipse könnte ich entweder ein Plugin austauschen (falls der Fehler davon verursacht wurde) oder mir einfach eine andere IDE suchen die derzeit besser funktioniert, aber auch hier würde sicher zum tragen kommen das der Kontakt zu den Entwicklern und das einchecken von Bugs sowie das Fixen derselben jedem möglich ist und so wird der Fehler hier tendenziell viel schneller behoben sein, da es potenziell auch viel mehr Entwickler gibt.
Zu guter letzt ist es sicher auch ein ernst zu nehmender Grund das es so gut wie noch nie bei Open Source erzwungene Technologiewechsel gab. Wenn ich heute moderen Windows Programme mit .Net entwickeln möchte komme ich an C# und .Net 4.0 sowie der WPF kaum vorbei. Vor einigen Jahren hatten wir auch schon C#, aber noch .Net 2.0 und Forms, einige Zeit davor war C++ mit Win32 und MFC aktuell. Dies sind keine fließenden Übergänge gewesen sondern erforderten beim Entwickler immer das Kaufen neuer Tools und brachten teils extreme Lernkurven mit sich. Eine Alternative gab es kaum, da viele neue Features oft auch nur für die neue Technologie vorhanden sind. Im Open Source Bereich liefen solche Dinge ungleich anders ab. Technologiewechsel wie z.B. bei Jave von AWT auf Swing waren immer optional und selbst heute kann ich noch AWT Anwendungen bauen die zwar nicht so schön aussehen, aber viele der modernen Features nutzen können. Auch Versionssprünge der Programmiersprache selbst laufen sehr viel sanfter ab und erfordern selten eine Neuinstallierung der ganzen Entwicklungsumgebung. Neue Features werden öfter und dafür in kleineren Schüben eingepflegt. Somit ist die Lernkurve sehr viel schmaler. Allerdings sind beinahe immer auch die alten Technologien noch voll weiterhin nutzbar.
Zum Schluß möchte ich noch einmal sagen das auch ich natürlich sehe das aufpolierte Tools wie das Visual Studio und Expression Blend es erlauben in kürzester Einarbeitungszeit extrem schicke GUIs zu stricken und einem möglichst viel Arbeit abnehmen. Hier sind Open Source Tools noch ein ganzes Stück hinten dran, aber man gibt damit auch einen großen Teil seiner Freiheit auf. Nach einer Gewissen Einarbeitungszeit stehen die Ergebnisse die man mit freien Tools erzielt denen die man mit z.B. VS erreicht in nichts nach aber man erhält sich seine Unabhängigkeit.