"Die Zukunft von .NET" und ein paar Fragen!



  • ich weiss das es verschiedenste java implementierungen gibt
    ich bin aktiver java entwickler auf allen platformen (ME, SE und EE)
    aber die java specification ist (obwohl oeffentlich zugaenglich) eine technologie die sun microsystems gehoert.
    ich hatte einmal einen interessanten artikel der das beeindruckend dargestellt hat, aber der ist (wie vieles andere) beim letzten rechneraufsetzen draufgegangen

    auch MS hat einen community process, nur laeuft dieser voellig anders und es ist schwerer zu partizipieren. Vor allem gold und silver certified ms partner machen dort sehr stark mit.

    Sollte das jetzt ne Steilvorlage sein, damit ich diesen Link mal wieder poste? Ich dachte eigentlich, dass du weißt, was man von diesem Benchmark halten sollte. ...und natürlich wurde der Benchmark von MS finanziert.

    Es wundert mich eigentlich, dass noch immer auf diesen Benchmark Bezug genommen wird.

    BTW: Hier ist noch ein Link. Da wird jetzt behauptet, dass der .NET Petstore, der ja von MS geschrieben wurde, ein Musterbeispiel für Antipatterns ist. Soll man das jetzt als Grundlage nehmen, um zu behaupten, dass .NET es stark begünstigt, qualitativ schlechte Software zu entwickeln? Schließlich wurde das sogar von MS geschrieben und die Wissen bestimmt, wie man am Besten mit den eigenen Produkten umgeht.

    ja auf den link habe ich gewartet. ich habe mindestens 4 solcher artikel gelesen und auch 3 die das gegenteil behaupten und realistisch darstellen.
    den du ausgesucht hast ist der beste muss ich zugeben.

    das man nicht alles aus dem petshop fuer baare muenze nehmen kann ist sowieso klar, aber aus persoenlicher intensiver erfahrung mit beiden platformen kann ich sagen das .Net sowohl besser performt, als auch einfacher zu entwickeln ist und ich glaube auch wesentlich weniger code benoetigt. Ich kann jetzt keine direkten vergleiche liefern (ich entwickle das gleiche nicht 2 mal), aber alleine die erstellung eines web services geht in .Net um den faktor 5 schneller, selbst wenn man fuer java ein genausogutes tool wie vs studio benutzt (jbuilder x - enterprise)

    ms hat den petshop (IMHO) nicht bezahlt. Sie haben ausgaben uebernommen, aber das steht ja auch eindeutig drinnen. Wo dort steht das sie die mehrere mann-monate arbeit bezahlt haben kann ich mich nicht erinnern.
    ich kann mir auch nicht vorstellen was TMC mit einem negativen bericht fuer J2EE anfangen sollte, das ist ihr kerngeschaeft und das wuerden sie sich doch nicht absichtlich versauen.

    im endeffekt habe ich mir meine meinung so gebildet:
    entweder: einfachere entwicklung, weniger code, mehr performance und bindung an microsoft
    oder: bessere community, leichteres partizipieren und eine groessere unabhaengigkeit (auch wenn java zu sun gehoert) mit J2EE

    gomberl

    PS:
    ich bin kein "religions" anhaenger, es interessiert mich eigentlich nicht ob ich j2ee oder .net entwickle, beides sind spitzen systeme und ermoeglichen gutes und schnelles entwickeln

    hier gilt anzumerken: ich bin selbstaendig, arbeite im J2 bereich hauptsaechlich, beschaeftige mich zur zeit sehr stark mit der integration von J2EE und .Net und auch mit J2ME und .Net Compact Framework



  • Nochmals vielen Dank für die vielen und sehr informations reichen antworten!

    Jetzt hab ich allerdings noch zwei Fragen!

    C# soll ja relativ einfach zum erlernen sein jedenfalls einfacher als c++
    stimmt das?

    Falls es dann in 2 jahren mit dem .net nicht so toll laufen sollte aus welche gründen auch immer,
    wie schaut es dann mit dem umstieg aus von C# zu C++?
    Ich weiss das C# mehr Java ähnelt aber würd mich trotzdem intressieren ob man dann die komplette sprache (C++)neu erlernen muss?



  • C# setzt sich auf jeden fall durch - IMO

    wenn es den doch nicht so kommen sollte hast du noch immer den vorteil sehr schnell auf java umsteigen zu koennen.

    Fuer C++ wird mehr arbeit notwendig sein, aber den OO teil hast du durch C# auf jeden fall abgedeckt. Dennoch C++ ist um ein ganzes eck schwerer zu lernen und zu nutzen.

    Dementsprechend wird auch der C++ marktanteil am PC und Server immer weiter nach unten tendieren.

    Man muss nie eine komplette sprache lernen solange das programmier paradigma gleich / aehnlich ist



  • Elvellon schrieb:

    C# soll ja relativ einfach zum erlernen sein jedenfalls einfacher als c++
    stimmt das?

    Ja. C++ ist _wesentlich_ komplexer als C# oder Java.
    C#und Java sind etwa gleich komplex und gleich schwer zu lernen.

    Falls es dann in 2 jahren mit dem .net nicht so toll laufen sollte aus welche gründen auch immer,
    wie schaut es dann mit dem umstieg aus von C# zu C++?
    Ich weiss das C# mehr Java ähnelt aber würd mich trotzdem intressieren ob man dann die komplette sprache (C++)neu erlernen muss?

    Der Umstieg ist schwer, aber nicht zu schwer.
    Die Syntax ist sehr aehnlich - aber die Idiome und der Stil ist sehr unterschiedlich. Ich wuerde deshalb den Umstieg als nicht zu leicht annehmen.

    Im Prinzip wirst du sehr viel C++ neu lernen muessen (denn bis auf die Syntax sind die sprachen recht unterschiedlich)



  • Shade Of Mine schrieb:

    Elvellon schrieb:

    C# soll ja relativ einfach zum erlernen sein jedenfalls einfacher als c++
    stimmt das?

    Ja. C++ ist _wesentlich_ komplexer als C# oder Java.
    C#und Java sind etwa gleich komplex und gleich schwer zu lernen.

    da muss ich dir wiedersprechen. inwiefern ist c++ komplexer? bis auf generics kann c# auch alles das was c++ kann. C# ist auch komplexer als Java mit z.B. Operator Overloarding etc.



  • kenner6 schrieb:

    da muss ich dir wiedersprechen. inwiefern ist c++

    Geh bitte... soll willst du mich nerven? Funktioniert nicht.

    Wenn C# alles kann was C++ kann (ich gehe jetzt mal von der neuen version mit Generics aus) - implementiere mir mal bitte boost::spirit in C#

    Oder boost::mpl? Oder Expression templates?

    Na gut, wie waere es mit Mehrfachvererbung?
    Oder ueberladung _aller)|_ operatoren...

    ohne jetzt auf den Unterschied VM <-> native Code einzugehen. Da gibts ja auch noch ein paar unterschiede 😉



  • Die Frage ist natürlich, obs mich wirklich weiterbringt, wenn ich operator&& überladen kann, und ob die Mehrfachvererbung im C++ Stil wirklich mächtiger ist als die im C# Stil.
    Ich bezweifle das. Da bringt mich glaub ich ein Garbage Collector weiter, weil das gleich ein ganz anderes Programmieren ist.



  • Wo hier im Zusammenhang mit .NET auch immer die Existenz von C/C++ angesprochen wird,
    wie siehts da mit D aus, wird das überhaupt ne Chance haben unter Windows?



  • SirLant schrieb:

    wie siehts da mit D aus, wird das überhaupt ne Chance haben unter Windows?

    IMHO nein. Es mag zwar sein, dass D durchaus einige Vorteile hat, aber es hebt sich auch nicht sonderlich ab. Deshalb bräuchte es schon eine starke "Lobby" in Form einer Firma, einer Organisation oder ähnlichem, um nicht nahezu vollständig ignoriert zu werden. Diese Lobby hat D aber nicht.

    Allerdings scheint es tatsächlich einige wenige Jobs zu geben, bei denen man D braucht. www.jobstats.co.uk listet D hin und wieder. Siehe da: http://www.jobstats.co.uk/jobstats.d/SKILL/FullList.D.html



  • Jo. Genau diese Lobby ist auch der Grund, warum man C# wirklich nicht unterschätzen sollte. Ich habe mich mal ein wenig damit befasst, und IMHO gibt es für die Windows-Programmierung zur Zeit nichts besseres.
    Und solange Windows dermaßen führend ist, ist der Aufstieg von C# garantiert.



  • Optimizer schrieb:

    Und solange Windows dermaßen führend ist

    <Ideologie-Modus>
    ...und DU kannst mithelfen, dass sich dieser miserable Zustand auf Dauer ändert. Als Programmierer kannst DU entscheiden, für welche Plattformen du entwickelst. DU kannst auch entscheiden, ob DU MS in vorauseilendem Gehorsam folgst oder ob DU möglichst unabhängig bleiben möchtest und dich erst dann in Richtung MS bewegst, wenn es der Markt erfordert. Wie soll ein Endanwender einem alternativen System eine Chance geben, wenn es noch nichteinmal der Entwickler macht? 🤡 🤡 🤡
    </Ideologie-Modus>



  • Ich programmiere bevorzugt in Java, wenn es aber um Spiele geht, bleibt mir sowieso nur Windows, weil ich praktisch kein OpenGL noch sonst irgendwelche plattformübergreifenden Libs kann.
    Ich bin dann auch auf DX angewiesen, von daher -> C++ oder C#.



  • Optimizer schrieb:

    weil ich praktisch kein OpenGL noch sonst irgendwelche plattformübergreifenden Libs kann.

    Ist das nicht Grund genug, sich damit mal ausgiebig zu beschäftigen? 🙂



  • Optimizer schrieb:

    Ich bin dann auch auf DX angewiesen, von daher -> C++ oder C#.

    BTW: Es gibt für Windows eine Java3D-Version, die auf DX aufbaut.



  • Jo das weiss ich, aber Java3D ist mir zu high-level. Managed DirectX rul0rt halt. Gegen das Imperium haben wir keine Chance. 😉



  • Gregor_ schrieb:

    Optimizer schrieb:

    Und solange Windows dermaßen führend ist

    <Ideologie-Modus>
    ...und DU kannst mithelfen, dass sich dieser miserable Zustand auf Dauer ändert. Als Programmierer kannst DU entscheiden, für welche Plattformen du entwickelst. DU kannst auch entscheiden, ob DU MS in vorauseilendem Gehorsam folgst oder ob DU möglichst unabhängig bleiben möchtest und dich erst dann in Richtung MS bewegst, wenn es der Markt erfordert. Wie soll ein Endanwender einem alternativen System eine Chance geben, wenn es noch nichteinmal der Entwickler macht? 🤡 🤡 🤡
    </Ideologie-Modus>

    Uni-Gerede.

    Ein Entwickler muß dort sein, wo die Kunden und der Markt sind. Und nur in begrenztem Rahmen kann er wirklich die Plattformen auswählen, vielleicht mal beratend einwirken. Aber wenn ein Entwickler in einer reinen Win-Umgebung unbedingt eine Applikation auf Linux reinbringen will, zeugt das auch nicht gerade von Geschick.

    Ein guter Entwickler kann in dieser Woche problemlos eine Windows-Applikation mit C# entwickeln und in der nächsten Woche eine Linux-Applikation mit C++ und QT. Ganz ohne ideologische Klimmzüge. Sowas kann man einfach erwarten.



  • Marc++us schrieb:

    Ein Entwickler muß dort sein, wo die Kunden und der Markt sind. Und nur in begrenztem Rahmen kann er wirklich die Plattformen auswählen, vielleicht mal beratend einwirken. Aber wenn ein Entwickler in einer reinen Win-Umgebung unbedingt eine Applikation auf Linux reinbringen will, zeugt das auch nicht gerade von Geschick.

    Ein guter Entwickler kann in dieser Woche problemlos eine Windows-Applikation mit C# entwickeln und in der nächsten Woche eine Linux-Applikation mit C++ und QT. Ganz ohne ideologische Klimmzüge. Sowas kann man einfach erwarten.

    IMHO ist eine Entscheidung für Qt oder ähnliches keine Entscheidung gegen Windows. Es ist eine Entscheidung für Vielfalt und Flexibilität. Wer plattformübergreifend entwickelt fesselt seinen Kunden nicht an eine bestimmte Plattform oder einen bestimmten Hersteller. Wer hingegen auf Windows-Only setzt, nimmt dem Kunden jegliche Wahlmöglichkeit und Flexibilität. ...und das alles nur für eine etwas bessere Integration? ...oder wofür überhaupt?

    Abgesehen davon sind die Kunden und der Markt noch nicht bei .NET. Das wird, nachdem was hier einige sagen, ja erst mit Longhorn ganz groß. ...und selbst Longhorn muss sich erstmal am Markt etablieren. IMHO kann man somit frühestens in 4 Jahren oder so davon ausgehen, dass wirklich eine große Mehrheit des Marktes ein .NET-Framework nutzt. IMHO ist es für einen Entwickler deshalb viel zu früh, sich ausgiebig mit .NET zu beschäftigen, schließlich sollte der Entwickler dort sein, wo die Kunden sind und der Markt ist. ...und das ist momentan nicht .NET. 🤡 🤡 🤡



  • ich bin da voll bei marcus

    die entscheidung liegt aber nicht nur was du entwickelst, sondern auch welche systeme vorhanden sind. auch die tools die zur verfuegung stehen und die administration will bedacht sein. Hinzu kommt dann noch das User Interface und die User Akzeptanz.
    Und noch einige tausende anderer parameter.

    Nur eine etwas bessere Integration: also das NUR wuerde ich weglassen.
    integration ist auch ein bedeutsamer punkt. auch geschwindigkeit ist normalerweise besser.

    Ja aber wenn man jetzt nicht schon einsteigt ist man in 4 jahren hinten nach.
    Du kennst doch selber Java und die ganzen teilbereiche.
    <uebertreib> Wie ich angefangen habe wars noch Java alone - jetzt gibts 3 platformen, tausende services und hunderte technologien, dutzende community process projekte, usw</uebertreib>

    Wenn ich jetzt schon .Net nutze (falls die anwendung dies benoetigt) ist es sicher besser als es mit C++ zu programmieren, weil ja die entwicklungs effizienz wesentlich hoeher ist. Das ist ja der vorteil der "neuen" sprachen gegenueber den "alten". die developer tool vendors versuchen ja die neuen tools immer effektiver in der anwendung zu machen. Weil zeit ist geld, speziell wo IT Fachkräfte nicht gerade die billigsten Arbeitnehmer sind.

    ich glaube: der programmierer muss mit den kentnissen genau dort sein wo der markt ist, der entwickler jedoch muss bereits dort sein wo er sich hinentwickeln wird (und der freiberufler dort wo das geld ist 🙂 )



  • Gregor_ schrieb:

    Wer plattformübergreifend entwickelt fesselt seinen Kunden nicht an eine bestimmte Plattform oder einen bestimmten Hersteller. Wer hingegen auf Windows-Only setzt, nimmt dem Kunden jegliche Wahlmöglichkeit und Flexibilität. ...und das alles nur für eine etwas bessere Integration? ...oder wofür überhaupt?

    vielleicht weil ich _jetzt_ die Anwendung auf Windows brauche und nicht in ein paar Monaten Plattformunabhaengig.

    Denn .NET hat einige Staerken, und warum sollte ich dann eine Anwendung in Qt oder aehnliches schreiben und dafuer mehr zeit investieren als noetig? Nur weil ich _vielleicht_ spaeter einmal die Anwendung portieren will?

    Das kann ich nicht nachvollziehen...



  • Shade Of Mine schrieb:

    vielleicht weil ich _jetzt_ die Anwendung auf Windows brauche und nicht in ein paar Monaten Plattformunabhaengig.

    Denn .NET hat einige Staerken, und warum sollte ich dann eine Anwendung in Qt oder aehnliches schreiben und dafuer mehr zeit investieren als noetig? Nur weil ich _vielleicht_ spaeter einmal die Anwendung portieren will?

    Das kann ich nicht nachvollziehen...

    Ja, und warum solltest du eine Dokumentation erstellen? Nur, weil du den Code möglicherweise irgendwann mal warten willst? Ohne Dokumentation ist man schließlich auch viel schneller fertig. Nach uns die Sintflut! 🙂 🤡 🤡


Anmelden zum Antworten