Nächster C++ Standard in 2009?



  • Artchi schrieb:

    Nur muß man dann natürlich wirklich komplett auf eine GUI-API verzichten, es muß halt so eine Engine sein die nur die XML-GUI liest und unter jedem OS die GUI zaubert.

    Eine reine XML-Gui wird dir aber absolut nichts weiterhelfen, denn irgendwie musst du doch wieder auf die einzelnen Komponenten
    zugreifen können. Ansonsten würde es mit Ausgaben an den Benutzer nur sehr spärlich aussehen, man scheitert doch bereits
    an dem bloßen Anzeigen einer MessageBox. Bzw. ein anderes Beispiel ist das Hinzufügen von Komponenten zur Laufzeit.

    Die Idee ansich ist ja ganz nett, allerdings ist so eine XML-Gui höchstens ein Aufsatz auf eine bestehende API.



  • Im Model View Konzept greif ich nicht auf die Komponenten zu, das sollte mittlerweile bekannt sein? Machen wir in unseren Java-Anwendungen zumindest nicht. Um einen Dialog (z.B. ja/nein-Frage) anzuzeigen, lade ich einfach eine entsprechende XML-Datei (ich nenn das jetzt einfach mal so) die angezeigt wird. Was technisch dabei in der Engine raus kommt, ist mir eigentlich egal, hauptsache sie erfüllt fachlich ihren Zweck.

    Das letztendlich irgendwo irgendwie eine GUI-API (WindowsForms, GTK, X-Window etc.) benutzt wird, ist klar. Aber das ist ja auch nicht das Problem. Denn es geht ja nicht darum die APIs von Windows, MacOS oder KDE zu ersetzen! Es geht nur um einen Wrapper, wie es auch mit z.B. boost::thread der Fall ist. boost::thread benutzt auch nur die Windows-Threads oder unter Unix halt pthread. Aber mir als C++ler ist es egal was technisch am Ende raus kommt. Genau das gleiche soll hier mit der GUI passieren.



  • Der XML Ansatz ist für allgemeine GUIs nicht schlecht. GUIs lassen sich recht fix zusammen basteln und können denoch sehr flexibel an Kundenwünsche angepasste werden. Hier ist ein XML basierter Ansatz klar im Vorteil.

    Allerdings bei spezielleren GUIs. Zum Beispiel ein Codeeditor. Ein Syntaxhighlighter der sich einer C++ Funktion bedient um die einzeln Passagen zu markiren könnte ich mir ja noch in XML vorstellen. Allerdings spätestens bei der Autovervollständigung wirst du dafür kein Widget ab Stange mehr haben. Hier muss man das Widget erste schreiben. Man kann nachher natürlich XML benutzen um es in die GUI einzufügen allerdings man kann keine Widgets in XML anpassen.



  • Ben04 schrieb:

    (Ein Toasterprogram braucht keine GUI auch wenn man einen Computer mit Bildschirm in einen Toaster bauen kann).

    Selbst der neueste Tchibo-Toaster hat ein Display... *schauder* Ich dachte, da steht ein UFO in der Küche 😞



  • omfg. Es gibt wirklich immer weniger Zeug, was man einfach anschaltet und funktioniert. Wenigstens gehört meine Kaffeemaschine noch dazu.



  • Optimizer schrieb:

    omfg. Es gibt wirklich immer weniger Zeug, was man einfach anschaltet und funktioniert. Wenigstens gehört meine Kaffeemaschine noch dazu.

    Huch, die diversen Geräte, die ich kenne, also so etwas ähnliches wie http://www.eshoppen.de/shop/images/artikel/Cloer_Kaffeemaschine_5021.jpg sind alle sehr fehlerbehaftet und hochkompliziert in der Anwendung.

    Fehler 1:
    Wasser in Kanne, Pulver in Filter (-> in Haltevorrichtung), Kanne wird, ohne sie sachgerecht in den Wasserbauch der Maschine zu kippen, auf die Wärmestelle gestellt, Kaffeemaschine anschalten. Konsequenz: Wasser wird lauwarm.

    Fehler 2:
    Wasser in Kanne, Pulver in Filter (-> in Haltevorrichtung), Kanne in Wasserbauch entleeren, Kanne nochmal mit Wasser befüllen, Kanne auf Wärmstelle platzieren, Kaffeemaschine anschalten. Konsequenz: Kräftiger Kaffeegeruch in Küche, Sauerei in der Nähe der Kaffeemaschine; der Kaffee in der Kanne bleibt allerdings eher dünn.

    Fehler 3:
    Wasser in Kanne, Kanne in Wasserbauch entleeren, Kanne auf Wärmstelle platzieren. Konsequenz: Vergessen Kaffeefilter und -pulver zu tauschen. Sehr umweltfreundlich, Kaffee schmeckt aber eher dünn.

    Einmal habe ich auch gedankenverloren die volle Kaffeekanne nochmal unter den Wasserhahn gehalten. Den Filter einfach ganz zu vergessen ist dagegen eher normal (Konsequenz: Wasser wird heiß).

    <eidesstattlich> Alle diese Vorfälle haben sich tatsächlich durch mich oder in meiner Gegenwart ereignet </eidesstattlich>

    Vielleicht sind das zwar eher Fälle für menschliches Versagen, aber nur so viel zu der These, eine Kaffeemaschine "macht man an und sie funktioniert".



  • Daniel E. schrieb:

    <eidesstattlich> Alle diese Vorfälle haben sich tatsächlich durch mich oder in meiner Gegenwart ereignet </eidesstattlich>

    deswegen gibt es sekretärinnen, die können das viel besser als wir.

    einen elegantern ausweg sah ich mal in frankfurt in nem unternehmen. chef kaufte kaffemaschine für 1200DM, wo man nur auf einen knopf drücken mußte und fertiger kaffe kam raus. das einzige, was noch an warung anfiel war, hin und wieder frischen kaffe einzufüllen und alten kaffe wegzuwerfen. und ich habe keine ahnung, wer das machte.

    ich nehme auch ein wenig an, daß diese mega-maschine den zweck hatte, die leute davon abzuhalten, immer so lange in der kaffeküche zu verschwinden, aber naja, da ich lieber programmiere als kaffe koche, fand ich die maschine großartig.



  • Schlimm sind diese Espresso-Teile, wo man für jede halbe Tasse ein teures Tab in die Maschine schiebt und verbraucht. Ich vermute immer noch, dass das der Grund ist, warum die Firma, bei der ich Praktikum gemacht habe, pleite gegangen ist. Naja amsonsten ist es wohl meine Schuld. 😉



  • hab ich was verpasst? wird die programmiersprache C++ nun auf C++0x umbenannt oder heisst der neue standard dann einfach C++0x wie er heute IEC:14882 heisst?

    😕 😕



  • Hm, vergesst den Standard, falls der je erscheint, wird er das
    reflektieren was man jetzt bräuchte, aber nicht das was
    man 201x braucht, er wird genauso veraltet sein, wie er jetzt schon ist.
    Es gibt ja jetzt schon genug Libraries die den Standard wunderbar ergänzen,
    und ich brauche da keinen Guru der dann sagt "Boost ist jetzt auch Standard".
    Im übrigen für Unicode gibts auch schon Libs, oder man geht gleich zu
    den alles - in - einer - Library - Lösungen wie QT, GTKmm oder wxWidgets.

    phlox



  • volkard schrieb:

    einen elegantern ausweg sah ich mal in frankfurt in nem unternehmen. chef kaufte kaffemaschine für 1200DM, wo man nur auf einen knopf drücken mußte und fertiger kaffe kam raus. das einzige, was noch an warung anfiel war, hin und wieder frischen kaffe einzufüllen und alten kaffe wegzuwerfen. und ich habe keine ahnung, wer das machte.

    Ja, das ist prima. So ein Teil steht in der Firma, in der ich gelgegentlich arbeite, auf jeder Etage. Sehr praktisch. Nachfüllen wird vom Kantinen-Personal gemacht. Nur manchmal muß man den Trester leeren... da wird dann immer ausprobiert, wie lange die Maschine trotz Warnung doch noch Kaffee produziert. 😃



  • @phlox
    C++ arbeitet nach einem anderen Ansatz, als .NET oder Java. Auch 09 werden die nicht alles drin haben, was man für die C++ Programmierung braucht. Aber C++ wollte auch nie alles abdecken (oder willst du mir erzählen, dass die 98 nicht mit dem Erfolg von grafischen GUIs gerechnet hätten).

    huh? schrieb:

    hab ich was verpasst? wird die programmiersprache C++ nun auf C++0x umbenannt oder heisst der neue standard dann einfach C++0x wie er heute IEC:14882 heisst?

    😕 😕

    Nein, C++ wird weiter C++ heißen. Das man das Jahr an die Programmiersprache hängt, um den Unterschied zwischen den Standards deutlich zu machen ist schon älter. Siehe Algol68 oä. Der Standard wird natürlich auch eine eigene ISO/IEC Nummer bekommen. C++09 (wenn er denn 2009 kommt), ist dann die umgangssprachliche Bezeichnung



  • C++ will nicht anders sein als Java oder .NET. Lies mal die Wunschliste des C++ Kommittees durch. Selbst Bjarne Stroustrup hat offiziell einen Eintrag getätigt, in dem er sich endlich für den C++ Standard eine GUI-Lib wünscht. Gleichzeitig sagt er aber, das der einzige Hacken zur Zeit ist, das man keine allgemeingültige GUI-Lib designen kann, die allen Platformen gerecht wird. Weil das nur wieder der kleinste gemeinsame Nenner werden würde. Und nicht weil C++ auch auf einem Toaster laufen können soll, wie viele immer behaupten. Es ist also einfach nur ein Problem, es nicht jedem Recht machen zu können, da GUIs auf jeder Platform verschiedene Features haben.



  • Das mit der GUI Lib ist doch einfach illusorisch. Natürlich würde das C++ Komitee gerne alles anbieten. Aber du sagst ja selbst, dass die wissen, dass dies nicht funktioniert.

    C++ ist eben doch anders als Java oder .NET. Java und .NET haben zB. viel freiere Update Zyklen. Da ist es leichter zu reagieren und die libraries oder Sprache anzupassen (siehe .NET 2.0). C++ hat das eben nicht, stellt einem dafür aber ein solides Grundgerüst zur Verfügung. Wer mehr will, kauft sich eben ein Framework ala QT oä.



  • Die Update-Fähigkeit hat ja wohl as Kommittee mit den TRs eingeführt. TR1 ist fertig definiert, wird wohl auch in der nächsten VC++ Version rein kommen, wenn ich die VC++-Produktchefin von MS nicht falsch verstanden habe.

    Dann kommt 2009 der C++09 wohl raus. Und danach soll der TR2 rauskommen, für den bis Okt. 2006 Vorschläge angenommen werden.

    D.h. die TRs werden zukünftig die Library-Updates darstellen, unabhängig von neuen C++-Standard-Releases.



  • Die Frage ist, ob das überhaupt gut ist so wie Java und C# werden zu wollen. Dann kann ich ja gleich Java oder C# nehmen...

    MfG SideWinder



  • Eben. Wenn C++ auf den gleichen Zug wie Java und C# aufspringen möchte nur mit 10 Jahren Versatz, dann gibt es keinen Grund mehr C++ zu benutzen.



  • Mag sein, aber ein bisschen weniger minimalismus wäre schon schön. Ich finde es einfach blöd, für alles was außerhalb von I/O, Containern und Standardalgorithmen liegt, ne extra lib nehmen zu müssen, auch wenn boost sehr viel abdeckt. Deshalb muss man ja nicht gleich wie Java oder C# werden.



  • C# und Java sind eindeutig für den Plattform-Markt ausgelegt, TCP/IP-Sockets machen Sinn.

    C++ hingegen hat für mich immer den Vorteil gehabt viel breiter zu sein. Warum also gerade TCP/IP-Sockets, nein wenn dann protokollunabhängige Sockets. Das wiederrum führt zu einer zu aufgeblähten Library die dann erst recht nieamnd mehr benutzen will wenn er nur TCP/IP benötigt. Letzten Endes landet man wieder wo man vorher war.

    MfG SideWinder



  • Walli schrieb:

    Eben. Wenn C++ auf den gleichen Zug wie Java und C# aufspringen möchte nur mit 10 Jahren Versatz, dann gibt es keinen Grund mehr C++ zu benutzen.

    Das hört sich ja fast so an, als ob das Fehlen von vielen Dingen in der Standardbibliothek ein Pluspunkt für C++ ist. "Ein Grund, warum man C++ nutzt". Das muss man doch andersherum sehen. IMHO ist das momentan ein Grund, C++ nicht zu nutzen. Wenn C++ das beheben würde, dann würde es gegenüber .NET oder auch Java eine Schwachstelle beheben. ...und da sage ich "Besser spät als nie".

    Artchi schrieb:

    Gleichzeitig sagt er aber, das der einzige Hacken zur Zeit ist, das man keine allgemeingültige GUI-Lib designen kann, die allen Platformen gerecht wird. Weil das nur wieder der kleinste gemeinsame Nenner werden würde. Und nicht weil C++ auch auf einem Toaster laufen können soll, wie viele immer behaupten.

    Genau das ist das Toaster-Argument. Man will allen Plattformen gerecht werden und nur das Minimum aller Plattformen als Grundlage für die Standardbibliothek nehmen.

    Wenn eine Plattform für die GUI eine Komponente oder so nicht anbietet, könnte man doch einfach von der jeweiligen Realisierung der Standardbibliothek verlangen, dass die das selbst macht. Wer irgendwas plattformspezifisches machen will, kann dann ja immer noch eine externe Bibliothek nutzen.


Anmelden zum Antworten