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



  • 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. 🙂



  • rüdiger schrieb:

    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...

    Diskredition ist eben eine sehr beliebte Möglichkeit zu diskutieren, wenn auch nicht gerade eine, die gern gesehen ist. Mir ist natürlich bewusst, dass ich mich mit dieser Aussage jetzt ins Aus versetzt habe, aber ich finde es eben eine Frechheit mir nach diesem Beitrag zu unterstellen, dass ich einen Flamewar auslösen will, denn du selbst hast über den gesamten Verlauf dieses Threads schon wesentlich mehr Öl ins Feuer geworfen.

    Meinetwegen verschiebst du halt diesen einen Beitrag, oder machst einen neuen Thread auf, je nachdem wie es dir beliebt, damit du antworten kannst, ohne das Thema zu verfehlen. Merkwürdig finde ich dabei halt, dass du trotz deiner ach so noblen Prinzipien über mehrere Beiträge hinweg bezüglich der Konkenation "ablästern" konntest.

    Du hast jetzt natürlich die freie Wahl, wie du auf diesen Beitrag reagierst. Ohne Kommentar ignorieren, sachgemäßg antworten (wo auch immer) und einfach löschen stehen zur Auswahl. Mir würde es ja schon genügen, wenn du zumindestens einen Denkanstoß empfindest, dass es auch anders funktionieren kann. Mittlerweile dürfte ich auch genug kritisiert haben, so dass du mich als "Troll" abstempeln kannst, womit wir wieder bei deiner dritten Option wären ...



  • @pale, merker:

    Zwar glaube ich nicht dass 100.000 quasi-parallele Anfrages für eine Singleprozessorarchtektur eine praxis-relevante Last darstellen 🙂 - und Cluster-Archtekturen werden wir hier mangels Infrastruktur nicht einsetzen können - aber die Idee Höchstlastmarken für den Server zu ermitteln, halte ich für gut!

    Zwei Ideen dazu:

    - Wenn der Server gut skalieren soll, folgt imo schon zwingend dass er ein Thread-Pooling wird inkorporieren müssen (per lib oder selbstgeschrieben); wenn dieser Pool eine Verwaltungsschnittstelle anbietet kann man, wenn man einen Roboter draufsetzt, imho sehr interessante Kenngrössen ermitteln.

    - Für C++ könnte man sich überlegen dass man Bibliotheken, die lastkritische Aufgaben erfüllen, geeigent kapselt und zur Laufzeit austauschbar macht (z.B. Bridge-Pattern od. Visitor). Auch solche Metamorphosen könnten per Verwaltungsaschnittstelle gesteuert werden.

    @all
    Damit's nicht zwischen operator und casts et al. untergeht :D:

    Ich hab dem Projekt einen Namen verpassrt ("JC-Eval" - "Java-C++-Evaluation") und einen Heimathafen ausgewählt:

    http://code.google.com/p/jc-eval/

    Für Details zur Infrastruktur und zum Zugang bitte ich Euch Seite 12 dieses Threads zu beachten!

    Grüsse

    *this



  • inwiefern sollte ein visitor da helfen, oder versuchst du nur schlau zu klingen?
    den link hast du auch schon 5 mal gepostet und da gibs noch immer nix zu sehen 😕

    <°)))o><



  • Naja, es wird so gut wie niemand hier einen gmail-Account haben. Hatte auch bisher nie danach gestrebt. Jetzt muß jeder erstmal schauen, wie er sich da durchschlägt. 👎 Deshalb dürfte auf dem Projekt noch nichts los sein. Warum es das evil google sein muß, frage ich mich... hätte es nicht sf.net sein können? Egal... mal schauen wie sich das entwickelt.

    _Muß_ man da pers. Daten hinterlassen? Oder kann man auch Fakedaten eintragen?



  • Artchi schrieb:

    Naja, es wird so gut wie niemand hier einen gmail-Account haben. Hatte auch bisher nie danach gestrebt. Jetzt muß jeder erstmal schauen, wie er sich da durchschlägt. 👎 Deshalb dürfte auf dem Projekt noch nichts los sein. Warum es das evil google sein muß, frage ich mich... hätte es nicht sf.net sein können? Egal... mal schauen wie sich das entwickelt.

    _Muß_ man da pers. Daten hinterlassen? Oder kann man auch Fakedaten eintragen?

    Hallo !

    SF war mit für ein Projekt mit begrenzter Laufzeit zu aufwändig; SF erfordert es für Projekte einen Antrag zu formulieren der dann erst ein Review durchlaufen muss; ferner bietet SF nur CVS und man muss sich ziemlich intensiv mit sehr restriktiven Sicherhietsbestimmungen auseinandersetzen.

    Die Hauptvorteile von SF ggü. Google sehe ich in

    - den Systemen des Recruitments
    - der Verwaltung von User-Feedback(incl. Bugtracking);
    - der Integration von Backupkonzepten mit dem VCS

    Da ich aber möchte das sich die Teams hier im C++-Forum bilden und Anwender-Feedback für uns recht wenig Gewicht haben wird bringen uns die Stärken von SF wenig.
    VCS-awareness beim Backup spielt infolge der geringen Projektgrösse imo eine untergeordnete Rolle.

    ---

    Bei SF und anderen muss man sich immer in irgendeiner Art registrieren; auch da Google kaum persönliche Daten abfragt habe ich mich für Google entschieden, .
    Ferner kann man ggf. mit dem Account noch mehr anfangen kann als nur an diesem Projekt teilzunehmen und wir könnten unsere Kommunikation um Features erweitern (Gruppen, Chat usw.)

    Google ist imo einfach eine zentrale Anlaufstelle; lasst uns doch dort einfach anfangen; wenn es sich als nicht tragfähig erweisen sollte (was ich nicht glaube) können wir immer noch umziehen!

    Grüsse

    *this



  • Nachdem heute bei einem ganz anderen Thema eine kleine Diskussion um CORBA aufkam http://www.c-plusplus.net/forum/viewtopic-var-p-is-1296816.html#1296816 wollte ich mal fragen was ihr davon haltet dass beide Implementierungen diese Architektur nutzen.

    In Java ist CORBA gut integriert; für C++ gibt's hinreichend viele freie Implementierungen resp. Bindings.

    Desweiteren fehlen noch einige Registrierungen auf der Site die ich für das Projekt eingerichtet habe; bitte beachtet S.12!

    Grüsse && schönes WE!

    *this


Anmelden zum Antworten