Wofür C++ und C?



  • SeppSchrot schrieb:

    Aber für weniger verbreitete Systeme kann ich mir vorstellen, dass eher ein reiner C Compiler zur Verfügung steht. Und selbst der nur mit beschnittener Runtimelib.

    Das stimmt. Die "beschnittene Runtimelib" ist auch sinnvoll und durchaus auch von den Standards unterstützt ("freestanding environments"). Macht ja auch wenig Sinn auf 8-Bittern mit 384 Byte RAM mit dynamischer Speicherverwaltung anzufangen 😉

    (abgesehen davon, dass es recht restriktive Richtlinien gibt die das sogar verbieten -> MISRA C)



  • Um nochmal auf die ursprüngliche Frage nach dem Unterschied zu sprechen zu kommen.

    Viel wichtiger als die Unterscheidung „C++ ist objektorientiert und C ist das nicht“ finde ich etwas ganz anderes. Der Grund ist, dass es neben C++ auch andere objektorientierte Sprachen gibt, die das teilweise auch viel besser machen. C++ hingegen ist die einzige echte multi-paradigmale Sprache, die ich kenne. Im speziellen ist C++ aber eine der wenigen Sprachen, mit denen man wirklich generisch programmieren kann (damit meine ich jetzt das Paradigma der Generischen Programmierung). *Das* ist (zumindest für mich bzw. mein Anwendungsgebiet) der wichtigste Unterschied.



  • Undertaker schrieb:

    Tim schrieb:

    C++ ist wohl eine der geeignetsten Sprachen für wirklich große Projekte und überhaupt eine sehr gute Wahl.

    Tim, du als embedded-spezi kannst das nicht beurteilen 😉
    ...sagt ein bekannter von mir über seine alten C++ projekte, an denen er noch manchmal wartungsarbeiten ausführen muss: 'am besten alles löschen und nochmal neu in *pieeeps* machen'.
    🙂

    Dein Bekannter ist ja auch nicht kompetent.



  • Mr. N schrieb:

    Dein Bekannter ist ja auch nicht kompetent.

    es gibt viele, die was ähnliches behaupten. ...wie z.b. dieser typ: http://www.mistybeach.com/articles/WhyIDontLikeCPlusPlusForLargeProjects.html
    🙂



  • Undertaker schrieb:

    es gibt viele, die was ähnliches behaupten. ...wie z.b. dieser typ: http://www.mistybeach.com/articles/WhyIDontLikeCPlusPlusForLargeProjects.html

    Der sagt aber auch nicht, dass er C vorziehen würde. Im Gegenteil.



  • Undertaker schrieb:

    ...dieser typ: http://www.mistybeach.com/articles/WhyIDontLikeCPlusPlusForLargeProjects.html
    🙂

    "Write a Named Point class with three members: ... a name represented as a 'char *'. "

    🙄
    Was für eine Quatsch-Aufgabe !!

    struct Point {
       float x;
       float y;
       string name;
    

    Erfüllt alle fachlichen Anforderung (Kapselung hat er ja nichtmal gefordert und wäre auch Blödsinn, wenn es keine innere "Invariante" gibt) und ist technisch wasserdicht.
    Wenn also ein Interviewer (der offensichtlich seine C++-Kompetenz überschätzt) mit dämlichen Anforderungen auf inkompetente "Interviewees" trifft (was hat der eigentlich bei seinen tollen "Vorabauswahlverfahren" abgefragt ?), ist das wieder mal ein gutes Beispiel dafür, dass die Meinung von Leuten ohne Ahnung im Internet viel zu viel Resonanz bekommt.

    EDIT: Die Tatsache, dass man von dem seit 6 Jahren nichts Nennenswertes mehr gehört hat, spricht wohl für sich.

    Ist aber vermutlich sowieso nur ein Trollversuch von Undertaker.

    Gruß,

    Simon2.

    BTW: Lies mal, was www.christiananders.de über Java schreibt und widerlege erstmal alle seine Argumente....



  • Undertaker schrieb:

    Mr. N schrieb:

    Dein Bekannter ist ja auch nicht kompetent.

    es gibt viele, die was ähnliches behaupten. ...wie z.b. dieser typ: http://www.mistybeach.com/articles/WhyIDontLikeCPlusPlusForLargeProjects.html
    🙂

    Hach ja, ich vergaß, nicht jeder ist so intelligent wie ich. 🤡

    Im Ernst, das was der schreibt, macht Sinn. Nur gibt es eben auch Leute, die mit der Komplexität klarkommen, und sich mit allem weniger Pontentem der Macht beraubt fühlten.

    Die üblichen Alternativen (gerade die, die du bevorzugst), sind außerdem nicht wirklich besser.



  • Simon2 schrieb:

    Wenn also ein Interviewer (der offensichtlich seine C++-Kompetenz überschätzt) mit dämlichen Anforderungen auf inkompetente "Interviewees" trifft (was hat der eigentlich bei seinen tollen "Vorabauswahlverfahren" abgefragt ?), ist das wieder mal ein gutes Beispiel dafür, dass die Meinung von Leuten ohne Ahnung im Internet viel zu viel Resonanz bekommt.

    100% ACK.

    In einer Sache trifft der Artikel allerdings einen wunden Punkt: C++ gut zu können ist höllisch schwer und es gibt nur sehr wenige, auf die das zutrifft. Aber so ist das halt. Dafür kann man mit C++ eben wirklich Dinge machen, die anderswo so nicht gehen; C++ ist halt ein echtes Profitool.



  • Simon2 schrieb:

    Wenn also ein Interviewer (der offensichtlich seine C++-Kompetenz überschätzt) mit dämlichen Anforderungen auf inkompetente "Interviewees" trifft (was hat der eigentlich bei seinen tollen "Vorabauswahlverfahren" abgefragt ?), ist das wieder mal ein gutes Beispiel dafür, dass die Meinung von Leuten ohne Ahnung im Internet viel zu viel Resonanz bekommt.

    Danke, hast mir einiges erspart zu schreiben 🙂

    Konrad Rudolph schrieb:

    C++ gut zu können ist höllisch schwer ...

    ... aber leicht genug, um so einfachen Sachen, wie in dem Link ausm Weg zu gehen.
    Leider ist es aber immernoch so, das Leute die andere Sprachen können, denken sie könnten sich ein bissl die Syntax von C++ anschauen und wären dann gute C++ Programmierer. Funktioniert zwar bei vielen Sprachen, wenn man schon das "programmiererische" Denken drauf hat, aber eben nicht in C++.



  • KasF schrieb:

    Leider ist es aber immernoch so, das Leute die andere Sprachen können, denken sie könnten sich ein bissl die Syntax von C++ anschauen und wären dann gute C++ Programmierer. Funktioniert zwar bei vielen Sprachen, wenn man schon das "programmiererische" Denken drauf hat, aber eben nicht in C++.

    "Funktionieren" tut das grdsl. auch bei C++, nur mit dem Problem dass die Leute oftmals 1:1 umdenken und es sich so unnötig schwer machen. Dadurch wird das C++-Projekt unnötig komplex und diese Leute sehen ihr "Argument" vollstens erfüllt.

    Ein schönes Beispiel dafür ist die Xerces-C++ Bibliothek, eine beinahe 1:1 Umsetzung der Xerces Bibliothek (Java), wo mit Zeigern nur so um sich geworfen wird.



  • Bashar schrieb:

    Undertaker schrieb:

    es gibt viele, die was ähnliches behaupten. ...wie z.b. dieser typ: http://www.mistybeach.com/articles/WhyIDontLikeCPlusPlusForLargeProjects.html

    Der sagt aber auch nicht, dass er C vorziehen würde. Im Gegenteil.

    darum geht's ja auch nicht. ich bezog mich auf Tim's aussage, dass 'C++ für wirklich grosse projekte geeignet sei' und das hat Tim sicher nur scherzhaft gemeint.

    Simon2 schrieb:

    "Write a Named Point class with three members: ... a name represented as a 'char *'. "

    🙄
    Was für eine Quatsch-Aufgabe !!

    struct Point {
       float x;
       float y;
       string name;
    

    Erfüllt alle fachlichen Anforderung...

    und wo ist dein char* ?

    Konrad Rudolph schrieb:

    In einer Sache trifft der Artikel allerdings einen wunden Punkt: C++ gut zu können ist höllisch schwer und es gibt nur sehr wenige, auf die das zutrifft.

    richtig, deshalb ist es ja auch ziemlich ungeeignet für grosse projekte, an denen viele leute mitwerkeln. allein das zusammenstellen einer mannschaft aus 100%igen könnern (etwas anderes ist für ein grosses C++ projekt nicht akzeptabel) wird schon sehr schwierig sein.

    Konrad Rudolph schrieb:

    Dafür kann man mit C++ eben wirklich Dinge machen, die anderswo so nicht gehen;

    und das wäre?
    🙂



  • Dog, langsam weiß ich, wieso Du CStoll auf den Keks gehst.



  • Undertaker schrieb:

    ...

    Simon2 schrieb:

    "Write a Named Point class with three members: ... a name represented as a 'char *'. "

    🙄
    Was für eine Quatsch-Aufgabe !!

    struct Point {
       float x;
       float y;
       string name;
    

    Erfüllt alle fachlichen Anforderung...

    und wo ist dein char* ?...

    "char*" ist mitnichten eine fachliche Anforderung !
    Allein dass der Interviewer dieses nicht erkennt, disqualifiziert ihn schonmal.
    ("float" hat da auch nichts verloren) Wenn Du das auch nicht erkennst, bringst Du Dich in gefährliche Nähe zu ihm ....

    Und selbst wenn er mir als "technische Anforderung" mitgäbe, der "Name sei als char* zu implementieren" hätte ich einiges an Rückfragen an ihn, würde ihn auch die gravierenden Nachteile dieser Entscheidung hinweisen und würde es intern (und da könnte Kapselung ins Spiel kommen) sowieso via string lösen....

    Gruß,

    Simon2.



  • Undertaker schrieb:

    Simon2 schrieb:

    "Write a Named Point class with three members: ... a name represented as a 'char *'. "

    🙄
    Was für eine Quatsch-Aufgabe !!

    struct Point {
       float x;
       float y;
       string name;
    

    Erfüllt alle fachlichen Anforderung...

    und wo ist dein char* ?

    Das ist keine fachliche Anforderung.



  • Simon2 schrieb:

    "char*" ist mitnichten eine fachliche Anforderung !
    Allein dass der Interviewer dieses nicht erkennt, disqualifiziert ihn schonmal.
    ("float" hat da auch nichts verloren) Wenn Du das auch nicht erkennst, bringst Du Dich in gefährliche Nähe zu ihm ....
    Und selbst wenn er mir als "technische Anforderung" mitgäbe, der "Name sei als char* zu implementieren" hätte ich einiges an Rückfragen an ihn, würde ihn auch die gravierenden Nachteile dieser Entscheidung hinweisen....

    wahrscheinlich hätte er sich dann gefreut, jemanden gefunden zu haben, der mitdenken kann und du hättest den test bestanden, ohne eine zeile code schreiben zu müssen.
    🙂



  • Undertaker schrieb:

    ...
    wahrscheinlich hätte er sich dann gefreut, jemanden gefunden zu haben, der mitdenken kann und du hättest den test bestanden, ohne eine zeile code schreiben zu müssen.
    🙂

    Aber wie könnte er dann der Sprache C++ einen "Strick daraus drehen" wollen ?
    (zumal ihn nur der (für ihn glückliche) "Sonderfall String" im von ihm heißgeliebten Java davor bewahrt, denselben "Fehler" (Kapselungsbruch) zu begehen - bei allen Objekttypen hätte er vermutlich anstandslos dasselbe gemacht...)
    Nenene, das glaube ich mal nicht.

    Gruß,

    Simon2.



  • c_str()



  • (nix)



  • Simon2 schrieb:

    Aber wie könnte er dann der Sprache C++ einen "Strick daraus drehen" wollen ?

    er wollte doch nur zeigen, welche fiesen fehler durchschnittlichen codern mit C++ passieren können, sogar bei so einer leichten aufgabe. ich glaube, die meisten regelmässigen boarduser hier hätten das besser hingekriegt, aber ihr seid nicht repräsentativ für die millionen C++ -benutzer, die sich tagtäglich übelste bugs basteln, nur weil sie irgendwelche feinheiten der sprache nicht beachten oder nicht kennen.
    🙂



  • Undertaker schrieb:

    Bashar schrieb:

    Undertaker schrieb:

    es gibt viele, die was ähnliches behaupten. ...wie z.b. dieser typ: http://www.mistybeach.com/articles/WhyIDontLikeCPlusPlusForLargeProjects.html

    Der sagt aber auch nicht, dass er C vorziehen würde. Im Gegenteil.

    darum geht's ja auch nicht. ich bezog mich auf Tim's aussage, dass 'C++ für wirklich grosse projekte geeignet sei' und das hat Tim sicher nur scherzhaft gemeint.

    Ich habe das nicht scherzhaft gemeint. Wie kommst du darauf?


Anmelden zum Antworten