Java oder C++

Von: , Frage gestellt am So, 8. Okt 2000

Hallo zusammen,

ich möchte einen Chatserver programmieren.
Jetzt hab ich mal ein bischen wild in Java rumgehackt, aber bin schnell im Chaos gelandet, also verwerfe ich nochmal alles und konzipiere erstmal das Objektdesign etc.

Nun stellt sich mir auch die Frage ob ich das ganze in Java oder C++ machen soll.

Das Ding soll auf Linux laufen nachher.
Java bietet sich halt irgendwie an, weil die TCP-Socket Geschichte recht einfach ist, weil ich es 1 zu 1 auf Windows entwickeln und auf Linux laufen lassen kann, etc.

Allerdings habe ich auch ein paar Bedenken:

- kann ich ein Java-programm vernünftig als Deamon implementieren unter Linux? Prozesss killen würde es vielleicht auch tun, aber ein wenig Aufräumarbeit beim Runterfahren des Systems wäre auch nicht schlecht. kann ich irgendwelche Funktionen auf die Linux-Signals hängen?

- kann man der Garbage Collection wirklich traun? Als Systemdienst wird das Programm ja sozusagen nie beendet, nicht das mein Speicher ständig voll läuft ;)

- kommt Java performancemäßig zumindest annähernd an eine in C++ geschriebene binary ran? Nicht dass mein Java-Programm nur halb soviele Connections verkraftet wie es ein C++ Programm tun würde.

Fragen über Fragen, bitte helft mir die Vorurteile gegenüber Java auszuräumen oder zu bestätigen ;)

Danke
Bruno

