Java oder C++ für Server?



  • freak-show schrieb:

    Wahrscheinlich um nen MMPORG Server

    Wenn in dem Fall die Entscheidung des Threaderstellers auf Java fällt, sollte er sich mal Project Darkstar angucken. 😋



  • C++ ist schneller und flexibler.



  • Kenner des C++ schrieb:

    C++ ist schneller und flexibler.

    darum geht's doch gar nicht.
    🙂



  • Also anscheinend ist Java besser, bei C++ hab ich bisher keine gescheiten Argumente gehört.^^

    Und ne soll kein MMOPRG-Server werden xD

    Sollen verschiedene Server werden, beispielsweise sowas wie IRC oder mal ganz eigene Protokolle 😉

    Und naja Java compilier ich einmal und es läuft auf allen OS's, die etwas bekannter sind, und C++ müsste ich öfters compilieren, schätz ich, außerdem müsste mein Code immer portabel sein.

    Und ne, soll kein Java vs C++ Thread werden, ok, vllt ein bisschen, aber ist halt wichtig für mich.^^



  • Kenner des C++ schrieb:

    C++ ist schneller und flexibler.

    markusrw schrieb:

    Also anscheinend ist Java besser, bei C++ hab ich bisher keine gescheiten Argumente gehört.^^

    Wenn man den Kopf in den Sand steckt, dann hört man keine gescheiten Argumente.



  • Also anscheinend ist Java besser

    rofl



  • Mit Poco und boost bleibst Du auch mit C++ Plattformunabhängig, klar musst dementsprechend neu kompilieren, aber wenn man sich dafür zu schade ist, dann kannst Du auch eine Skriptsprache verwenden.
    Wenn Du bereits Java relativ gut beherrscht, dann verwende es.
    Falls Du aber meinst, Du kannst C++ besser und hast Dich auch mit ein Paar Libs auseinander gesetzt, dann nimm C++.



  • schau dir doch einfach die Examples von boost::asio an, dann siehst du wie einfach sowas in C++ geht:

    http://boost.org/doc/libs/1_35_0/doc/html/boost_asio/examples.html

    Kommt aber auf das eigene Know How an, würde ich sagen. Ich würds wohl in C++ machen, da ich das besser kann, und langsamer als Java ist es auch nicht 😉



  • markusrw schrieb:

    ...
    Sollen verschiedene Server werden, beispielsweise sowas wie IRC oder mal ganz eigene Protokolle ;)...

    Also ich sage mal: Du bist noch weiiiiit davon entfernt, eine sinnvolle Entscheidung bzgl. der Sprache zu treffen.
    Als Erstes muss Deine "Fachlichkeit" (= "Was soll mein Programm können ?") feststehen, dann Deine "Technischen Anforderungen" (von denen "Stabilität" nur ein Kriterium unter vielen anderen (evtl. wichtigeren) und gleichzeitig viel zu unspezifiziert ist) ... und erst DANN kann Dir irgendjemand zu der einen oder anderen Sprache raten.
    Und in diese Entscheidung geht dann nochmal die Frage der Effizienz ein ("Wer kann das in welcher Zeit umsetzen ?" bzw. "Was kann ich an bereits bestehendem KnowHow und/oder Code einbringen ?") - nicht selten sogar in höherer Priorität als die spezifischen Spracheigenschaften.

    Wenn es Dir mehr um Deinen eigenen Lerneffekt geht, würde ich Dir raten: Mach beides ! Nur so lernst Du das Thema und die sprachspezifischen Stärken/Schwächen/Denkweisen/... richtig kennen.

    markusrw schrieb:

    ...Und naja Java compilier ich einmal und es läuft auf allen OS's, ...

    äh - nein !
    1.) Du compilierst Javacode quasi auf jedem System, auf dem Du Deine Software installierst jedes mal wieder neu - und tw. erst zur Laufzeit.
    2.) Es gibt für deutlich mehr OSe C++-Compiler als Java-runtimes. Von plattformspezifischen APIs ganz zu schweigen ... (und glaub nicht, dass der Javastandard die Ansteuerung jedes Toasters abdeckt 😉 )

    (Was nicht bedeuten soll, dass Java für (D)eine Anwendung nicht doch die geeignetere Sprache sein kann, aber die "Deployment Compilezeit" ist ebensowenig stichhaltiges Argument wie die "OS-Verbreitung")

    Gruß,

    Simon2.



  • Naja, man wechselt ja auch jeden Monat die Serverplattform, gell? 😃 Oder warum sollte das Argument der Neukompilierung gegen C++ sprechen? Aus meinem Umfeld weiß ich, das die Server eher Jahre lang laufen, und es ein großer Akt ist, wenn man nur mal ne schnellere Maschine aufsetzen will. Selbst bei JavaEE! Also, für mich ist das kein Gegenargument. Außer ich habe ein Hobby und die Server können ruhig mal alle paar Monate ausfallen und ich suche mir trila la mal nen neue Server-OS raus, weil es gerade in Mode ist. Aber dann ist natürllich sowas wie Java perfekt. 😃

    Wenn es ernsthaft wird, muß eine Plattform Jahre halten und konstanz zeigen. Und dann kompilier ich nur neue Versionen meiner Server-Software, aber ganz Gewiss nicht weil ich mal wieder die Plattform wechsel.



  • Achja, ich empfehle Java. Dann kannst Du dich z.B. unter www.javacore.de weiter informieren. Und wir können uns wieder echten C++-Fragen zu wenden. 🙂



  • tntnet schrieb:

    Kenner des C++ schrieb:

    C++ ist schneller und flexibler.

    markusrw schrieb:

    Also anscheinend ist Java besser, bei C++ hab ich bisher keine gescheiten Argumente gehört.^^

    Wenn man den Kopf in den Sand steckt, dann hört man keine gescheiten Argumente.

    das soll ein argument sein? ich würde sagen, das ist eine 'aus der luft gegriffene' behauptung.
    🙂



  • Artchi hast eigentlcih ganz recht 😃
    Ich würde mal sagen ich bin in C++ ganz klar besser, weil ich mich mit Java noch net wirklich ganz auseinander gesetzt habe ;P

    Naja closed mal den Thread hier, ich schätze, dass wenn ich meine eigenen Server laufen lasse, ich schon sehen werde, ob ich Java oder C++ nehme. Haben ja beide ihre Vorteile und am Ende liegt es ja wirklich nur am Coder, ob die Software gut läuft oder nicht! 🙂



  • Kann Java schon 64 Bit, so dass man mal 5 oder 6 GB in den Speicher laden kann?



  • FachmannFürGroßeDinger schrieb:

    Kann Java schon 64 Bit, so dass man mal 5 oder 6 GB in den Speicher laden kann?

    gibt's da 'nen zusammenhang?
    🙂



  • FachmannFürGroßeDinger schrieb:

    Kann Java schon 64 Bit, so dass man mal 5 oder 6 GB in den Speicher laden kann?

    natürlich.



  • long l = 99999999999999L;
    boolean[] b = new boolean[l];
    

    Compiliert bei mir aber nicht.



  • FachmannFürGroßeDinger schrieb:

    long l = 99999999999999L;
    boolean[] b = new boolean[l];
    

    Compiliert bei mir aber nicht.

    Da wird sich auch nie was dran ändern. Du musst leider mehrere Arrays oder ähnliche Datenstrukturen nutzen. Es gibt inzwischen 64-bit-JVMs, die mehr als die klassischen ~2GB handhaben können. Das ändert aber weder etwas an der Größe der Datentypen, noch an der Signatur von Methoden, Konstruktoren usw..



  • Und wer sagt das man java auf einer x86 architektur einsetzen muss. Sun war damals HW technisch schon weiter was das Thema addressierbarer speicherbereich betrifft.



  • Termite schrieb:

    Und wer sagt das man java auf einer x86 architektur einsetzen muss. Sun war damals HW technisch schon weiter was das Thema addressierbarer speicherbereich betrifft.

    Sag ich doch: Bevor die technischen Rahmenbedingungen/Anforderungen nicht geklärt sind, hat die Diskussion über die Sprache keinen Sinn.
    ... oder wie sinnvoll ist die Aussage, dass Java 6 GB adressieren kann, wenn man eine 64kb-Chipkarte programmieren muss ? 😉

    Gruß,

    Simon2.


Anmelden zum Antworten