Java vs. .NET – it’s so technology…

Bezugnehmend auf das gestrige Posting von Damir, meine Entgegnung und die Antworten von Shinja und Thomas, hier nun meine Gedanken zur Thematik:

Technologiehörigkeit

Viele, viel zu viele Entwickler und Entscheider sind technologiehörig. Da wird DIE Technologie in den Himmel gelobt und jede andere Technologie verteufelt. Da schlägt dann auch mal schnell ein beleidigter Ton durch, da wird unsachlich diskutiert und ein gepflegtes Halbwissen aus der Vergangenheit als Basis für Aussagen in der heutigen Zeit genommen. Das ist der Status quo, den wir immer wieder sehen.

Standards vs. Technologien

Die Wahrheit jedoch ist (und das hat Shinja heute sehr schön geschrieben): Technologien sind vergänglich. Technologien sind nur temporär. Die Diskussion um Technologien geht also an den Bedürfnissen vorbei – Unternehmen investieren heute weniger in .NET oder Java, sondern in Plattformen, mit denen sie ihre vorhandenen Lösungen integrieren und weiter sinnvoll nutzen können. Das ist der Moment, wo Standards – etwa XML oder WebServices – ins Spiel kommen. Die sind das, was eigentlich zählt. Die zugrundeliegende Technologie verliert an Bedeutung – sie kann bei Bedarf ausgetauscht werden. Wenn also gegen eine spezifische Technologie polemisiert wird, trifft das den Kern der Sache einfach nicht.

Aussterbende Technologien

Bestimmte Technologien werden an Bedeutung verlieren – etwa klassisches ASP. Hier sind die Gründe klar: Die Technologien sind veraltet und bieten einfach nicht die Funktionalitäten, die heute erwartet werden. Auf Kosten dieser Technologien findet das zukünftige Wachstum statt – die freiwerdenden Marktanteile werden sich integrierte Frameworks wie .NET und Java teilen. Da eine Verschiebung zwischen Java und .NET zu erwarten ist blauäugig – dafür sind die Laufzeiten der Projekte zu lange und dafür sind auch die Investitionen in die Umgebung oftmals zu hoch.

PHP ist Technologie, kein Standard

PHP spielt zwar derzeit eine gewichtige Rolle im Umfeld von dynamischen Applikationen, hat jedoch im Enterprise-Bereich noch kein Bein auf den Boden bekommen. Und das nicht ohne Grund: Es dreht sich hier einfach zu wenig um Standards – und somit ist PHP vergleichsweise uninteressant in Bereichen, in denen es um Integration geht. Übrigens sollte man an der Stelle nicht von der reinen Anzahl an PHP-Webseiten ausgehen und die Sprache als seligmachendes Mittel anpreisen: In der schieren Masse verstecken sich Unmengen an kleinen und kleinsten Präsentationen, Gästebücher und Foren. Die als Enterprise (also Unternehmensanwendung) zu sehen, fällt ernstlich schwer.

Standards zählen, nicht Technologien – Integration zählt, nicht Hype

Wenn das alles zusammengezählt wird, schlägt hier die Stunde von .NET und von Java, denn beides sind integrierte Frameworks, die schon eine Menge an Funktionalität mitbringen, sehr leicht erweitert werden können und sich nahtlos in bestehende Strukturen einfügen lassen. Wer das nicht sehen will oder kann, dem fehlt tatsächlich die Kenntnis, der lebt nur in seiner eigenen Welt und der diskutiert am Thema vorbei. Und nur, weil ein Framework plötzlich nicht mehr der neueste Hype ist, muss es nicht zwingend schlechter sein oder gar an Bedeutung verlieren – auch wenn sich das der eine oder andere Kollege wünscht.

Don’t bash the community!

Ein Fehler wird übrigens gerne gemacht, wenn keine anderen Argumente mehr greifen: Da wird mal eben schnell die Community der Konkurrenz schlecht dargestellt. Leider, leider zeigt das, dass der Betreffene auf sehr wackeligem Grund argumentiert: Eine Community als träge zu bezeichnen (etwa im Falle von AJAX, was im Übrigen nur ein Hype ist), ist erstens sachlich falsch (hier, hier, hier, hier und hier) und wirkt zweitens einfach nicht besonders gut – oder wollen wir etwa von der anderen Seite beschimpft werden?

Weiterempfehlen:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • DotNetKicks
  • MySpace
  • PDF
  • RSS
  • Technorati
  • Twitter