5 Antworten zu dieser Frage

  1. Antwort von nach 5 Stunden hilfreich
    Re: Java oder C++

    kann ich
    irgendwelche Funktionen auf die Linux-Signals hängen?
    So ohne weiteres nicht.

    Unter NT gibt es aber einen Wrapper mit dem man ein Java-Programm als Service verwenden kann (der Wrapper spricht mit dem SCM und ruft dann über JNI definierte Java-Methoden für start, stop, pause, etc. auf).

    Vielleicht gibts sowas auch für Unix-Signals, keine Ahnung. - kann man der Garbage Collection wirklich traun? Als
    Systemdienst wird das Programm ja sozusagen nie beendet, nicht
    das mein Speicher ständig voll läuft ;)
    Ja, denke schon. Ich hab Java-Serverprozesse schon stunden und tagelang unter Dauerlast laufen lassen und hatte mit dem Speicher noch nie Probleme. - kommt Java performancemäßig zumindest annähernd an eine in
    C++ geschriebene binary ran?
    Auch ja, Java und C++ sind dank JTI so gut wie gleichwertig, einen Geschwindigkeitsvorsprung kannst du nur mit reinem C erzielen. Fragen über Fragen, bitte helft mir die Vorurteile gegenüber
    Java auszuräumen oder zu bestätigen ;)
    Sind IMHO bis auf das Problem mit Service/Daemon nicht begründbar. Falls das weiterhilft, dass war auch die Meinung eines Consultants der uns in einem Integrationsprojekt unter andrem in eben dieser Frage beraten hat und angesichts des Geldes was der gekostet hat muß er es ja wissen. :)

    Grüße, Robert

    • Antwort von nach 5 Stunden hilfreich
      Re^2: Java oder C++

      Unter NT gibt es aber einen Wrapper mit dem man ein
      Java-Programm als Service verwenden kann (der Wrapper spricht
      mit dem SCM und ruft dann über JNI definierte Java-Methoden
      für start, stop, pause, etc. auf).
      Vielleicht gibts sowas auch für Unix-Signals, keine Ahnung.
      aha, naja wär auch nicht so schlimm denk ich mal... dürfte keine grösseren probleme geben wenn der Prozess einfach abgeschossen wird... Ja, denke schon. Ich hab Java-Serverprozesse schon stunden und
      tagelang unter Dauerlast laufen lassen und hatte mit dem
      Speicher noch nie Probleme.
      sehr gut! - kommt Java performancemäßig zumindest annähernd an eine in
      C++ geschriebene binary ran?
      Auch ja, Java und C++ sind dank JTI so gut wie gleichwertig,
      einen Geschwindigkeitsvorsprung kannst du nur mit reinem C
      erzielen.
      das will ich mir dann doch nicht antun :) Sind IMHO bis auf das Problem mit Service/Daemon nicht
      begründbar. Falls das weiterhilft, dass war auch die Meinung
      eines Consultants der uns in einem Integrationsprojekt unter
      andrem in eben dieser Frage beraten hat und angesichts des
      Geldes was der gekostet hat muß er es ja wissen. :)
      Hehe ;)
      ja, Java ist echt nicht schlecht... die systemnahe Programmierug fehlt mir ein wenig, aber ansonsten kriegt man da echt Lösungen hin da würd ich in C++ Jahre dran verzweifeln :)

      CU Bru

  2. Antwort von nach 23 Stunden hilfreich
    Re: Java oder C++

    Moin, - kann ich ein Java-programm vernünftig als Deamon
    implementieren unter Linux? Prozesss killen würde es
    vielleicht auch tun, aber ein wenig Aufräumarbeit beim
    Runterfahren des Systems wäre auch nicht schlecht.
    Unter Linux läuft zB. Jakarta als Daemon. Fügt sich sauber in den SuSE-Initvorgang ein. - kommt Java performancemäßig zumindest annähernd an eine in
    C++ geschriebene binary ran? Nicht dass mein Java-Programm nur
    halb soviele Connections verkraftet wie es ein C++ Programm
    tun würde.
    Hängt von Deiner Leitung und dem Traffic ab. Ich bin gerade dabei, ein Content Management System unter Java/Linux zu installieren. Fragen über Fragen, bitte helft mir die Vorurteile gegenüber
    Java auszuräumen oder zu bestätigen ;)
    Es dürfte mehr von Dir abhängen als von der Sprache. Wie groß sind Deine Fähigkeiten in OOA&D, Java, C++?

    Thorsten

    • Antwort von nach 23 Stunden hilfreich
      Re^2: Java oder C++

      Unter Linux läuft zB. Jakarta als Daemon. Fügt sich sauber in
      den SuSE-Initvorgang ein.
      mal evtl. genauer anschauen, ich habe mal den Tomcat laufen gehabt der war ähnlich. - kommt Java performancemäßig zumindest annähernd an eine in
      C++ geschriebene binary ran? Nicht dass mein Java-Programm nur
      halb soviele Connections verkraftet wie es ein C++ Programm
      tun würde.
      Hängt von Deiner Leitung und dem Traffic ab. Ich bin gerade
      dabei, ein Content Management System unter Java/Linux zu
      installieren.
      Ich meine jetzt von der Rechenleistung. Leitung / Traffic ist kein problem (ausser ein finanzielles ;) Es dürfte mehr von Dir abhängen als von der Sprache. Wie groß
      sind Deine Fähigkeiten in OOA&D, Java, C++?
      OOA&D? was ist das denn ;) Objekt orientierte analyse und design oder wie...
      also ich bin noch kein Profi, aber ich gebe mein bestes ;) das wird schon. C++ und Java kenn ich mich soweit ganz gut aus, wobei mir java doch eingies einfacher erscheint bzw. ich muss mich nicht um soviel kümmern wie in C++

      Bruno

      • Antwort von nach einem Tag hilfreich
        Re: Java oder C++

        Moin, Unter Linux läuft zB. Jakarta als Daemon. Fügt sich sauber in
        den SuSE-Initvorgang ein.
        mal evtl. genauer anschauen, ich habe mal den Tomcat laufen
        gehabt der war ähnlich.
        Sehr ähnlich sogar. Ich meinte eigentlich Tomcat. Hängt von Deiner Leitung und dem Traffic ab. Ich bin gerade
        dabei, ein Content Management System unter Java/Linux zu
        installieren.
        Ich meine jetzt von der Rechenleistung. Leitung / Traffic ist
        kein problem (ausser ein finanzielles ;)
        Je mehr Traffic Du hast, desto mehr muß der Server arbeiten. Es dürfte mehr von Dir abhängen als von der Sprache. Wie groß
        sind Deine Fähigkeiten in OOA&D, Java, C++?
        OOA&D? was ist das denn ;) Objekt orientierte analyse und
        design oder wie...
        Jepp. Wenn Du da richtig gut bist, spielt die Sprache eine kleinere Rolle. also ich bin noch kein Profi, aber ich gebe mein bestes ;) das
        wird schon. C++ und Java kenn ich mich soweit ganz gut aus,
        wobei mir java doch eingies einfacher erscheint bzw. ich muss
        mich nicht um soviel kümmern wie in C++
        Sehe ich ähnlich, darum würde ich es auch in Java schreiben.

        Thorsten

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!