Was gefällt euch an C++?



  • ganz klar:
    Perfomance, die möglichkeit sowohl low-level wie high-level zu programmierenund das breite einsatzspektrum. (versuch mal mit java eine tolle Graphik-Engine zu Programmieren 😉 ).



  • täusch ich mich oder spicken exceptions den code mit 5byte farjumps auf x86'er systemen? für richtig kleine chips ist c++ zu wuchtig!



  • _-- schrieb:

    täusch ich mich oder spicken exceptions den code mit 5byte farjumps auf x86'er systemen? für richtig kleine chips ist c++ zu wuchtig!

    Den Spruch kannst du noch ein paar Jährchen bringen und dann sind auch Billighandy von den Resourcen dazu in der Lage in C++ programmiert zu werden. Es ist also keine Frage wann C++ auch auf dem letzten Mikrocontroller/Handy/PDA/GPU etc. ankommt, sondern wann.



  • Ganz klar RAII & Destruktoren.
    Ich programmiere zu Hause auch ganz gerne mal C#-Sachen, aber da stört mich immer,
    dass ich nie so genau weiss (auswendig), wann da was 'disposed' werden muss.
    Also wann ich da umständlich einen using-Block/Dispose-Aufruf/try-finally(java) einbauen sollte.



  • nichtsoeinfach schrieb:

    _-- schrieb:

    täusch ich mich oder spicken exceptions den code mit 5byte farjumps auf x86'er systemen? für richtig kleine chips ist c++ zu wuchtig!

    Den Spruch kannst du noch ein paar Jährchen bringen und dann sind auch Billighandy von den Resourcen dazu in der Lage in C++ programmiert zu werden. Es ist also keine Frage wann C++ auch auf dem letzten Mikrocontroller/Handy/PDA/GPU etc. ankommt, sondern wann.

    das os einer ec-karte wird so schnell nicht in c++ entwickelt, da bin ich mir relativ sicher :p



  • Was mir gut gefällt, ist der Teil der "C++-Denke": "Programmiere so, dass der Compiler möglichst alle Fehler finden kann."

    Dieses "Code-Raushusten und dann auf das Testen hoffen", das sich in einigen anderen Programmiersprachen etabliert hat, macht zwar bisweilen Spaß (und macht es Einsteigern erstmal leicher), kostet aber letztlich Zeit und Stabilität (es wird IMMER am Testen gespart - spätestens, wenn es im Projekt eng wird).

    BTW: Das Performanceargument halte ich für überstrapaziert. Ich programmiere nun seit viele Jahren beruflich und die bislang aufgetretenen Performanceprobleme waren marginal im Vergleich zu den Problemen durch schlechtem Projektmanagement und Programmdesign (bisweilen waren sie sogar eine Folge davon). Und wenn Performance ein Problem war, dann lag es nicht an der Sprache, sondern viel eher an schlechter Konfiguration.
    Mir ist lediglich eine Fall bekannt, in dem bei einer ganz speziellen kleinen Komponenten durch den (lokalen) Einsatz von C++ deutliches Tuningpotential gehoben werden konnte.
    Nicht mißverstehen: Natürlich gibt es Situationen, in denen Performance wirklich wichtig ist - aber ich glaube, dass diese sehr viel seltener sind als die Diskussionen/Gedanken/Problematisierungen, die darum gemacht werden.

    Gruß,

    Simon2.



  • _-- schrieb:

    täusch ich mich oder spicken exceptions den code mit 5byte farjumps auf x86'er systemen? für richtig kleine chips ist c++ zu wuchtig!

    Dann nutze doch einfach keine Exceptions. Deswegen musst du doch nicht auf all die anderen tollen Vorteile von C++ verzichten.
    - Referenzen
    - Templates
    - Sichtbarkeit von Bezeichnern
    - Typsicherheit
    - Konstruktoren/Destruktoren

    Bis auf die Konstruktoren und Destruktoren bin ich mir ziemlich sicher, dass dadurch nicht mehr Code entsteht.



  • C++ hat für mich Vorteile und Nachteile. Wobei die Vorteile überwiegen, so das C++ bisher das beste "Paket" ist.

    C++ ist erstmal auf vielen Plattformen verfügbar, auch auf exotischen Systemen, wie Amiga, RISC OS usw. Auch ist es für aktuelle und alte Spielekonsolen verfügbar. Auch auf einem IBM z Mainframe ist ein C++ Compiler verfügbar. Andere Sprachen behaupten Plattformneutral zu sein, aber was nützt mir das, wenn deren Compiler/Interpreter/VM nur auf den Mainstream-Plattformen verfügbar ist?

    Weiterhin kann ich mit C++ nativen Code erzeugen. Ich weiß einfach nicht, warum ich Performance verschenken soll, wenn ich eine Bytecode-Sprache nutze.

    Die Sprache selbst gefällt mir auch sehr gut, auch wenn ich die C-Altlasten in C++ in neuen Projekten für sinnlos halte. Da sie manche Coder zu C-Coding verleiten. Hier würde ich mir einen C-Off-Schalter wünschen. 😉

    C++ ist komplex, sehr komplex! Aber nicht kompliziert! Es hat "Tools" über Spracheigenschaften eingebaut, wo ich in anderen Sprachen erst externe Tools und Libs ran ziehen muß. Weil die anderen Sprachen doch nicht alle Anforderungen in großen Projekten erfüllen können. Wenn ich aber in anderen Sprachen mich mit zus. Tools und Libs und Extensions zudecken muß, macht es diese doch wieder komplex?! Obwohl deren Anspruch immer war, gegen das angeblich zu komplexe C++ anzustinken.

    "Templates in C++ zu komplex? Lassen wir in Java weg!" Was ist in Java 1.5 passiert? "Oh, irgendwie müssen wir so ein Template-Feature einbringen. OK, wir machen so was ähnliches und nennen es Generics. Dann haben wir unsere Ruhe."

    C++ ist einfach nur "ehrlich". Und wenn ich wirklich C++ für das falsche Werkzeug für eine bestimmte Aufgabe halte, kann ich trotzdem eine andere Sprache nutzen.



  • das os einer ec-karte wird so schnell nicht in c++ entwickelt, da bin ich mir relativ sicher

    EC-Karten haben ein OS?

    Was mir gut gefällt, ist der Teil der "C++-Denke": "Programmiere so, dass der Compiler möglichst alle Fehler finden kann."

    In dieser Hinsicht gibt es bessere Sprachen. Haskell, Caml, ...

    C++ ist erstmal auf vielen Plattformen verfügbar, auch auf exotischen Systemen

    Andere Sprachen auch. Solche z.B. die C-Code erzeugen und dann erst in Maschinensprache.

    Weiterhin kann ich mit C++ nativen Code erzeugen. Ich weiß einfach nicht, warum ich Performance verschenken soll, wenn ich eine Bytecode-Sprache nutze.

    Kommt drauf an, welche Bytecodesprache. Meist denken die meisten dabei an Java. Aber es gibt auch andere ...

    Da sie manche Coder zu C-Coding verleiten.

    Ich begruesse die Kompatibilitaet zu C, egal wie viele Anfaenger damit Mist produzieren.

    Also die meisten Argumente sind Scheinargumente. Warum ich dennoch gern in C++ programmiere: Es enthaelt den Ansatz von Klassen und Objekte fuer intuitive Programmgestaltung, zwingt einen aber nicht dazu. Neben Templates steht ein weiterer maechtiger Mechanismus zur Verfuegung. Die Organisation ueber Header- und cpp-Dateien finde ich ansprechend. Der erzeugte Code ist sehr schnell.



  • knivil schrieb:

    das os einer ec-karte wird so schnell nicht in c++ entwickelt, da bin ich mir relativ sicher

    EC-Karten haben ein OS?

    nee, da läuft ein hamster im laufrad 🙄



  • _-- schrieb:

    nee, da läuft ein hamster im laufrad 🙄

    So weit ich das überblicke, ist auf dem EMV-Chip nur ein Prozessor, der rechnet. Ein eigenes OS läuft auf diesen Karten nicht.



  • Das war eine rethorische Frage, ich glaube kaum, dass dort ein Betriebssystem laeuft wie z.B. im Tanenbaum beschrieben. Software vielleicht, aber ein Betriebssystem ...



  • Hab grad weiter geschaut, und SECCOS scheint das zu sein, worauf sich __-- bezieht. Glaub aber auch nicht, dass das wirklich ein OS im engeren Sinne ist.



  • zumindest hats ein filesystem. an die größe des chips natürlich angepasst. wenn die karte kein usb/festplatte/graka hat, braucht man auch keinen 50mb linux kernel installieren. und nicht mal den haben sie mit c++ gemacht 😉



  • Habe auch den Artikel bei heise und und wikipedia gelesen, aber habe sonst nichts weiter dazu gefunden.



  • und nicht mal den haben sie mit c++ gemacht 😉

    Weil Linus Torvalds am C-Hacker Syndrom leidet...

    Ich mag C++ aus folgenden Gründen (keine spezielle Reihenfolge):
    - Konstruktoren/Destruktoren (RAII)
    - Kein Klassenzwang (wie in Java)
    - Sowohl hardwarenah als auch abstrakt
    - Sehr viele gute Bibliotheken
    - Sehr gute IDEs
    - STL und Templates generell



  • C++ Möger schrieb:

    Weil Linus Torvalds am C-Hacker Syndrom leidet...

    zu blöd dass genau dieser "kranke" lead-developer ist 😃



  • __-- schrieb:

    ...

    Ich habe fast das Gefühl, Du willst nur viele Argumente aufbringen, um "irgendwas" gegen C++ zu sagen. Das mach bitte nicht hier.



  • volkard schrieb:

    __-- schrieb:

    ...

    Ich habe fast das Gefühl, Du willst nur viele Argumente aufbringen, um "irgendwas" gegen C++ zu sagen. Das mach bitte nicht hier.

    ich habe seit langem nichts mehr über c++ gesagt. es ist aber kein allheilmittel und ersetzt plötzlich alle anderen programmiersprachen. auch wird nicht in zukunft alles mit c++ entwickelt und genau mit dieser meinung unterscheide ich mich von euch c++-fanboys.

    es muß doch auch mal was jemand gegen diese ganzen lobeshymnen unternehmen die hier im chor angestimmt werden.



  • Ich glaub, ich hab ein Dejá-vu...http://www.c-plusplus.net/forum/276316


Anmelden zum Antworten