Ich lese hin und wieder sehr gerne verschiedene Blogs – darunter sind natürlich „ganz große“ wie das lawblog, aber auch verschiedene kleinere, spezialisierte Blogs regen immer wieder zum Lesen an.
So z.B. auch das Blog von Thomas, der sich in meinen Augen jedoch mit diesem Posting völlig disqualifiziert hat. Ich habe schon überlegt, ob sein Account vielleicht gehackt wurde, er einfach völlig betrunken war, oder von Aliens geclont wurde.
Stein des Anstoßes: Grundlagenentbehrendes marketing-blabla gewürzt mit einer Prise Bashing. Der Artikel beginnt mit der offen gestellten Fragen, warum Thomas seiner Begeisterung für das .net Framework von Microsoft Ausdruck verleihen muß. Beantwortet wird die irgendwie mit „weil die Philosohpie aufgeht“.
Ich möchte auf keinen Fall Thomas hier auseinander nehmen, eher möchte ich meiner Enttäuschung über diesen Beitrag in einem sonst so gern gelesenen Blog ausdruck verleihen. Von seinen Kommentaren mal ganz zu schweigen…

Dennoch nehme ich den Beitrag einmal als Anlaß für eine Nachbetrachtung der Argumentation. Ich beschränke mich dabei nicht auf Microsoft Technologien und werde auch meine Meinung zu einigen Kommentaren darstellen.

Also .net ist deswegen so gut, weil man damit in der Windowswelt schier unbegrenzte Möglichkeiten hat und weil die Philosophie von Microsoft, dem Entwickler ein umfassendes Toolkit an die Hand zu geben, mehr und mehr aufgeht.

Anders formuliert: .net ist deswegen so gut, weil man außerhalb der Windowswelt quasi keine Möglichkeiten hat, und es außer Microsoft keinen Hersteller für .net Tools gibt. Ganz so schlimm ist es natürlich nicht, und die Umkehrung ist keine logische Schlußfolgerung, aber sie verdeutlicht doch die wesentlichen Aussagen, die die Begründung für „.net ist so toll“ liefern sollen.
Außerhalb der Windows welt entwickelt sich langsam Mono – auch mit Unterstützung von Microsoft. Das ist auch gut so, denn ich möchte meine Investitionen in eine Umgebung nicht auf eine Plattform festlegen müssen, die von einem Hersteller kontrolliert wird.
Dabei geht es mir nicht nur um die erstellen Programme, sondern vielmehr um das Knowhow (Tools, API, Framework, Prozesse), dass ich mir mit der Zeit aneigne – da steckt Lebenszeit drinn, und die ist teuer!

Gehen wir die unbegrenzten Möglichkeiten der Technologie weiter durch:

  • Entwicklung von (Enterprise-) Webanwendungen mit ASP.NET 2.0.
    Fein. Alternativen dazu gibts natürlich, Java, PHP – aber setzt man auf PHP zieht das Argument, dass man mit verschiedenen Technologien hantieren muss.
  • Entwicklung von Desktop-Applikationen mit WinForms und/oder WPF.
    Für Windows. Mit Java kann ich auf Basis von Eclipse RCP oder Swing (und verschiedenen Toolkits) arbeiten und alle Plattformen mit Java bedienen
  • Entwicklung von Rich-Media- und Rich-Gui-Anwendungen mit Silverlight (bald).
    Hier gibts wohl als vernünftige Alternative erstmal nur Flash, evtl. später JavaFX – für alle Plattformen auf denen es Flash oder Java gibt
  • Entwicklung von Windowsdiensten.
    Mit Java kann ich Dienste für alle Plattformen entwickeln.
  • Entwicklung von kommandozeilenbasierten Tools.
    Für Windows. Ich wiederhole mich nur ungern, aber Java…
  • Entwicklung von komplexen Datenbanklösungen.
    Auf einem Windows Rechner? Jeder, wie er mag. Mit Java kann ich mich später umentscheiden, wenn ich ein größeres Eisen benötige.
  • Entwicklung von mobilen Anwendungen für Telefone und PDAs.
    Nur für Geräte, die das supporten. Gerade im Konsumerbereich ist Java quasi der Standard. Und wenn ich mir anschaue, womit Jamba – und Zulieferer – stinkenreich geworden sind, so ist das nicht WindowsCE

Also was hier so nach „das geht nur mit Microsoft Technologien“ klingt, ist eher Marketinggetrommel. Sicherlich ist es schön mit einer Technologie zu arbeiten – eben das reizt mich ja an .net und Java – jedoch finde ich es etwas kurzsichtig etwas pauschal über den grünen Klee zu loben.
Meiner Meinung nach bedarf soetwas einer differenzierten Betrachtung, denn es gibt einfach keinen goldenen Hammer. Für richmedia ist einfach Flash derzeit Mittel der Wahl. Für Handyspiele ist es Java ME.
Und bei Java ist gerade die Offenheit, die Community mit dem Haufen an Frameworks und Lösungen ein wesentlicher Pluspunkt. Ja, ich möchte mich mit verschiedenen Tools auseinandersetzen, und für mich einen Mix zusammenstellen, der meine Bedürfnisse am besten absteckt.

Immer wieder gibt es Diskussionen zwischen mir und Stefan, ob IntelliJ Idea oder Eclipse „besser“ ist. Verschiedene Blickwinkel, verschiedene Ansätze sind wichtig und machen einen flexibel. (Abgesehen davon halte ich Visual Studio ohne Resharper für quasi unbenutzbar)

Unflexibel stellt sich mir Thomas an dem Punkt dar, an dem es darum geht, dass man Plugins für Visual Studio haben möchte, namentlich für Subversion (SVN). Thomas argumentiert, dass er das lieber über den Explorer (Dateibrowser von Windows) macht, als über die IDE.

Dafür gibt es viele Gründe, Stichwort Tellerrand. So kann man z.B. bequem Files einchecken bzw. verwalten, die in der eigentlichen Solution nichts zu suchen haben (Ressourcen, Dokumente, Grafiken, whatever), und man muss nicht die IDE starten um das Repository zu aktualisieren bzw. etwas hinzuzufügen.

Tellerrand? Gute Güte!
Ich habe im Eclipse SVN Support über Subversive, benutze unter Windows zusätzlich Tortoise und unter allen Plattformen Kommandozeilentools. Denn je nach Anwendungsfall möchte ich gerne optimal arbeiten können. Es gibt nämlich – noch immer – keinen goldenen Hammer.