3 Comments so far

  1. Damir on Dezember 16th, 2005

    Was du alles aus einem Posting zum Thema Hype herausgelesen, interpretiert und konstruiert hast.

    In neunzigen Jahren waren die Konzepte so innovativ und revolutionär, dass der Umstieg auf Java unausweichlich war und kaum alternativen vorhanden waren. Heute kann man auch solche Aussagen treffen:

    http://public.yahoo.com/~radwin/talks/yahoo-phpcon2002.htm

    Meine Aussage, dass die Alternativen inzwischen als ebenbürtige Angebote dem Marktführer das Wasser abgraben wurde so ausgelegt – ich hätte behauptet Java ist tot, J2EE ist schlecht, die Standards sind irrelevant usw. Es ist bemerkenswert, wie du die Chance ergriffen hast über was anderes zu sprechen. Nun, es sei so …

    Die Fähigkeit unabhängiger, heterogener Systeme, möglichst nahtlos zusammen zu arbeiten ist noch lange keine Integration. Wenn beide System gemeinsame Kommunikation bewerkstelligen, ohne gesondert Absprachen treffen zu müssen, heisst es noch lange nicht, dass diese Systeme integriert sind oder eine nahtlose Integration notwendig ist. Ich finde es interessant, dass du besonders die Integration “in den Himmel” lobst. Wie immer, sicherlich meintest du ganz was anderes damit – in sich integriert, mit darunterliegenden Basis integriert oder einfach mal integriert.

    Die Technologie spielt nach wie vor eine wichtige Rolle und wird es in der Zukunft auch tun, denn diese ermöglicht die Implementierung verschiedener Standards und fordert die Innovation und etablierung neuer. XML ist nicht seit gestern auf dem Markt, im neuen Kontext gesetzt verliert oder gewinnt diese an Bedeutung. Die aktuellen Standards sind auch eine evolutionäre Entwicklung, wobei der Schwerpunkt eindeutig an einer Schwächung der Wichtigkeit einzelner Technologie liegt – nix neues, dafür sind die Standards auch da.

    Wenn aber ein Thema an Präsenz verliert, ist in der Regel auch eine Schwächung der Marktposition zu erwarten und man steuert dagegen. Entweder mit dem Setzen von Akzenten oder mit dem Nachbau.

    Nun, dass die Integration eines ERP-System bei Millionen von Transaktionen nicht in der Regel bevorzugt mit PHP durchgeführt wird, erscheint logisch. Dass PHP aber für keine Unternehmensanwendungen eingesetzt wird, keine leistungsfähige E-Commerce Anwendungen mit PHP gebaut werden, nicht objekt-orientiert programmiert wird und so weiter, ist eine interessante Behauptung. Oder liegt es einfach daran, dass du PHP nicht in deinem Schulungsangebot hast.

    Was meine ich als träge? Noch vor einigen Jahren hat die Java-Community die Akzente gesetzt, die anderen haben es nur nachgemacht. Es war nicht notwendig, auf den Hype zu antworten. Im Bereich der .NET Technologie wurden diverse Konzepte aus dieser Welt übernommen. Die Annahme, dass andere Community besser und agiler ist, weil eine als träge bezeichnet wird, ist eine reine Annahme, die ich erstmal als gewollt und falsch bezeichne. Die Trägheit sagt erstmal nichts aus über die Qualität, denn die Europäer sind in der Regel träger als die Amerikaner, dafür halten die Lösungen auch entsprechend länger.

    Daher auch meine Vermutung – vielleicht ist die Java-Community klüger und wartet ab, dass der Hype abschwächt.

    Die .NET Community ist auch träge, denn noch heute sind wenige Applikationen entstanden, die so innovativ sind, dass im Java-Umfeld eifrig nachgebaut werden. Bis auf wenigen Ausnahmen, werden die Vorteile der Plattform dazu genutzt, die Konzepte zu adaptieren, gar zu verbessern. Manchmal klappt es, manchmal nicht. Ich kann mich aber nicht erinnern irgendwo diese Community auf Kosten der anderen in den Himmel gelobt zu haben, oder doch? Deine Beispiele zeigen auch, dass es ausreichend viele Mitglieder der Java-Community gibt, die dem aktuellen Hype nacheifern. Und genau das war mein Punkt.

    Man könnte ziemlich lange diskutieren. Aber dir geht es ja auch nicht darum. Du verfolgst einen anderen Ziel.

    Du hast deinen Punkt gemacht und ich habe etwas über dich gelernt. :-)

  2. Karsten Samaschke on Dezember 16th, 2005

    Ich denke, da missverstehst Du mich, Damir: Ausgangspunkt war ein in meinen Augen ungerechtfertigtes Java-Bashing (nämlich Dein zugespitztes Posting), wie es gerade aus der Community immer wieder kommt. Darauf habe ich reagiert. Ich habe das Posting dann nur als Ausgangspunkt für weitere Überlegungen genommen – weder habe ich konstruiert, noch herausgelesen, noch sonstwas. Ich habe die dort geäußerten Meinungen lediglich überhöht und provokant interpretiert.

    Meine ganz private Meinung ist, dass der Markt groß genug für .NET und Java ist. Ich habe Dir nichts unterstellt, sondern Deine provokante Aussage nur als Ausgangspunkt weiterer Überlegungen genommen. Wenn Du im Übrigen behauptest, Java und die J2EE seien “nur schwerfällig, umständlich und teuer am Ende”, dann lehnst Du dich verdammt weit aus dem Fenster – und musst damit leben, dass jemand Deine Aussagen noch mehr zuspitzt. Besonders dann, wenn Du keinerlei Belege bringst. Also äußere ich meine Aussage nochmal: Damir, an der Stelle liegst Du meilenweit daneben. Die Technologien, Techniken und Systeme müssen im Java-Umfeld nicht mehr kosten als im .NET-Umfeld – im Gegenteil, sind sie zumindest in der Anschaffung häufiger mal preiswerter.

    Ich will jetzt hier die Diskussion nicht weiter ins Persönliche ziehen – das scheinst Du zwar bezweckt zu haben (“oder liegt es einfach daran, dass du PHP nicht in deinem Schulungskatalog hast”), aber sei es drum (wobei mir schleierhaft ist, was Du damit bezwecken möchtest). Zum Thema PHP sei gesagt, dass ich es kenne und in verschiedenen Projekten auch zur Anwendung bringe (Stichwort: CMS-Systeme…). Was mir aber fehlt sind Integrationsstrategien – und auf die bezog ich mich die ganze Zeit. War schwer herauszulesen, gebe ich gerne zu.

    Zum Thema “träge”: Dieses Wort trägt eine Wertung in sich. Wenn Du es so geschrieben hättest, wie Du es jetzt hier dargestellt hast, dann hätte sich niemand daran gestoßen. Wenn Du aber das Wort so verwendest und dann noch darauf verzichtest, weitere Ausführungen zu machen, dann musst Du nicht wundern, wenn jemand Deine Äußerungen so interpretiert. Und wenn Du also eine Community abwertest (“träge”), dann wertest Du fast zwangsläufig andere Communities auf (“nicht träge”). Da Du aber auch das nicht klargestellt hast, bleibt nur eine Schlussfolgerung: Da betreibt jemand Community-Bashing. Wenn es nicht so gemeint war, dann um so besser: Dann musst Du dir meine Äußerung zu dem Thema nicht auf die Fahne heften, dann bist Du hiermit ganz offiziell und öffentlich davon ausgenommen.

    Ach, eines noch: Eigentlich ist es mir herzlich egal, was Du glaubst, über mich gelernt zu haben. Ich lege nur auf eines Wert: Das andere Ansätze auch anerkannt und nicht per se herabgewürdigt werden. Ich kann es nicht mehr hören, wenn sich einer aus der .NET-Community abschätzig über Java äußert und dabei ganz offensichtlich nur mit Halbwissen glänzt. Das nervt! Genau so nervt es übrigens auch, wenn sich jemand aus der Java-Welt negativ oder abschätzig über .NET äußert und dort nichts dahinter steht. Ich lege sehr großen Wert darauf, zumindest hinsichtlich dieser beiden Technologien einen klaren Kopf zu behalten und mir selbst ein fundiertes Urteil zu bilden. Das muss jemand, der keine Schulungen gibt und sein rein .NET-basierendes Produkt vertreiben möchte, ganz sicher nicht machen. Er sollte aber auch erkennen, wo seine Grenzen in einer derartigen Diskussion (und nur darauf beziehe ich mich!) sind: Entweder diskutiert er auf der Basis von veralteten Informationen (Stand vor zig Jahren) oder er beschäftigt sich mal genauso intensiv mit der anderen Technologie, bevor er sie beurteilt. Das Prinzip nennt sich “über den Tellerrand schauen” und hat sich durchaus bewährt.

    Damir, wenn Du diskutieren möchtest, dann können wir das sehr gerne ausführlich und öffentlich machen. Wenn wir also über dein ursprüngliches Posting diskutieren wollen, dann würde ich mich freuen, wenn Du das, was Du hier jetzt in Form von Kommentaren geschrieben hast, mal als Posting in Deinem Blog wiederholst – es wird schließlich deutlich häufiger gelesen, als meins. Wir können uns dann sehr gerne auf einer komplett sachlichen Ebene unterhalten. Nur als Startpunkt für eine sachliche Diskussion eignete sich Dein ursprüngliches Posting eben nicht – und sollte es wahrscheinlich auch nicht sein. Schliesslich wolltest Du damit Deinen Punkt machen.

  3. Damir on Dezember 16th, 2005

    > Ich habe die dort geäußerten Meinungen lediglich überhöht und provokant interpretiert.
    > Wir können uns dann sehr gerne auf einer komplett sachlichen Ebene unterhalten.

    Obwohl du meintest, ich würde ins Persönliche übergehen, war ich der Ansicht, dass du zuerst damit angefangen hast. Ich habe probiert in dem Posting, aber irgendwie klappte es nicht aus ganzen Zweideutigkeiten deiner Postings das Sachliche herauszulesen. Es war zumindest für mich etwas schwerig. Sei es drum … Falls ich zu weit gegangen bin, entschuldige mich in aller Form.

    Ich beende die Art der Diskussion jetzt und gehe in das Sachliche über.

    Eines vorweg zum Thema PHP – ich bin kein Fan von PHP und würde es sehr ungern verwenden, den ich bin von der Notwendigkeit und Vorteilen einer professionellen Umgebung bzw. Vorgehensweise überzeugt. Dennoch tut man PHP wirklich unrecht mit der Behauptung, es ist nur für Gästebücher und Foren geeignet. Sogar die Konzerne wie Volkswagen nutzen die Technologie intern und dafür gibt es gute Gründe. Es ist oft nicht einfach gegen PHP anzukämpfen, insbesondere da es ganz gute und performante Lösungen gibt und das respektiere ich.

    > “nur schwerfällig, umständlich und teuer am Ende”

    Ja, hab ich missverständlich gesagt, gebe ich zu. Es ist ein Vergleich von Java und der “lightweight” Welt gewesen, wie der nächste Satz hätte darstellen sollen. Und auch nicht meine Aussage, sondern mein Eindruck von den Aussagen. Dies trifft auf Java genauso wie auf .NET zu, es ist viel Wissen und entsprechend viel Aufwand notwendig um kleinere Sachen zu bewerkstelligen. Eine der großen Schwächen von ASP.NET in der bisherigen Versionen, ein bischen besser ist es gerade geworden.

    Was preiswert betrifft. Es ist durchaus möglich eine preiswerte Lösung auf LAM + TomCat zu bauen, dabei JBoss und Eclipse zu nehmen. Sowohl WebSphere als auch Weblogic sind aber Lösungen, die weit über “preiswert” hinausgehen und in sich propriäter sind – eine Portabilität ist oft mit Migration zu vergleichen. Bei Microsoft muß man es nicht unbedingt begründen – man “kauft” sich weniger Ärger mit einer Investition, die aber notwendig ist.

    > Bashing – Wenn es nicht so gemeint war, dann um so besser…

    Nein, war es nicht. Ich habe einen großen Respekt vor der Community und tue seit vielen Jahren viel, um diese auch zu unterstützen. Und das nicht nur im .NET Umfeld, sondern eher in einem technologieneutralem.

    > Das Prinzip nennt sich “über den Tellerrand schauen” und hat sich durchaus bewährt.

    Absolut nichts dagegen, bin sogar sehr einverstanden. Daher habe ich gerade ein Projekt mit BEA Portal basierend auf Weblogic begleitet (www.iasahome.org) und mich sehr dafür stark gemacht dies nicht mit .NET umzusetzen (auch nicht mit meiner Lösung). Die Entwicklung habe ich mit grossem Interesse verfolgt und mich mit den Konzepten auseinandergesetzt. Also, ich sollte darüber berichten …

    > Nur als Startpunkt für eine sachliche Diskussion eignete sich Dein ursprüngliches Posting eben nicht …

    Nein, gebe ich auch wieder Recht. Ich erwartete aber auch nicht eine solch bitterböse Antwort zu erhalten. Aber, es wurde eine interessante Diskussion daraus, die sicher einige Ansätze mit sich bringt.

    Wir haben beide unsere Punkte gemacht und ich bin sehr froh, mich in diesem Punkt offensichtlich geirrt zu haben. Kein Wissen ist endgültig, man lernt nicht daraus.

    Eine erste Auseinandersetzung in der deutschen Blogosphere seit vielen Monaten … ;-)