Was gefällt euch an C++?



  • Kurz: Ich bin ernsthaft daran interessiert. Unterstellungen sind verwerflich, auch wenn sie als solche gekennzeichnet sind. Zu meinen Beitraegen, einfach nur plain text .

    inwieweit ich für deine persönliche Bildung zuständig sein solle

    Also ich kann auch unqualifiziert, arrogant und pampig reagieren, wenn du von einem Link auf Bildung im Allgemeinen anspielst.



  • Ganz nice an C++ ist doch, dass man durchaus sehr high-level programmieren kann, zwar mit hässlicher Syntax und bei Templates auch mit gruseligen Fehlermeldungen. Aber es geht, und man kann sich dann trotz des high-level style sehr genau vorstellen, was der Compiler daraus macht. Es ist leicht, im Geiste etwas C++ in C-Äquivalent und von dort in Assembly zu übersetzen.

    Man hat also so die ganze Bandbreite von low-level bis high-level, und ein Verständnis von oben bis unten. Das ist schon sehr cool.



  • kinderkinder schrieb:

    ...hört doch mal auf und bleibt beim Thema ihr ...

    Genau das versuche ich die ganze Zeit.
    Allerdings habe ich bislang von knivil noch keine Aussage zu diesem Thema gehört.

    knivil schrieb:

    ...Unterstellungen sind verwerflich, ...

    🙄
    Gefährlich ist, dass du offensichtlich gar nicht merkst, mit welchen Unterstellungen du arbeitest. ("Unterstellung" bedeutet lediglich, dass man die Lücke zwischen a) dem, was man tatsächlich über den anderen weiß und b) dem, was man wissen müsste, um ihn zu verstehen, aus seinem persönlichen Erfahrungsschatz füllt/interpoliert. Wer das nicht täte, wäre kommunikationsunfähig - erst Recht in einem derart reduzierte Medium wie dem Internet). Wie schon gesagt: Gib mehr Informationen über deine Intention/Ansätze/Gedanken - das reduziert dann die Notwendigkeit der Eigeninterpretation.

    Nochmal: Was gefällt dir an C++?

    Gruß,

    Simon2.



  • ... ich gebe es auf ...



  • knivil schrieb:

    ... ich gebe es auf ...

    Du hast mein Beileid!



  • An C++ gefallen mir zwar einzelne Konzepte, aber die Summe mißfällt mir.



  • Tim schrieb:

    An C++ gefallen mir zwar einzelne Konzepte, aber die Summe mißfällt mir.

    Das kann man doch sicherlich noch soweit ausführen, dass man deine Bedenken nachvollziehen kann?
    Auch werfe ich mal die Frage in den Raum, warum man C programmieren soll, wenn man C++ programmieren kann? Fast alles was ich mit C machen kann, kann ich auch mit C++ realisieren. Nur habe ich bei C++ zusätzlich noch die C++-Features. Warum sollte man sich sich also künstlich beschränken? Als Argument hört man oft lediglich den größeren Code, was aber selbst auf zeitgemäßen ARM-basierten Microcontrollern kein großes Hindernis mehr ist. Und dann gibt es ja noch den schon angesprochenen Trick, einfach keine Exceptions zu nutzen. Ich finde jedes einzelne Feature für sich, Typsicherheit, Templates, Namespaces, Referenzen, ist schon ein Mehrwert, der klar für C++ spricht. Selbst in der Hardwarenahenprogrammierung kann man schöner mit C++ programmieren.



  • Die C++-Runtime scheint größer zu sein (habs noch nie genau angeschaut, interessiert mich nicht :P)
    Die ABI von C++ ist nicht standardisiert. Man kann mit C eine DLL erstellen, die in ein anderes Projekt einbinden, und dabei auch einen komplett anderen Compiler verwenden. Bei C++ geht das so nicht, da gehört viel Glück dazu. Das name-mangling trägt seinen Teil dazu bei.



  • l'abra d'or schrieb:

    ...
    Die ABI von C++ ist nicht standardisiert. Man kann mit C eine DLL erstellen, die in ein anderes Projekt einbinden, und dabei auch einen komplett anderen Compiler verwenden....

    (Ich bin da kein Oberchecker, kann also mangelhafte Information meinerseits sein, aber:) Das höre ich zum ersten Mal.
    Ich habe in Erinnerung, dass auch in C erstellte DLLs compilerabhängig sind. Auf jeden Fall erinnere ich mich noch an meine Linux-Experimente und die Last mit den zig verschiedenen Compilerversionsabhängigen Libs....

    Nicht mißverstehen: Mich stört der Mangel an einer ABI auch sehr! (aber eben nicht nur an C++)

    Gruß,

    Simon2.


  • Mod

    Simon2 schrieb:

    Ich habe in Erinnerung, dass auch in C erstellte DLLs compilerabhängig sind. Auf jeden Fall erinnere ich mich noch an meine Linux-Experimente und die Last mit den zig verschiedenen Compilerversionsabhängigen Libs....

    Das dürfte eigentlich nicht so sein. Waren da eventuell auch C++ Module beteiligt?



  • @l'abra d'or

    extern "C" dürfte hier das Zauberwort sein.

    Was auch noch interessant ist, ist die http://en.wikipedia.org/wiki/Calling_convention . Damit dürfte aber auch schon alle möglichen Probleme erschlagen sein.



  • Das man C++DLLs nicht Compiler-übergreifend nutzen kann, ist nicht ganz richtig. Denn die ActiveX Komponenten von Windows lassen sich wunderbar sowohl vom MSC als auch G++ nutzen.
    Erst wenn man der DLL nicht mehr das Objektmanagement überlässt, wird es echt schwierig, weil dann die Runtime auf beiden Seiten unterschiedlich ist. Aber dafür gibt es ja Lösungen: man gibt als DLL dem Anwender einfach ein Smartpointer zurück und die Runtime der DLL hat weiter die Hoheit über das zurück gegebene Objekt.

    Letztendlich ist doch C++ nur eine Sprache und keine Platform. Das vergessen einige, wenn sie über ABI-Inkompatibilität schreiben. Aber die Plattform ist in dem Fall eben das Betriebssystem! Und dieses bietet mir unter Windows eben DLL, COM+ und ActiveX an um kompatibel zu bleiben.



  • Tim schrieb:

    An C++ gefallen mir zwar einzelne Konzepte, aber die Summe mißfällt mir.

    An C++ mißfallen mir zwar einzelne Konzepte, aber die Summe gefällt mir.



  • SeppJ schrieb:

    Simon2 schrieb:

    Ich habe in Erinnerung, dass auch in C erstellte DLLs compilerabhängig sind. Auf jeden Fall erinnere ich mich noch an meine Linux-Experimente und die Last mit den zig verschiedenen Compilerversionsabhängigen Libs....

    Das dürfte eigentlich nicht so sein. Waren da eventuell auch C++ Module beteiligt?

    Das habe ich nicht analysiert, weil es nicht meine eigene Anwendungen waren (ich habe das Linuxsystem nur administriert) - und wie gesagt: habe ich vielleicht falsch in Erinnerung oder falsch verstanden (UND es war von 1999 - vllt. hat der C99 da noch was Neues gebracht).

    Aber das wäre auf jeden Fall sehr spannend!!

    Gruß,

    Simon2.


Anmelden zum Antworten