c++ und die zukunft



  • ich programmier jetz schon seit einiger zeit c++ und meine, dass ich mich gut auskenn. leider stoß ich in letzter zeit immer wieder auf eigenartige eigenschaften von c++, die ich echt nicht versteh (und nein, ich bin nicht zu dumm dafür.)

    wird die sprache noch aktiv weiterentwickelt oder gilt sie als perfekt? ich hoffe nicht, da viele sachen echt noch verbessert werden sollten. vor allem bei templates, bei der typ konvertierung oder beim überladen von operatoren könnte nachgebessert werden.

    wie ist da eure meinung? stimmt ihr mir zu, oder meint ihr, dass es schon gut ist, wie es ist? oder interessieren euch solche fragen gar nicht?



  • wird die sprache noch aktiv weiterentwickelt

    ja



  • An dem neuen Standard C++0x wird schon fleißig gearbeitet.

    http://std.dkuug.dk/jtc1/sc22/wg21/docs/papers/



  • Hem, also ich arbeite beruflich mind. 8 Std. täglich mit Java und im Vergleich zu C++, hat eher Java noch viel zu lernen. Ich stosse immer in Java an Design-Grenzen, wo ich in C++ wirklich ein viel besseres Design haben könnte.

    Insofern halte ich C++ schon für seeehr mächtig. Noch mehr Features sind natürlich nie verkehrt, aber man hat schon so sehr viel in C++ zu lernen.

    Aber an deiner Kritik an C++ muß ich eher interpretieren, das du mit der Syntax unzufrieden bist? Du willst eigentlich nicht mehr Features haben. Du hast ja bereits vorhandene Features kritisiert. Mich würde interessieren, was ist daran noch nicht "rund"?

    Meiner Meinung nach, kann man solche Features nur durch kryptisierung in die Sprache reinbringen. Klar, Templates, Operatoren usw. sehen "kryptisch" aus. Aber wie soll man sowas sonst lösen, wenn nicht mit viel Klartext? Aber wer will denn noch mehr Klartext für noch mehr Features?



  • Artchi schrieb:

    Hem, also ich arbeite beruflich mind. 8 Std. täglich mit Java und im Vergleich zu C++, hat eher Java noch viel zu lernen. Ich stosse immer in Java an Design-Grenzen, wo ich in C++ wirklich ein viel besseres Design haben könnte.

    So sehr ich deine Meinung teile, aber hier geht es aber nicht um Java 😉 .



  • MaSTaH hat recht. es geht mir eben nicht um einen vergleich von java und c++. und es geht mir auch nicht darum, neue features in die sprache einzubauen, sondern die existierenden zu verbessern.

    ein beispiel ist das überladen der typkonvertierungsoperatoren. also zb: operator bool(void) { ... }. hier wär es vielleicht praktisch ebenso ein explicit zu erlauben, wie bei den konstruktoren. damit würde es immer noch möglich sein, klassen explizit per static_cast umzuwandeln, was wohl intuitiver ist als eine eigene methode dafür, eine implizite typkonvertierung wäre damit aber verhindert.

    und das zweite ist mir auch schon öfters passiert. man könnte von einem smart pointer template ausgehen, für das der operator == zwei mal überladen wurde: einmal um mit einer anderen instanz des smart pointers zu vergleichen und einmal mit einen normalen pointer. außerdem wurde noch ein operator zur typ konvertierung überladen, der dann einen normalen pointer aus dem smart pointer machen sollte. ein beispiel:

    smart<int> a;
    smart<int> b;
    if(a == b) { blabla; }
    

    nun fällt es dem compiler ein, dass er a und b zuerst umwandelt mit dem typkonvertierungsoperator und dann die normalen pointer mit seinem buildin operator vergleicht, obwohl ich, als programmierer, ihm angegeben hab, dass er die pointer mit dem überladenen operator== für zwei smart pointer vergleichen soll. das ist für mich unlogisch. es sollte immer das verwendet werden, was am besten passt. und eine zweimalige konversion plus einmal builtin vergleich passen wohl weniger als ein überladener operator==. sollte der überladene operator== so große nachteile verursachen, sollte maximal eine warnung ausgegeben werden. aber immer noch die funktion des programmierers verwendet werden. immerhin hat er sie ja nicht zum spass geschrieben, sondern damit sie verwendet wird. ich hoff es war klar genug beschrieben, was ich mein.



  • MaSTaH schrieb:

    Artchi schrieb:

    Hem, also ich arbeite beruflich mind. 8 Std. täglich mit Java und im Vergleich zu C++, hat eher Java noch viel zu lernen. Ich stosse immer in Java an Design-Grenzen, wo ich in C++ wirklich ein viel besseres Design haben könnte.

    So sehr ich deine Meinung teile, aber hier geht es aber nicht um Java 😉 .

    Aber ich wollte damit nur deutlich machen, das andere Sprachen (die so gehyped werden) immer noch C++ hinterher hinken. Und somit users123s Kritik etwas entschärfen. Weil verbessern kann man immer etwas, perfektionieren geht in der Software-Welt eigentlich nicht. 🙄



  • es sollte immer das verwendet werden, was am besten passt

    Genau das passiert auch. Wenn du zwei SmartPtr hast und einen op==, der zwei SmartPtr aktzeptiert, dann wird dieser op auch aufgerufen. Eine Konvertierung in normale Pointer findet nicht statt.
    Kann es sein, dass du hier etwas verwechselst? Oder habe ich den Text jetzt missverstanden?



  • Gibt es eine höhere Programmiersprache die mehr bietet als C++ ????
    VB - Nein
    Java - Nein
    C# - Nein



  • user123 schrieb:

    ich programmier jetz schon seit einiger zeit c++ und meine, dass ich mich gut auskenn.

    ich auch.

    leider stoß ich in letzter zeit immer wieder auf eigenartige eigenschaften von c++, die ich echt nicht versteh (und nein, ich bin nicht zu dumm dafür.)

    ich auch.

    wird die sprache noch aktiv weiterentwickelt

    faktisch nein.

    oder gilt sie als perfekt?

    sicher nicht. sonst würden nicht blüten wie php oder java treiben.

    ich hoffe nicht, da viele sachen echt noch verbessert werden sollten.

    jo, da muß noch irgendwas verbessert werden.

    vor allem bei templates,

    jo. echte compilezeitprogrammierung.

    bei der typ konvertierung

    jo. implizite casts alle weg.

    oder beim überladen von operatoren könnte nachgebessert werden.

    jo. endlich whitespace overloading.

    wie ist da eure meinung? stimmt ihr mir zu, oder meint ihr, dass es schon gut ist, wie es ist?

    es fehlt noch viel. und viel muß weg. aber so schlimm wie c++ auch sein mag, es gibt zur zeit keine bessere.


Anmelden zum Antworten