Warum hat C++ so eine aufwendige Syntax?



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



  • Mr. N schrieb:

    Undertaker schrieb:

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

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

    na, was glaubst du, was da für haarsträubende sachen gebastelt werden 😉

    otze schrieb:

    ich frag mich grad, ob der vergleich zwischen c++ und c überhaupt angemessen ist,

    ja, das ist nicht einfach. die meisten glauben ja, dass C++ einfach nur 'das besserere C' wäre, aber dem ist nicht so.
    C verfolgt dieses, aus der unix-welt (und da kommt es ja auch her) bekannte 'keep-it-small-and-simple' prinzip. d.h. C ist klar strukturiert und überschaubar (wenn man mal von der syntax absieht, die einsteigern ganz schön kopfzerbrechen bereiten kann). C ist ein einfaches, schnörkel- und kompromissloses werkzeug. mit etwas übung weiss man, was man damit machen kann und für was man lieber etwas anderes nehmen sollte. habt ihr schon mal einen C gegen Java flamewar gesehen? ich nicht.
    C++ dagegen versucht mit 'multi-paradigmen' (wie ich diesen begriff hasse 👎 ) und auf 'schweizer-offiziersmesser-basis' dem user möglichst viele möglichkeiten zu bieten. man hat für alles mindestens 10 verschiedene tricks auf lager, man kann OOP mit prozerural bedenkenlos mischen, sämtliche schutzmechanismen aushebeln, 20 verschiedene smart-pointer für jede gelegenheit, shift-operatoren als stream-I/O, trotz vieler balabla_cast<> einen verkrüppelten void*, teilweise C-kompatibilität usw. sowas hört sich zwar gut an (viel hilft viel :D), erfordert aber eine unglaubliche disziplin und verdammt viel wissen vom programmierer, damit er damit keinen quatsch baut und sein projekt in den abgrund stürzt.
    der grundgedanke, C sinnvoll zu erweitern, ist meiner ansicht nach, mit C++ komplett gescheitert. leider hat C++ zu seiner blütezeit einen hype erlebt, was zu einer grossen verbreitung führte, so dass C++ heute noch teilweise sehr oft genutzt wird (wie wir ja alle wissen 😉 ).
    es gibt bessere ansätze C zu erweitern, wie etwa Objective-C.
    und wenn C++ auch nur ansatzweise das zeug dazu hätte, in absehbarer zeit etwas sinnvolles zu werden, dann wären sprachen wie Java und C# nie erfunden worden...
    (ja, ich weiss, das war jetzt wieder zu polemisch, aber ihr kennt mich ja)
    🙂



  • Artchi schrieb:

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

    ich glaub du verstehst den JCP nich so ganz kann das sein?

    ps: @Undertaker: dein neuer nickname is voll leed jetz find ich besser als pale dog *checker handbewegung mach*



  • aszf schrieb:

    ps: @Undertaker: dein neuer nickname is voll leed jetz find ich besser als pale dog *checker handbewegung mach*

    danke, der nächste ist schon in bearbeitung 😉


Anmelden zum Antworten