Warum hat C++ so eine aufwendige Syntax?



  • Shade Of Mine schrieb:

    Fass dich mal selbst an die Nase. 90% deiner Posts sind reine trollerei.

    Das sehe ich nicht so.

    C++ ist für die Webentwicklung geeignet - sprich die nötigen Tools sind vorhanden.

    Geeignet impliziert für mich die Wertung: "Das kann man damit gut machen". Bist Du dieser Meinung?



  • dsfdfg schrieb:

    CStoll schrieb:

    dsfdfg schrieb:

    CStoll schrieb:

    Und wieso kritisiert dann jeder, daß man in C++ gelegentlich externe Libraries benötigt?

    Ich kann ja nicht für sämtliche Leute sprechen, mit denen du bisher diskutiert hast, aber ich kritisiere daran, dass man dadurch auch viel Wissen verliert. Ich habe ja auch nichts gegen Vielfalt aber letztendlich muss man sich für ein Projekt auf irgend etwas einigen. Als C++-Programmierer kann es einem eben passieren, dass man bei einem Arbeitsplatzwechsel kaum Wissen mitnehmen kann, weil für die gleichen (elementaren!) Probleme unterschiedliche Lösungen verwendet werden.

    Und das kann einem als Java Programmierer nicht passieren?

    Ganz ausschließen will ich es nicht, aber es ist auf jeden Fall wesentlich unwahrscheinlicher. In Java gibt es beispielsweise bei den Webframeworks eine relativ große Vielfalt, aber dennoch basieren sie alle auf dem Servlet Standard. Insofern kann man bei jedem Webframework eine gewohnte Infrastruktur verwenden. Ein weiteres Beispiel wäre eben Persistenz, denn wenn man vorher Hibernate verwendet hat, kann man nachher auch problemlos Oracles TopLink einsetzen. etc..

    In C++ gibt es auch eine recht einheitliche Struktur bei z.B. GUI-Libs oder String-Klassen (einige Details müsste man sich zwar nachlesen, aber ich staune immer wieder, wie ähnlich sich z.B. MFC und VCL Beispielcodes sind)

    CStoll schrieb:

    Für sowas reicht es, wenn innerhalb einer definierten Umgebung (Firma o.ä.) ein Produktiv-Standard vorgegeben wird.

    Dann wünsche ich dir nur, dass diese definierte Umgebung sich nicht nur auf ein Projekt bezieht. Mir ist es absolut egal welche Infrastruktur der Kunde aufweist und zwar immer.

    Nein, die Umgebung, von der ich rede, bezieht sich z.B. auf eine Firma. In "meiner" aktuellen Firma wird z.B. eine recht umfangreiche Bibliothek zur Grafik- und 3D-Verarbeitung zur Verfügung gestellt - und die kann man auch durchgehend für alle anstehenden Projekte nutzen.

    CStoll schrieb:

    Aber was hat ein Grafik-Experte davon, mit seinem Compiler einen gewaltigen Berg an Sound-Libraries mitzubekommen, die er sowieso niemals benötigen wird und die deshalb nur unnötig Platz belegen (und eventuell Compilezeit verschlingen)?

    Ich hab dich schonmal aufgrund deiner Mutmaßungen kritisiert und nun machst du es wieder. Außerdem ist dieser Kritikpunkt im Server-Bereich sowieso völlig unangebracht, aber du scheinst es wohl eher vorzuziehen alle 0815-Kritikpunkte, die du mal in irgendeinem Flamewar gelesen hast, hervorzuholen.

    Sag blos, Java hat keine Standard-Libraries jenseits des Web-Bereiches. Wäre ja sehr schwach für eine angeblich so mächtige Sprache.

    Artchi schrieb:

    Ich weiß überhaupt nicht was die Leute wollen? Andauernd wird gesagt, C++ kann dies und das nicht. Und wenn man mal ein Beispiel bringt, das es doch geht, wird einem gesagt, man habe gesagt, das Java nicht geeignet ist...

    Ich habe ja auch nicht gesagt, dass es nicht mit C++ auch irgendwie gehen würde, aber hey, auch eine Brainfuck Anwendung kann man per CGI ins Web stellen. Wenn es aber darum geht, ob es sinnvoll ist C++ für Webanwendungen einzusetzen, dann kann ich getrost Stellung beziehen und die dürfte ja bekannt sein.

    Ja, C++ erhebt gar nicht den Anspruch darauf, die beste Lösung für Web-Anwendungen zu sein. Aber Web-Anwendungen sind auch nicht das einzige, was man programmieren könnte 😉



  • lolz schrieb:

    Undertaker schrieb:

    radiergummi schrieb:

    Einem Java-Entwickler geht der Embedded-Bereich nunmal am ***** vorbei, so einfach ist das.

    in dem bereich hat Java zwar nicht viel zu melden - C++ aber auch nicht 😃

    Bezweifel ich...warum? Ganz einfach, es gibt für immer mehr Microcontroller C++-Compiler.

    du meinst sicher C compiler?
    btw: in einigen der letzten beiträge wurde der begriff C/C++ verwendet.
    ein C/C++ gibt es aber nicht. es gibt C und es gibt C++.
    ...und es gibt viele unterschiede zwischen den beiden.
    🙂



  • Tim schrieb:

    lolz schrieb:

    Undertaker schrieb:

    radiergummi schrieb:

    Einem Java-Entwickler geht der Embedded-Bereich nunmal am ***** vorbei, so einfach ist das.

    in dem bereich hat Java zwar nicht viel zu melden - C++ aber auch nicht 😃

    Bezweifel ich...warum? Ganz einfach, es gibt für immer mehr Microcontroller C++-Compiler.

    Es gibt auch für immer mehr Microcontroller Java VMs. Das "mehr" hat keine Aussagekraft.

    Ich kann nur zu Java keine Aussage machen, da ich es einfach nicht weiß. Aber immer mehr Microcontroller bieten inzwischen einem die Möglichkeit C++ zu verwenden.
    Wenn das auch für Java der Fall ist (wie du sagst) hat Untertaker in beiden Fällen sich geirrt.

    Eine Statistik für das "mehr" kenne ich nicht, aber ein Blick auf die Microcontroller/Embedded Seiten und man sieht, dass C++ dort längst Einzug erhalten hat und zusammen mit Assembler und C erwähnt wird.



  • Undertaker schrieb:

    lolz schrieb:

    Bezweifel ich...warum? Ganz einfach, es gibt für immer mehr Microcontroller C++-Compiler.

    du meinst sicher C compiler?

    Ich denke schon, daß er C++ Compiler gemeint hat 😉

    Scott Meyers schrieb:

    Gleichzeit wird C++ auf anderen Gebieten zunehmend an Bedeutung gewinnen (etwa für die Entwicklung von Embedded-Systemen, wo C++ mehr und mehr zur Sprache der Wahl wird und C ersetzt).

    (das ist aus dem Interview, das du selber hier angeschleppt hast ;))

    btw: in einigen der letzten beiträge wurde der begriff C/C++ verwendet.
    ein C/C++ gibt es aber nicht. es gibt C und es gibt C++.
    ...und es gibt viele unterschiede zwischen den beiden.
    🙂

    Vielleicht solltest du auch darauf achten, welche Seite hier den Begriff "C/C++" verwendet. (zumindest ich kann gut zwischen beidem unterscheiden)



  • Undertaker schrieb:

    lolz schrieb:

    Undertaker schrieb:

    radiergummi schrieb:

    Einem Java-Entwickler geht der Embedded-Bereich nunmal am ***** vorbei, so einfach ist das.

    in dem bereich hat Java zwar nicht viel zu melden - C++ aber auch nicht 😃

    Bezweifel ich...warum? Ganz einfach, es gibt für immer mehr Microcontroller C++-Compiler.

    du meinst sicher C compiler?
    btw: in einigen der letzten beiträge wurde der begriff C/C++ verwendet.
    ein C/C++ gibt es aber nicht. es gibt C und es gibt C++.
    ...und es gibt viele unterschiede zwischen den beiden.
    🙂

    http://www.keil.com/arm/

    Liste von Arm Chips
    http://www.keil.com/arm/chips.asp

    Für mehr hab ich grad leider keine Zeit, ich post später noch was dazu.



  • Jester schrieb:

    Geeignet impliziert für mich die Wertung: "Das kann man damit gut machen". Bist Du dieser Meinung?

    Die Frage ist: für was?

    Wenn ich einen embedded Webserver brauche für ein zB ein Handheld. Ja. Wenn ich COM Interop brauche - ja. Und zwar dann C++/CLI. Bevor es C++/CLI gab hätte ich, wie gesagt reines C++ genommen.

    Mittlerweile für komplexe Anwendungen aber durchaus ASP.NET - wo ich wunderbar C++ Code schreiben kann für das Backend.

    Extension für PHP schreibt man in C. Da gibt es auch diverse Anwenungsfälle.

    Ich weiß nicht wieviele Sachen ich noch aufzählen soll. Alleine EINE Situation ist Beweis genug.

    Das Problem ist:
    ihr denkt an eine normale Webseite - da nehm ich PHP. Und bei den meisten komplexen Sachen wechsle ich zu Zope, Rails, Servlets, ...

    Aber ASP.NET zB, hat schon wieder die Möglichkeit eines C++ Backends.

    Wenn die Frage lautet: würde ich ein normales Gästebuch mit reinem C++ und witty schreiben - dann lautet die Antwort nein.

    Wenn die Frage lautet: gibt es Anwendung für C++ in der Webentwicklung, nun: ich hätte mir einmal C++ bitter gewünscht und ein paar Anwendungsbereiche habe ich aufgezählt.

    Also ehrliche Frage, hands down: Was erwartet ihr?

    PS:
    wenn ich C/C++ schreibe, meine ich C und bzw oder C++ aber deshalb schreibt man ja /
    "Das ist für Schüler/Lehrer eine gute Möglichkeit bla bla".
    Manchmal hab ich das Gefühl es ist sinnlos hier ernst zu posten 😞



  • Artchi:
    GWT ist übrigens ein tool, keine "externe library".
    deine signaturist demnach überaus a) lächerlich b) unterhaltsam
    aber trotzdem informiere dich das nächste mal bitte *vorher*

    danke,
    gurkenesser

    Artchi schrieb:

    Es sind doch immer die ganzen Java fanboys die extra ins c++ forum kommen und dann flamewars starten 😡



  • Shade Of Mine schrieb:

    Manchmal hab ich das Gefühl es ist sinnlos hier ernst zu posten 😞

    hallo,
    ja, vor allem als gast, denn dann kommt sobald die c++ fans nichts mehr zu sagen haben: du bist eh nur ein gast/verpiss dich/90% von dem was du schreibst ist eh nur getrolle/du hast keine ahnung weil du ein gast bist und kein troll mit 5000 posts

    gruß



  • Shade Of Mine schrieb:

    Dein einziges Argument ist: in Java geht es auch. Load Balancing in Java? Wozu? Das macht die Infrastruktur für mich. Selbes in C++. Ich habe nen Webserver und eine XYDatenbank die sich wunderbar clustern lassen. Deine Punkte sind allesamt sehr wackelig. Niemand wird behaupten C++ ist das einzige was man für Webentwicklung einsetzen kann. Es gibt super Frameworks für Java, Python, Perl, PHP,... die idR den C++ Frameworks überlegen sind. Aber man hat eben auch die Möglichkeit ein C++ Framework einzusetzen wenn man will/muss. Genau das ist der Punkt.

    Ich befürchte fast, dass wir aneinander vorbei geredet haben. Beispielsweise habe ich Load Balancing nie direkt mit Java in Verbindung gebracht, sondern mit der Infrastruktur, die sich mit Java ermöglicht. Mit C++ hat man da keine vergleichbare Auswahl bzw. muss es nötigenfalls sogar selbst implementieren. Ich habe aber auch nie gesagt, dass ich C++ auf Biegen und Brechen als Sprache vermeiden würde für eine Webanwendung, Anforderung bleibt Anforderung, aber manche stellen es hier ja quasi fast schon als "ideale" Plattform für Webanwendungen dar und das ist einfach nicht wahr.

    Shade Of Mine schrieb:

    Aber der Punkt ist: C++ ist ebenfalls vertreten, egal wie stark du es leugnest. Das schöne an der Wahrheit ist nämlich: sie kümmert sich nicht darum was du denkst, sie ist für jeden mit offenen Augen da.

    Es gibt wohl ähnlich viele Wahrheiten wie Ansichtsweisen, denn mir ist schon klar, dass für jemanden, der sich wünscht, dass er C++ für eine Webanwendung einsetzen hätte können, C++ in dem Bereich vertreten ist. Wahrscheinlich wäre es bei mir auch so, denn wenn ich nicht von Kollegen hören würde, dass sie dieses oder jenes Projekt in PHP realisiert haben, könnte ich auch nicht glauben, wie man das freiwillig einsetzen kann. Ich halte mich da einfach an Berichte, wie z.B. die von eBay, die von C++ auf Java umgesattelt haben, und somit zeigen, dass C++ vielleicht einmal vertreten war. Solange bis auf heise also nicht die Meldung kommt "Java hat die Welt erobert - letzte Überreste aus der C++-Urzeit haben sich geschlagen gegeben" wird es also wohl immer einen Teil von Webanwendungen geben, die in C++ realisiert sind. Das bedeutet aber nichts, denn wichtig ist, was sich in der Zukunft tun wird.

    CStoll schrieb:

    In C++ gibt es auch eine recht einheitliche Struktur bei z.B. GUI-Libs oder String-Klassen (einige Details müsste man sich zwar nachlesen, aber ich staune immer wieder, wie ähnlich sich z.B. MFC und VCL Beispielcodes sind)

    Es ist aber trotzdem etwas anderes. Ich tu mir auch nicht ganz leicht, wenn ich nach über 2 Jahren Java-Entwicklung wieder zurück auf C# umsteige. Dabei beziehe ich mich aber nicht auf größere Probleme, sondern eher auf Probleme der Art "Wie hieß die Methode noch einmal?". Tools können beim Umstieg zwar helfen, aber richtig wohl fühle ich mich nur in einer gewohnten Umgebung, so kitschig das jetzt auch klingen mag. Ich zweifel schnell mal wieder daran, ob man dieses oder jenes wirklich so löst, oder ob es mit diesem neuen Framework nicht doch vielleicht elegantere Lösungen gäbe. So etwas behindert einfach nur, selbst, wenn die Unterschiede nicht so gravierend sind (wie eben beim Standardteil von Java und .NET).

    CStoll schrieb:

    Nein, die Umgebung, von der ich rede, bezieht sich z.B. auf eine Firma. In "meiner" aktuellen Firma wird z.B. eine recht umfangreiche Bibliothek zur Grafik- und 3D-Verarbeitung zur Verfügung gestellt - und die kann man auch durchgehend für alle anstehenden Projekte nutzen.

    Das ist es ja, was ich meine. Nehmen wir mal an, dass ein entsprechender Standard in diesem Bereich fehlt, dann kann man als Firma beim JCP einen Request einreichen und sich an der Standardisierung beteiligen. Vielleicht findet sich noch eine OpenSource-Community, die eine Konkurrenzimplementierung liefert und schon ist es viel einfacher geschultes Personal zu finden. Ich habe mich beispielsweise informiert was Firmen in meinem gewünschten Arbeitsbereich typischerweise einsetzen und konnte mir dementsprechend Pluspunkte an Erfahrung einheimsen. Das mag jetzt zwar eine subjektive Meinung sein, aber ich persönlich habe davon profitiert, dass in meinem Bereich jeder "Furz" standardisiert ist.

    CStoll schrieb:

    Sag blos, Java hat keine Standard-Libraries jenseits des Web-Bereiches. Wäre ja sehr schwach für eine angeblich so mächtige Sprache.

    Tut mir leid, dass ich nur im Webbereich arbeite. Ich hab blöderweise die lästige Angewohnheit nur von Dingen zu berichten, von denen ich auch wirklich meine etwas zu verstehen. 🙄 Du kannst dir ja selbst anschauen, welche Standards es jenseits des Web-Bereiches gibt: http://www.jcp.org/en/jsr/all

    CStoll schrieb:

    Ja, C++ erhebt gar nicht den Anspruch darauf, die beste Lösung für Web-Anwendungen zu sein. Aber Web-Anwendungen sind auch nicht das einzige, was man programmieren könnte

    Siehst du, man kann sich ja einigen. Ich komm da auch gern einen Schritt entgegen indem ich euch verrate, dass ich persönlich dankbar bin für jede Swing-Anwendung, die ich nicht einsetzen muss. 😉



  • 32 setien thread? Ne playstation is besser.



  • lolz schrieb:

    Undertaker schrieb:

    lolz schrieb:

    Undertaker schrieb:

    radiergummi schrieb:

    Einem Java-Entwickler geht der Embedded-Bereich nunmal am ***** vorbei, so einfach ist das.

    in dem bereich hat Java zwar nicht viel zu melden - C++ aber auch nicht 😃

    Bezweifel ich...warum? Ganz einfach, es gibt für immer mehr Microcontroller C++-Compiler.

    du meinst sicher C compiler?
    btw: in einigen der letzten beiträge wurde der begriff C/C++ verwendet.
    ein C/C++ gibt es aber nicht. es gibt C und es gibt C++.
    ...und es gibt viele unterschiede zwischen den beiden.
    🙂

    http://www.keil.com/arm/

    Liste von Arm Chips
    http://www.keil.com/arm/chips.asp

    okay, du hast recht 😉
    ab ARM-7 aufwärts, so mit 256K programmspeicher etc. kann man C++ wahrscheinlich einigermassen vernünftig nutzen. aber ich wette, die meisten nehmen doch lieber C (ich auch).
    hier mal was zu C++ auf µC's: http://www.mikrocontroller.net/articles/C_vs_C-Plusplus
    (um von Java abzulenken) 😉



  • Undertaker schrieb:

    hier mal was zu C++ auf µC's: http://www.mikrocontroller.net/articles/C_vs_C-Plusplus
    (um von Java abzulenken) 😉

    Compiliert ihr Embedded-Leute wirklich ohne Optimierung? 😮



  • Undertaker schrieb:

    [...]
    okay, du hast recht 😉
    ab ARM-7 aufwärts, so mit 256K programmspeicher etc. kann man C++ wahrscheinlich einigermassen vernünftig nutzen. aber ich wette, die meisten nehmen doch lieber C (ich auch).
    [..]

    Klar, auf den Kleinen bleiben die Programme auch klein und man ist mit C genauso gut bedient.

    @Mr. N der Artikel unterstützt die Verwendung von C++.



  • macht ma hier zu schrieb:

    32 setien thread? Ne playstation is besser.

    tja für sowas hat man halt nur als arbeitsloser c++ horst zeit... ach moment artchi ist ja java programmierer hm 😡 😞



  • CStoll schrieb:

    Vielleicht solltest du auch darauf achten, welche Seite hier den Begriff "C/C++" verwendet. (zumindest ich kann gut zwischen beidem unterscheiden)

    du warst auch nicht gemeint. ich glaube auch nicht, dass du C/C++ in einem wort nennen würdest, denn was man von dir liest, deutet darauf hin, dass du in beiden sprachen sehr kompetent bist und die unterschiede sehr wohl kennst.

    Mr. N schrieb:

    Undertaker schrieb:

    hier mal was zu C++ auf µC's: http://www.mikrocontroller.net/articles/C_vs_C-Plusplus
    (um von Java abzulenken) 😉

    Compiliert ihr Embedded-Leute wirklich ohne Optimierung? 😮

    unsere compiler optimieren so gut, davon könnt ihr C++ weicheier nur träumen. 😉
    und wenn's der compiler mal nicht bringt, wird eben nachgeholfen.
    🙂



  • Undertaker schrieb:

    Mr. N schrieb:

    Undertaker schrieb:

    hier mal was zu C++ auf µC's: http://www.mikrocontroller.net/articles/C_vs_C-Plusplus
    (um von Java abzulenken) 😉

    Compiliert ihr Embedded-Leute wirklich ohne Optimierung? 😮

    unsere compiler optimieren so gut, davon könnt ihr C++ weicheier nur träumen. 😉

    Die üblichen C++-Optimierer sind sehr gut, aber danke der Nachfrage. 🙂

    (Ansonsten gibts ja das LLVM-Projekt, das neben einer Virtual Machine auch diverse Neuerungen im Optimierungsbereich bringt und ein C++-Frontend - das vom GCC - hat.)

    Undertaker schrieb:

    und wenn's der compiler mal nicht bringt, wird eben nachgeholfen.
    🙂

    Das macht man im heterogenen PC-Umfeld halt doch lieber nicht.



  • ich frag mich grad, ob der vergleich zwischen c++ und c überhaupt angemessen ist, immerhin compiliert der comeau afaik nach C, weshalb man fast jedes C agument auch auf C++ übertragen kann 😉

    oder anders ausgedrückt:

    "C ist schneller als C++"
    "aber der Comeau spuckt denselben C code aus"
    :p



  • otze schrieb:

    "C ist schneller als C++"
    "aber der Comeau spuckt denselben C code aus"
    :p

    Nur weil irgend nen Compiler C++ nach C transformiert, heißt das nicht, dass C und C++ gleich schnell. In der Tat kann (!) man Programme schreiben, die in C auch nicht schneller werden. In der Praxis werden C++ Programme jedoch etwas langsamer sein als vergleichbare C Programme, da man doch einige der Komfortfunktionen (Stichwort Indirektion bei Operatoren etc.) nutzt. Der Vorteil bei C++ liegt eher in der (einigermaßen) komfortablen Umsetzbarkeit von OOP und Möglichkeiten größere Projekte wartungsfreundlicher zu gestalten (Namespaces etc.). In Sachen Entwicklungs-Effizienz kommt es (leider) nicht wirklich an neuere Sprachen/Plattformen ran (was ja auch nicht weiter verwunderlich ist).



  • dsfdfg schrieb:

    Das ist es ja, was ich meine. Nehmen wir mal an, dass ein entsprechender Standard in diesem Bereich fehlt, dann kann man als Firma beim JCP einen Request einreichen und sich an der Standardisierung beteiligen.

    Kannst du auch in C++ machen. Meinst du, man kann nur Java-Libs standardisieren? Meinst du nicht, das es im C++-Bereich ähnlich läuft? Jemand entwickelt eine Library, sie wird in der Community akzeptiert, reicht sie darauf hin beim C++-komitee ein... und schwupps könnte sie im nächsten TR und somit nächsten C++-Standard drin sein, wenn die Mehrheit des Komitees diesen Proposal (entspricht deinem Request) zustimmt.

    Du erzählst der C++-Community nicht wirklich neues und spannendes. 🙄


Anmelden zum Antworten