C# oder Java lernen



  • Ganz einfach: Willst Du einfache GUI Client Anwendungen für Windows erstellen, dann nimm C#.

    Willst Du Plattformunabhängig sein(wird zunehmend wichtiger bei Lizenzanschaffungen), dann Java oder C++.

    Willst Du später serverseitig Entwickeln nimm Java. Für Echtzeitsysteme C++.

    @J2EE vs C#:
    Java hat im Enterprise Bereich die Nase sowas von weit vorn, dass dort C# kein ersthafter Konkurrent sein wird.

    Dafür gibt es verschiedene Gründe, die wichtigsten aber:
    UNIX-Systeme sind viel verbreiteter und Linux boomt zur Zeit auf dem Servernarkt richtig.

    Führende Firmen im Bereich verteilter Systeme(IBM, BEA) setzen auch seit einigen Jahren auf Java. Diese Firmen sind seit den 70'gern im Geschäft. Das bringt vertrauen für die Kunden.

    Nahezu alle Großen der Branche außer MS, unterstützen Java und fördern diese Sprache(zusätzlich noch die Uni's weltweit). Das bringt ebenfalls großes vertrauen für die Kunden.

    guestABC schrieb:

    Muss es unbedingt plattformunmhängig sein und es ist dir egal ob Java hier nur die Schnittmenge aller spezifischen Betriebssystem Features zur verfügung stellt, dann ist wohl eher Java dein Ding.

    Wofür braucht man bei normalen Anwendungen OS-spezifische Features, die nicht in Java integriert sind? Wenn man diese benötigt sollte man in der regel sowieso nicht auf Java oder C# zurück greifen. 😉

    @noodles: Erst den link lesen, dann darüber urteilen. 😉 Das was dort steht stimmt größtenteils.



  • Bernd34 schrieb:

    Wofür braucht man bei normalen Anwendungen OS-spezifische Features, die nicht in Java integriert sind? Wenn man diese benötigt sollte man in der regel sowieso nicht auf Java oder C# zurück greifen. 😉

    z.B. DirectX, WMI, Komponetenmodelle, ... Die Gegenstücke die Java hier anbietet sind eher bescheidem. Auch im vergleich zu WinForms, ist Swing und Co. nicht sehr überzeugend.
    Übrigens wer sagt denn das man mit C# keine vernünftgen serverseitigen Anwendungen schreiben kann. Da bist du ziemlich schlecht informiert.



  • sdfggfg schrieb:

    z.B. DirectX, WMI, Komponetenmodelle, ... Die Gegenstücke die Java hier anbietet sind eher bescheidem. Auch im vergleich zu WinForms, ist Swing und Co. nicht sehr überzeugend.

    Könntest du das ein bischen erläutern? So ganz ohne Begründung kann man mit so einer Aussage ziemlich wenig anfangen. Die ist dann auch nicht sehr überzeugend. Aus meiner Sicht ist Swing sehr gut und frag mal Optimizer zum Klassendesign der WinForms. 🙂



  • Also MS schreibt selber in der MSDN das WindowsForms noch sehr zurück hinkt was die Mächtigkeit angeht. Das schreiben sie immer in den C++/CLI-Artikeln, wo sie darauf hinweisen, das MFC ganz einfach das zur Zeit noch mächtigste GUI-Framework (von MS) ist und WinForms noch viel zu lernen hat und noch nicht alle MFC-Features anbietet.

    D.h. implizit für mich, das WinForms einfach nicht an SWING ranreichen kann. Und ich entwickel täglich in Java und kann nur sagen: Swing gefällt mir vom Design, Konzept und Mächtigkeit sehr gut! Die Performance ist eine andere Story. 😉



  • gfgsdfg schrieb:

    Könntest du das ein bischen erläutern? So ganz ohne Begründung kann man mit so einer Aussage ziemlich wenig anfangen. Die ist dann auch nicht sehr überzeugend. Aus meiner Sicht ist Swing sehr gut und frag mal Optimizer zum Klassendesign der WinForms. 🙂

    Was soll man da begründen/erläutern? Du weißt schon was WMI, DirectX und Co. ist? Dazu gibt es keine wirkliche Alternative in Java. Kennst du eine?
    Was ist am Klassen Design von WinForms schlecht? Bzw. was ist am Klassendesing von Swing besser?
    Die Vorteile von WindowsForms sind vorallem die Komponentenorientiertheit, der reiche Fundus an GUI Elementen und die sehr gute Performance. (speziell im 2.0 Framework). In all diesen Bereichen bietet Swing leider nicht so viel.



  • asdfg schrieb:

    Du weißt schon was WMI, DirectX und Co. ist? Dazu gibt es keine wirkliche Alternative in Java. Kennst du eine?

    micosoft-eigenes zeug hat in java nix verloren. dafür gibts das: http://java.sun.com/j2se/1.5.0/docs/guide/jni/



  • net schrieb:

    asdfg schrieb:

    Du weißt schon was WMI, DirectX und Co. ist? Dazu gibt es keine wirkliche Alternative in Java. Kennst du eine?

    micosoft-eigenes zeug hat in java nix verloren. dafür gibts das: http://java.sun.com/j2se/1.5.0/docs/guide/jni/

    Jup, und genau weil es solche Dinge nicht unterstützt, ist Java für mich kaum von Interesse.
    Übrigens: Was haben die oben genannten Sachen mit JNI zu tun. Ich will keine umständlichen Wrappenkonstrukte mit JNI für externe C-Funktionen schreiben.
    Überdies bietet .NET (mit Marschaling/Interop und dem DllImportAttribut) einen wesentlich kompfortableren und leistungsfähigeren Mechanismus an, um externen nativen Code zu nutzen. 😃



  • sdfggfg schrieb:

    Bernd34 schrieb:

    Wofür braucht man bei normalen Anwendungen OS-spezifische Features, die nicht in Java integriert sind? Wenn man diese benötigt sollte man in der regel sowieso nicht auf Java oder C# zurück greifen. 😉

    z.B. DirectX, WMI, Komponetenmodelle, ... Die Gegenstücke die Java hier anbietet sind eher bescheidem. Auch im vergleich zu WinForms, ist Swing und Co. nicht sehr überzeugend.

    Es ging um OS-spezifische Features! DirectX ist ein Framnework für Spiele/Multimedia! 😉 Wie oft braucht das der durchschnittliche Softwareentwickler? Ich noch nie!

    Was ist an WinForms besser als an Swing. Ach ja, jetzt kommt wieder das Performance geflame. 👎

    Auch wenn manche es immer noch nicht glauben - die Zukunft ist Plattformunabhängigkeit. Allein schon die ganzen Kommunen die gewechselt haben und noch wechseln werden sind ein Grund. Auch große Firmen wie die Bahn setzen immer mehr auf Linux. Das können sehr wichtige mögliche Kunden sein!

    sdfggfg schrieb:

    Übrigens wer sagt denn das man mit C# keine vernünftgen serverseitigen Anwendungen schreiben kann. Da bist du ziemlich schlecht informiert.

    Hab ich gesagt das es damit nicht geht? Dir fehlt wohl ein bischen der Praxisbezug. Die meisten Anwendungen sollen mind. auf UNIX-Systemen laufen. Das tut .NET (noch) nicht! Das schrieb ich auch oben!

    Ein ganz anderer Punkt ist der vorhandene Markt. Wieviele Server von versch. Herstellern unterstützen die .NET Managed Components? Wieviele EJB's? Ungefähr ein Verhältnis von 1:25. Darüber hinaus sind unter den EJB-Container Entwicklern, Firmen die schon seit den 70gern TM(später CTM)'s entwickeln. Diese Firmen genießen einen sehr guten Ruf, weil sie schon 30 Jahre Erfahrung mit verteilten Systemen haben. Darauf vertrauen auch die Auftraggeber.

    Ungefähr 80% der Software die in in Deutschland entwickelt wird sind unternehmensinterne Lösungen. Diese arbeiten sehr oft mit anderen Systemen wie SAP und co. zusammen. Die Hersteller dieser Systeme haben sich aber schon vor einiger Zeit auf J2EE festgelegt. Die werden nicht nocheinmal wechseln.

    95% der Firmen machen das, was Marktführer sagen. Das ist, abgesehen von MS, J2EE.

    Bevor Du wieder meckerst, ich hab wieder nicht geschrieben das .NET schlecht ist.



  • Bernd34 schrieb:

    Diese arbeiten sehr oft mit anderen Systemen wie SAP und co. zusammen. Die Hersteller dieser Systeme haben sich aber schon vor einiger Zeit auf J2EE festgelegt.

    SAP .NET Connector



  • Dieser Thread wurde von Moderator/in AndreasW aus dem Forum C# und .NET in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten