C++ vs. Java - Kleine Fallstudie gefällig?



  • wenn du sprachen vergleichen willst, ist es irgendwie kontraproduktiv die hauptarbeit an ein externes program abzugeben (SQL mein ich).

    mein vorschlag waere einfach ne SQL DB zu implementieren, dann kann man naemlich mit immer dem gleichen client (per tcp) die leistung messen. (ich glaube es gibt sogar standard benchmarks dafuer sodass wir uns hier nicht ueber einen fairen test streiten muessten) das waere dann auch eine schoen grosse verwaltungsaufgabe die nicht rechenintensiv ist und java doch eigentlich stehen muesste.

    damit hier nicht jeder nen sql parser anfaengt, koennte man die xml version nutzen, dafuer hat wohl jede sprache ein paar parser libs. (alternativ waere ein simpler xml syntax ja auch moeglich)

    http://www.sqlx.org/



  • Werden denn wirklich die Sprachen verglichen, oder nicht einfach nur Implementierungen/Algorithmen?



  • wollen wir nicht lieber äpfel mit birnen vergleichen und danach vergleichen, welches von beiden besser schmeckt?



  • Birnen



  • rapso schrieb:

    wenn du sprachen vergleichen willst, ist es irgendwie kontraproduktiv die hauptarbeit an ein externes program abzugeben (SQL mein ich).

    Ne. Das ist super. Damit kann man prima vergleichen wie aufwendig es ist, solche externen Ressourcen mit der jeweiligen Programmiersprache einzubinden.



  • Was soll das bringen?
    Wird es jemanden aus der Flamewar Fraktion überzeugen können?

    Letzten endes kann man doch in beiden Sprachen schlecht programmieren.
    Man muss es aber nicht, wenn man die richtigen Mittel nutzt.



  • Jester schrieb:

    rapso schrieb:

    wenn du sprachen vergleichen willst, ist es irgendwie kontraproduktiv die hauptarbeit an ein externes program abzugeben (SQL mein ich).

    Ne. Das ist super. Damit kann man prima vergleichen wie aufwendig es ist, solche externen Ressourcen mit der jeweiligen Programmiersprache einzubinden.

    in dem fall muesste man aber allerlei libs checken z.b. sound, rendering, netzwerk(z.b. https)... und am ende weiss man nur wie gut eine sprache unterstuetzt wird, damit hat man aber noch keine aussage ueber die guete der sprache.



  • rapso schrieb:

    in dem fall muesste man aber allerlei libs checken z.b. sound, rendering, netzwerk(z.b. https)... und am ende weiss man nur wie gut eine sprache unterstuetzt wird, damit hat man aber noch keine aussage ueber die guete der sprache.

    Ne, muß man nicht alles prüfen. Es geht um eine Fallstudie, keine vollständige Evaluation.
    Insbesondere lässt sich mit der gegebenen Aufgabenstellung sehr leicht prüfen, ob man in Java tatsächlich so reibungslos alles mit der Standardlib realisieren kann und ob man damit tatsächlich auch so viel schneller ist. Andererseits sieht man auch, ob man mit C++ tatsächlich durch Einbinden der richtigen Libraries die Entwicklungszeit so stark verkürzen kann, dass man nicht länger braucht als mit der Java-Version, wo vieles schon da ist.

    Da das zwei Hauptthesen in den Flamewars sind, denke ich, dass allein die Überprüfung dieser Thesen das Experiment rechtfertigt.



  • Jester schrieb:

    Ne, muß man nicht alles prüfen. Es geht um eine Fallstudie, keine vollständige Evaluation.
    Insbesondere lässt sich mit der gegebenen Aufgabenstellung sehr leicht prüfen, ob man in Java tatsächlich so reibungslos alles mit der Standardlib realisieren kann und ob man damit tatsächlich auch so viel schneller ist.

    naja, soweit ich weiss ist einiges in c++ implementiert worauf java bzw jvm dann zugreift (jedenfalls war das mal so und ist bei c# zZ auch so). also ist schnelligkeitsvergleich dann nicht wirklich aussagefaehig.

    Andererseits sieht man auch, ob man mit C++ tatsächlich durch Einbinden der richtigen Libraries die Entwicklungszeit so stark verkürzen kann, dass man nicht länger braucht als mit der Java-Version, wo vieles schon da ist.

    Da das zwei Hauptthesen in den Flamewars sind, denke ich, dass allein die Überprüfung dieser Thesen das Experiment rechtfertigt.

    ich dachte es wurde auch geflamet wegen GC und wie langsam java ist usw. bzw. dass man heutzutage besser mit GC faehrt und dafuer keine memleaks hat usw.
    wenn man diese sache ueberpruefung wollen wuerde waere es wichtig die sprache selbst auszulasten.



  • <°((((><



  • rapso schrieb:

    Jester schrieb:

    Ne, muß man nicht alles prüfen. Es geht um eine Fallstudie, keine vollständige Evaluation.
    Insbesondere lässt sich mit der gegebenen Aufgabenstellung sehr leicht prüfen, ob man in Java tatsächlich so reibungslos alles mit der Standardlib realisieren kann und ob man damit tatsächlich auch so viel schneller ist.

    naja, soweit ich weiss ist einiges in c++ implementiert worauf java bzw jvm dann zugreift (jedenfalls war das mal so und ist bei c# zZ auch so). also ist schnelligkeitsvergleich dann nicht wirklich aussagefaehig.

    Wir reden vom gleichen "schnell"? Ich meine die Entwicklungszeit, nicht die Laufzeit.



  • Jester schrieb:

    Wir reden vom gleichen "schnell"? Ich meine die Entwicklungszeit, nicht die Laufzeit.

    hmm... ich ging von schnell schnell aus 😉 (also performance)

    entwickelungszeit usw. find ich sehr schwer messbar.



  • Also ich fänds ganz gut wenn wir eine SQL Anbindung einbauen würden - einfach weil das gängige Praxis in den viel beschworenen "Business-Applikationen" ist.

    Bei der Volltextsuche könnte man sich ja auf C++/Java-Sprachmagie statt aufs RDBMS stützen und mal richtig grosse Speicherblöcke mit Regex abgrasen oder so.

    Btw ich mach gerne ggf. den Prototypen nach den Vorgaben die wir hier beschliessen und möchte natürlich beim C++-Team mitmachen, aber koordinieren und hosten kann ich's nicht.

    Hat jemand Platz für 1 BBS (mit PN) und ein CVS-Repository?
    Oder gibt's ne andere Idee das zu organisieren?

    Grüsse

    *this



  • rapso schrieb:

    in dem fall muesste man aber allerlei libs checken z.b. sound, rendering, netzwerk(z.b. https)... und am ende weiss man nur wie gut eine sprache unterstuetzt wird, damit hat man aber noch keine aussage ueber die guete der sprache.

    Sind viele verfügbare Libs nicht eher ein Beweis der Güte, solange die Libs auch in dieser Sprache geschrieben sind?



  • Gast++ schrieb:

    Also ich fänds ganz gut wenn wir eine SQL Anbindung einbauen würden - einfach weil das gängige Praxis in den viel beschworenen "Business-Applikationen" ist.

    das ist aber unfug, weil man dazu weder c++ noch java nimmt, sondern visual basic oder c#.

    Bei der Volltextsuche könnte man sich ja auf C++/Java-Sprachmagie statt aufs RDBMS stützen und mal richtig grosse Speicherblöcke mit Regex abgrasen oder so.

    also gucken, bei welcher sprache eine bessere (natürlich in c++ implementierte) regexp-lib beiliegt. lustiger gedanke.



  • volkard schrieb:

    visual basic.

    Ich dachte wir sprächen über Programmiersprachen.... 😃

    *SCNR*

    Grüsse

    *this



  • !§$%&/()=? schrieb:

    rapso schrieb:

    in dem fall muesste man aber allerlei libs checken z.b. sound, rendering, netzwerk(z.b. https)... und am ende weiss man nur wie gut eine sprache unterstuetzt wird, damit hat man aber noch keine aussage ueber die guete der sprache.

    Sind viele verfügbare Libs nicht eher ein Beweis der Güte, solange die Libs auch in dieser Sprache geschrieben sind?

    nein, das ist nicht aussagefaehig, das ist als ob du ne neue graphikkarte mit einer alten vergleichen wuerdest und oh wunder verwenden viel mehr leute die alte.

    java kann nunmal nicht wirklich die selbe userbase aufweisen und deswegen auch nicht die libs, ansonsten kann ich dir sicher ohne ende libs aufzeigen bei denen es nichts bei java gibt.

    und das alles hat am ende leider immer noch nicht gesagt, ob die vorteile den nachteilen von java gegenueber c++ ueberwiegen. aber selbst wenn wir hier wirklich entwicklungszeit und laufzeit dann vergleichen ended es wieder nur im streit was wichtiger ist. was bloedsinnig ist. ich kann dir den auftrag geben einen echtzeit raytracer zu machen, den machst du in c++ for sure. ich kann dir sagen dass du fuer alle bankautomaten meiner bank ein interface zur DB coden sollst, das machst du dann wohl mit java.
    das hat mit eignung und "moegen" und nicht mit "besser" zu tun.



  • volkard schrieb:

    Gast++ schrieb:

    Also ich fänds ganz gut wenn wir eine SQL Anbindung einbauen würden - einfach weil das gängige Praxis in den viel beschworenen "Business-Applikationen" ist.

    das ist aber unfug, weil man dazu weder c++ noch java nimmt, sondern visual basic oder c#.

    java,VB und c# sind doch fuer gui-clients fuer DB gleich geeignet und verbreitet.



  • Hi,

    mal ein paar Fragen, die mir durch den Kopf schießen:
    + Ist eine Testphase mit eingeplant ? Wie werden Fehler gewertet ?
    + Wird ein gemeinsames Design vorgegeben ? Da man im Design bereits verschiedene "Reuse-/Flexibilisierungsmarken" setzt, kommen da schnell sehr entscheidende Unterschiede (sowohl Entw- als auch Laufzeit) zustande.
    + Wie werden die "Erfahrungsdifferenzen" festgestellt oder gewertet ? Ich behaupte mal, dass ich in jeder Sprache Leute finden werde, die "besser" und welche die "schlechter" (egal nach welchem Maß) programmieren als ich.

    Ich weiß nicht, wie realistisch das Ganze ist.

    Gruß,

    Simon2.



  • Simon2 schrieb:

    + Ist eine Testphase mit eingeplant ? Wie werden Fehler gewertet ?

    wohl am besten, sie werden weggemacht, statt sich eine bewertung zu überlegen.

    + Wird ein gemeinsames Design vorgegeben ? Da man im Design bereits verschiedene "Reuse-/Flexibilisierungsmarken" setzt, kommen da schnell sehr entscheidende Unterschiede (sowohl Entw- als auch Laufzeit) zustande.

    mit einem java-design erzwingst du, daß java gewinnt. und umgekehrt. wäre also nicht geschickt, das vorzugeben.

    falls es in c++ einen performance-teil gibt, zum beispiel stringsuche, könnte ich dran denken, in diesem teil ein wenig mitzuzspielen. vielleicht bringts ja dann was, den code nach java zu portieren.


Anmelden zum Antworten