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



  • ich würde... schrieb:

    ...gern beim java team mitmachen, hab aber leider keine zeit für sowas. anscheinend sind hier die meisten c++ programmierer arbeitslos so dass sie ihre zeit für so ne aufgabe verschwenden können oder wie 😕

    Wenn du effizient arbeitest weil du das richtige Werkzeug verwendest, hast du auch rechtzeitig Feierabend 😉



  • Gregor schrieb:

    pale dog schrieb:

    du meinst in Java sei: a+b != b+a 😕
    oder hab' ich vergessen was kommutativ heisst?
    🙂

    String a = "a";
    String b = "b";
    😉
    ...da ist sogar a+b != a+b. 😃

    okay, aber das ist ja stringverkettung.
    rüdi schrieb aber, dass addition nicht kommutativ sei...



  • @pali
    Ja, es ist eine String-Verkettung. Aber es wird mit dem Builtin-Op+ gemacht. Also mit dem Additions-Operator.

    In Java ist eben i+2 != 2+i



  • rüdiger schrieb:

    @pali
    Ja, es ist eine String-Verkettung. Aber es wird mit dem Builtin-Op+ gemacht. Also mit dem Additions-Operator.

    dass ein zeichen verschiedenen bedeutungen haben kann, ja nachdem wo es im quelltext auftaucht, ist doch nix neues (denk' doch nur mal an das '*' in C).
    deshalb ist '+' im zusammenhang mit strings noch lange keine addition...



  • Gast++ schrieb:

    Zu testen habe ich ein DB Designer 4 http://fabforce.net/dbdesigner4/ Modell der Bilddatenbank die ich als Thema vorgeschlagen hatte erstellt (Die XML-Datei im Unterverzeichnis model); als MySQL exportiert und mittels Perl::SQL::Translator (aka SQLFairy http://sqlfairy.sourceforge.net/; trotz des imho scheusslichen Logos ein gutes Tool!) nach Postgres konvertiert (händisch hierbei eine Längenangabe des BLOBS aka PSQL "bytea" gelöscht;...

    Wieso hab ich iregndwie so ein gefühl, dass wir hier arbeit umsonst machen sollen? Woher weiß man, dass du das nicht brauchst, um später damit Geld zu verdienen?

    Wieso wollt ihr überhaupt Java und C++ vergleichen? Gibt es Gebiete, in denen beide groß konkurieren? Die Flamewars ala "GC ist für Mädchen..." werdet ihr damit nicht beenden.



  • pale dog schrieb:

    rüdiger schrieb:

    @pali
    Ja, es ist eine String-Verkettung. Aber es wird mit dem Builtin-Op+ gemacht. Also mit dem Additions-Operator.

    dass ein zeichen verschiedenen bedeutungen haben kann, ja nachdem wo es im quelltext auftaucht, ist doch nix neues (denk' doch nur mal an das '*' in C).
    deshalb ist '+' im zusammenhang mit strings noch lange keine addition...

    Das sagt Herr "ich will keine Operator-Überladung, weil ich sonst nicht weiß was hinter einem Operator steckt *heul*" :p Ich finde es eben in Java nur sehr lustig, das man keine Operator-Überladung hat. Die Java-Entwickler dann aber her gehen und Operatoren in der Sprach-Spec für einige Klassen überladen und dann auch noch eine Klasse auswählen für die sich die Semantik des Operators von allen anderen Verwendungen unterscheidet 😃 Wie gesagt: In Java ist + nicht kommutativ :p

    In C gibt es den unären- und binären-Operator . Oder meinst du dass der Op auch für floats und integer funktioniert? Aber da verhält er sich wenigstens gleich a*b == b*a :p

    Aber ich will jetzt hier keine weitere Diskussion zu dem Thema starten. Ist einfach zu langweilig.



  • rüdiger schrieb:

    Aber ich will jetzt hier keine weitere Diskussion zu dem Thema starten. Ist einfach zu langweilig.

    müssen wir auch nicht.
    in Java ist einerseits '+' eine addition und im anderen fall eine stringverkettung, genau so, wie in C einmal das '*' für 'multipliziere' steht, ein anderes mal für 'pointer' oder 'pointer dereferenzieren'.
    es hat in beiden sprachen nichts mit 'überladen von operatoren' zu tun...

    rüdiger schrieb:

    Wie gesagt: In Java ist + nicht kommutativ

    das hast du vorhin aber nicht so geschrieben
    🙂



  • hmmm... schrieb:

    Wieso hab ich iregndwie so ein gefühl, dass wir hier arbeit umsonst machen sollen?

    Weiss ich nicht - weil Du den Unterschied zwischen "umsonst" und "unentgeltlich" nicht kennst?
    Weil Du das OpenSource-Konzept nicht verstanden hast...

    hmmm... schrieb:

    Woher weiß man, dass du das nicht brauchst, um später damit Geld zu verdienen?

    ...oder weil Dich das alles intellektuell überfordert und Du Hunger hast?
    <°)))o><



  • Ja, hat mich voll überzeugt. Wir sollen nicht nur umsonst arbeiten, sondern die Arebit ist auch noch umsonst, weil sie keinen Flamewar oder sonst was verhindern wird. Stimmt.

    Gast++ schrieb:

    hmmm... schrieb:

    Woher weiß man, dass du das nicht brauchst, um später damit Geld zu verdienen?

    ...oder weil Dich das alles intellektuell überfordert und Du Hunger hast?
    <°)))o><

    Irgendwie hab ich immer mehr den eindruck das du hier nur rumtrollst.



  • Als Unregistrierter wird hier einem ja anscheinend nicht geantwortet, selbst wenn man sich sachlich an der Diskussion beteiligen will. Dennoch starte ich einen erneuten Versuch, auch wenn ich mir dafür ein ungünstiges Thema ausgesucht habe: Operator-Überladung.

    Manch einer mag dieses Feature natürlich in Java vermissen, ich eben nicht, obwohl ich meine Meinung auch aus der Sicht eines C++ Programmierers bilden kann. Würde ich das jetzt so stehen lassen, wäre ich natürlich als Troll abgestempelt, der nur subjektive Meinungen äußert, darum versuch ich eben Google Codesearch [1] als Argumentationsbasis zu verwenden. Die Verwendungszwecke sind meiner Meinung nach - schleicht sich da doch wieder eine subjektive Meinung ein - allesamt ungerechtfertigt. Entweder jemand versucht Builtin-Klassen zu ersetzen (Integer, String, etc.) oder missbraucht sie an Stellen, an denen ich sie nichtmal einführen würde, selbst wenn ich könnte (z.B. Merge von Collections). Natürlich gibt es auch "sinnvolle" Beispiele, aber die beschränken sich eben auf die Geometrie. Vektoren, Matrizen, Punkte oder andere mathematisch angehauchte Konstrukte wie komplexe Zahlen lassen sich mit Operatoren natürlich einfacher bedienen, aber das ist einfach ein verschwindend geringes Einsatzgebiet.

    Andererseits denke ich aber auch, dass sich über die Verwendungszwecke und ihre Rechtfertigung streiten lässt. Wenn ich mir zum Beispiel Auszüge aus Boost [2] ansehe, denke ich mir auch oft, dass ich diese oder jenes eher als Methode implementiert hätte. In diesem konkreten Beispiel hätte bei mir ein Iterator eben die Methode seek oder skip statt dem Operator um ihn zu positionieren. Als C++-Programmierer argumentiert man dann wohl, dass sich der Iterator dadurch wie ein Zeiger verwenden lässt, aber nachdem es in Java keine Zeigerarithmetik gibt, fällt das Argument ohnehin weg. Da einigt man sich eben auf eine Schnittstelle (z.B: Iterator). Insofern kann man das ohnehin nur schlecht vergleichen.

    Ansonsten wird in dieser Diskussion nur auf Oberflächlichkeiten herumgeritten, die wenn überhaupt lediglich von theoretischer Bedeutung sind. Ich finde es einfach lächerlich sich über "Inkonsequenz" aufzuregen, weil man halt Strings mit einem Operator konkatenieren kann. Mir ist allerdings auch klar, dass diese Antwort wohl überhaupt nichts zur Diskussion beitragen wird, da wohl, wie bereits erwähnt, weiterhin auf Oberflächlichkeiten herumgeritten wird.

    [1]: http://www.google.com/codesearch?q="operator+%2B"+lang%3Ac%23&hl=en&btnG=Search+Code
    [2]:
    http://www.google.com/codesearch?hl=en&q=+lang:c%2B%2B+"operator+%2B"+show:2r8ZBrSL_8c:j1RJWYwXQQI:svxzsEk0sq8&sa=N&cd=13&ct=rc&cs_p=ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-stable/All/k3d-0.4.4.0_10.tbz&cs_f=include/k3d/boost/boost/regex/v3/fileiter.hpp#a0



  • Komatierchen schrieb:

    ich würde... schrieb:

    ...gern beim java team mitmachen, hab aber leider keine zeit für sowas. anscheinend sind hier die meisten c++ programmierer arbeitslos so dass sie ihre zeit für so ne aufgabe verschwenden können oder wie 😕

    Wenn du effizient arbeitest weil du das richtige Werkzeug verwendest, hast du auch rechtzeitig Feierabend 😉

    da hast du wohl recht, ich muss aber leider eclipse auf arbeit verwenden 😞

    hmmm... schrieb:

    Gast++ schrieb:

    hmmm... schrieb:

    Woher weiß man, dass du das nicht brauchst, um später damit Geld zu verdienen?

    ...oder weil Dich das alles intellektuell überfordert und Du Hunger hast?
    <°)))o><

    Irgendwie hab ich immer mehr den eindruck das du hier nur rumtrollst.

    ich auch 👎 wann wird dieser thread endlich geschlossen !



  • Damit es wieder etwas ontopic wird erlaube ich mir alle an der Teilnahme Interessierten nochmal auf das Projekt bei Google Projects hinzuweisen:

    http://code.google.com/p/jc-eval
    (Näheres auf S.12)

    Das bisschen SQL dort soll v.a. helfen die eigene Infrastruktur geeignet anzupassen; was wir nun bauen wollen steht ja immer noch zur Disposition.

    Allerdings halte die Themen "Rendering" und "SQL Server" die verschiedentlich geäussert wurden für zu aufwändig.

    Es scheint mir dass die technischen Features, die ich vorgeschlagen hatte akzeptiert worden sind; wenn jemand eine andere Anwendungsidee (was anderes als eine Bilddatenbank) hat, die diese inkorporiert dann bitte her damit! 🙂

    was für ein theater hier schrieb:

    Ansonsten wird in dieser Diskussion nur auf Oberflächlichkeiten herumgeritten, die wenn überhaupt lediglich von theoretischer Bedeutung sind.

    Das sollte in diesem Thread auch gar nicht passieren; deshalb hatte ich auf den parallelen Thread im C++ Forum verwiesen. Hier geht es darum Thesen anhand eines konkreten, kleinen, aber technologieintensiven Projektes zu überprüfen.

    Insofern ist Dein Beitrag, obwohl inhaltlich interessant, offtopic.

    Grüsse

    *this

    P.S.:

    was für ein theater hier schrieb:

    Als Unregistrierter wird hier einem ja anscheinend nicht geantwortet, selbst wenn man sich sachlich an der Diskussion beteiligen will.

    Das mag an Deinenm etwas provokanten Nick liegen. Was soll sowas?



  • was für ein theater hier schrieb:

    Dennoch starte ich einen erneuten Versuch, auch wenn ich mir dafür ein ungünstiges Thema ausgesucht habe: Operator-Überladung.

    Was für einen Versuch? Einen Flamewar auszulösen? Hier geht es nicht um C++ vs Java und auch nicht darüber ob Operator-Überladung sinnvoll ist...



  • was für ein theater hier schrieb:

    Dennoch starte ich einen erneuten Versuch, auch wenn ich mir dafür ein ungünstiges Thema ausgesucht habe: Operator-Überladung.

    ich glaube der letzte thread zu dem thema war der: http://www.c-plusplus.net/forum/viewtopic-var-t-is-180255-and-start-is-130.html
    lass dich doch da hin verschieben...
    🙂



  • Gast++ schrieb:

    (...) wenn jemand eine andere Anwendungsidee (...) hat, (...) dann bitte her damit!

    Das vielleicht nicht, aber lässt sich eventuell noch folgendes in den Anforderungskatalog aufnehmen :

    "Es muss garantiert sein, dass die Anwendung 100.000 Anfragen hintereinander bearbeiten kann, ohne in 'speichertechnische Bedrängnis' zu geraten".



  • merker schrieb:

    "Es muss garantiert sein, dass die Anwendung 100.000 Anfragen hintereinander bearbeiten kann, ohne in 'speichertechnische Bedrängnis' zu geraten".

    stossweise, als 'burst', oder dauerhaft?



  • pale dog schrieb:

    merker schrieb:

    "Es muss garantiert sein, dass die Anwendung 100.000 Anfragen hintereinander bearbeiten kann, ohne in 'speichertechnische Bedrängnis' zu geraten".

    stossweise, als 'burst', oder dauerhaft?

    Aufeinmal und das ganze muss auf nem 386er mit 4MB Ram laufen



  • pale dog schrieb:

    stossweise, als 'burst', oder dauerhaft?

    Stossweise.

    Sollte die Anwendung bei 1000 Anfragen schon "schlappmachen", liegen Programmierfehler vor.

    Sollte sie bei 100.000 Anfragen "schlappmachen", liegt ein "Generalfehler" vor.

    (Und der Ersteller des Pflichtenheftes darf sich einen neuen Job suchen) 🙂



  • ...und in welcher zeit sollen die 100000 anfragen abgefrühstückt werden?
    1 minute oder etwa 3 sekunden?
    😉



  • Pflichtenheft schrieb:

    (blabla) ... der zur Verfügung stehenden Hardware entsprechend ... (blabla)

    Aber jetzt wo Du fragst, steigt die Anzahl der Anfragen natürlich auf 250.000. 🙂


Anmelden zum Antworten