Was würdet Ihr an C++ ändern, wenn Ihr keine Rücksicht auf Kompatibilität, Geld, Zeit, Arbeit, etc. nehmen müssten?



  • hehejo schrieb:

    Aber wenn ich es mir überlege drückt append doch einfach mehr aus.

    👍

    otze schrieb:

    natürlich wird append schnell kryptisch, wenn du mehrmals hintereinander sachen anhängen willst...

    dafür bastelt man sich ein 'append' mit variabler argumentenliste 😉



  • dafür bastelt man sich ein 'append' mit variabler argumentenliste

    das wär wirklich eine gute erweiterung. variabler argumentenliste ohne die macros aus dieser header datei ( hab vergessen wie sie hies ).
    meine liste wäre dann noch:
    delegates und properties wie in c#



  • DEvent schrieb:

    string mystring;
    string ein = "ein";
    string langer = "langer";
    string text = "text";
    string punkt = "punkt";
    mystring.append(ein.append(langer.append(text.append(punkt))));
    

    naja, ganz so schlimm wie dus hier gezeigt hast, is es ja noch nicht:

    mystring.append(ein).append(langer).append(text).append(punkt);
    


  • net schrieb:

    Artchi schrieb:

    Yo, Minimal-Systeme programmiert man (wenn man eine Hochsprache benutzen will) doch eher in C oder in J2ME?

    nicht j2me. da passt nicht mal die cldc rein und es würde auch zu lahm sein. (minimalsysteme haben niedrige taktfrequenzen). aber c schon. c ist erste wahl.

    jo wenn wir von minnimalsoftware auf nem minnimalsystem ausgehn
    aber technisch kann ein kompaktes 66mhz system mit uClinux auch ein 5mb programm starten und ausführen

    wenn die software sich also an den standard hält spricht nix dagegen ausgewachsene software auf nem kleinen system laufen zu lassen

    und eine 5mb software ohne oop zu schreiben is selbstmord... da sin wir uns hoffentlich einig 🙂



  • del me



  • DEvent schrieb:

    versteh ich nicht, was ihr gegen das + bei strings habt. was soll adition von strings sonst bedeuten als eine anfügung des einen string an den anderen ?

    Nun, da würde mir noch so manches einfallen. ZB zeichenweise "Addition", so nach dem Motto

    "aaa" + "bbb" = "ccc"
    

    Aber ganz so eng sehen wir das ja auch nicht, sonst würde wohl niemand std::string nutzen. Ausgesprochen sinnvoll (und eindeutig) ist es trotzdem nicht.
    Und dass Addition kommutativ ist, ist ein wichtiger Aspekt. Auch wenn man diesen nicht überbewerten sollte. Multiplikation zB ist ja auch nicht immer kommutativ (siehe zB Quaternions).



  • hehejo schrieb:

    Was ist ocaml? Ist das eine Programmiersprache?
    Oder ist das so wie in Pyhton? Hier muss man jeder Klassenfunktion einen extra Paramenter in die Definition reinschreiben -> der wird dann zu this/self.

    Ja, eine programmiersprache.
    aber nicht wie in Python, schwer zu erklären, ich zeig mal code:

    class test =
      object(foobar)
    end;;
    

    mit object(foobar) sagt man, dass man auf 'this' über den namen foobar zugreifen will.
    ist recht lustig:

    class test =
      object(self)
      method print str = print_string str
      method print_hello = self#print "hello" (* ruft 'this->print("hello") auf *)
    end;;
    

    wirklich sinnvoll ist es nicht, oder ich habe den sinn noch nicht entdeckt, aber lustig 🙂 und ich mag an python, dass a.b(c) und b(a,c) das selbe sind, aber das ewige self stört mich 😞

    naja, perfekt ist keine sprache

    @DEvent:
    warum properties? die machen doch nur im zusammenhang mit reflection sinn - also musst du dir ja auch noch reflection wünschen 😉

    natürlich ist append() nicht ideal, aber + für strings genauso wenig.
    weil eben a+b != b+a ist. das ist doof.
    wenn es einen concat operator gäbe, wäre das viel cooler, dann könnte man nämlich auch listen und andere container aneinanderhängen.
    klar ist mathematik nicht alles, aber man darf die gesetze der operatoren nicht so leichtfertig über den haufen werfen - vorallem wenn man nichts gewinnt. was würde es stören, wenn man einen operator für concat hätte? viele sprachen haben das.



  • BTW: Schon mal die Mehrfachvererbung in Python angeschaut? Die Implementierung der Mehrfachvererbung in C++ ist ein einziger Witz

    Hab ich was verpasst?

    gar nicht so doof (oder voll durchgeknallt). wie wär's mit frei definierbaren operatoren?

    Gibts doch recht häufig: SML, Haskell, Scala, ...

    Zum Thema: Wenn ich das ändern würde, was ich alles ändern wollte, hätte die Sprache nicht mehr viel mit C++ zu tun.



  • meine liste wäre dann noch:
    delegates und properties wie in c#

    Ich find zwar C# ansich auch toll, aber ich denke irgendwie Delegates und Properties werden doch schon etwas "gehyped".
    Überleg lieber, was du in C++ wirklich neues brauchst und nicht, was dir in anderen Sprachen gefällt. Delegates sind
    immerhin nichts anderes als built-in Funktoren und Funktoren gibt es in C++ und über Properties wurde eh bereits
    mal diskutiert ..



  • Aus der Unzufriedenheit mit C++ sind doch schon einige Sprachen entstanden, wie D zum Beispiel:

    http://www.digitalmars.com/d/

    Vereint viel Vorteile moderner Programmiersprachen mit der Systemnähe von C++.
    Es gibt eingebaute String-Klassen, konsistentes Überladen von Operatoren, Delegates, Properties und der Präprozessorquatsch wurde auch entfernt.



  • Shade Of Mine schrieb:

    wirklich sinnvoll ist es nicht, oder ich habe den sinn noch nicht entdeckt, aber lustig 🙂 und ich mag an python, dass a.b(c) und b(a,c) das selbe sind, aber das ewige self stört mich 😞

    Ich finde es auch nervig, dass man das self immer selbst reinschreiben muss.

    class aga:
      def zap(self):
        pass
    
    var = aga()
    var.zap()
    

    Aus var.zap() macht der Interpreter ja zap(var).
    Finde schon, dass die Leute von Python einem das self hätten ersparen können.



  • ich denke, wenn man versucht die C++-Syntax-Dialekte zu normieren, dann hat
    man einen weiteren Dialekt. Also mein Vorschlag nur wenig verschlimmbessern
    denn anderenfalls kann man ja gleich eine andere Sprache nehmen oder
    programmieren.
    Also bisher haben wir wenn ich richtig zitieren 'den Hund(c) mit mit
    angenagelten Beinen(c++)'. Aber was haben wir wenn wir die vorgeschlagenen
    Erweiterungen implmentieren, diesen armen Hund mit angedübelten
    Ohren(c++++) :)?

    MfG f.-th.



  • Sovok schrieb:

    net schrieb:

    Artchi schrieb:

    Yo, Minimal-Systeme programmiert man (wenn man eine Hochsprache benutzen will) doch eher in C oder in J2ME?

    nicht j2me. da passt nicht mal die cldc rein und es würde auch zu lahm sein. (minimalsysteme haben niedrige taktfrequenzen). aber c schon. c ist erste wahl.

    jo wenn wir von minnimalsoftware auf nem minnimalsystem ausgehn
    aber technisch kann ein kompaktes 66mhz system mit uClinux auch ein 5mb programm starten und ausführen

    ich glaub' wir haben verschiedene auffassungen von minimalsystemen 😉

    f.-th. schrieb:

    Also bisher haben wir wenn ich richtig zitieren 'den Hund(c) mit mit
    angenagelten Beinen(c++)'. Aber was haben wir wenn wir die vorgeschlagenen
    Erweiterungen implmentieren, diesen armen Hund mit angedübelten
    Ohren(c++++) :)?

    jo, man kann's drehen wie man will. c++ bleibt immer aufgebohrtes c



  • Ich Proge C++ gerade weil es so ist!

    So Aussagen wie:
    ->keine Prozessor anweisungen
    ->Direkt Filesystem zugriff
    ->Die ewigen lib.
    ->...
    Die koennen nur von Windows proger kommen, aber dafuer gibt es doch
    die WinAPI.

    Java
    Das ist fuer mich eine Scriptsprache wie PHP auch.
    Und ob das unter OOP laufen kann...

    Das ist fuer mich eine Script-Sprache
    -Direkt filesystem zugriff, ST on board.
    -Jeder befehl schon anwendbar ohne lib include.
    -Evnt. Microsoft, wenns die Finger im Spiel hat.
    -Wenn for() zu FOR BLA = BL1 THEN END
    -----Ohne erweiterung---

    Programmsprachen:
    C/C++
    Assembler
    Pascal
    FORTAN
    ...

    Scriptsprachen:
    PHP
    Java
    Basic
    Power Bulding (oder so)
    SHELL
    ...

    Es wird wohl schon etwas uneinichkeit geben.

    Ghost



  • Green_Ghost schrieb:

    Ich Proge C++ gerade weil es so ist!

    So Aussagen wie:
    ->keine Prozessor anweisungen
    ->Direkt Filesystem zugriff
    ->Die ewigen lib.
    ->...
    Die koennen nur von Windows proger kommen, aber dafuer gibt es doch
    die WinAPI.

    Die WinAPI ziehst du also einer sauberen und plattformunabhängigen Lib vor?

    Java
    Das ist fuer mich eine Scriptsprache wie PHP auch.
    Und ob das unter OOP laufen kann...

    😕 Du hast keine besonders große Ahnung von Java, oder?

    Das ist fuer mich eine Script-Sprache
    -Direkt filesystem zugriff, ST on board.
    -Jeder befehl schon anwendbar ohne lib include.
    [...]

    Du weißt scheinbar auch nicht, was eine Skriptsprache ausmacht...



  • Oder um es kurz zu machem, er hat insgesamt wenig Ahnung. 😃 😃



  • Eine Sprache die Browserseitig aufgeloest wird ist fuer mich ne script sprache.
    nur weil man es auch compilen kann...
    Da kann man mit PHP ja schon mehr.

    Die WinAPI ziehst du also einer sauberen und plattformunabhängigen Lib vor?

    Nein, aber fuer Windows-users.
    Wieso musste Windoof nur wieder etwas eigenes machen, und das
    posix nicht anerkennen???
    Sonst gaebe es in den STL auch Filesystem libs.

    -Direkt filesystem zugriff, ST on board.
    -Jeder befehl schon anwendbar ohne lib include.
    -Evnt. Microsoft, wenns die Finger im Spiel hat.
    -Wenn for() zu FOR BLA = BL1 THEN END

    zugegeben, ich hab nicht gerade passend ausgedrueckt.

    Programmsprachen:
    C/C++
    Assembler
    Pascal
    FORTAN
    ...

    Scriptsprachen:
    PHP
    Java
    Basic
    Power Bulding (oder so)
    SHELL
    ...

    Hier schon 😉

    JoJo, wenn Bill nur die anderen standards anerkennt haette, und das rechnen
    nicht neu (und das auch noch schlecht) erfunden haette.
    Dann waere die STL von C++ auch besser.

    Ghost



  • Java
    Das ist fuer mich eine Scriptsprache wie PHP auch.
    Und ob das unter OOP laufen kann...

    Das ist fuer mich eine Script-Sprache
    -Direkt filesystem zugriff, ST on board.
    -Jeder befehl schon anwendbar ohne lib include.
    -Evnt. Microsoft, wenns die Finger im Spiel hat.
    -Wenn for() zu FOR BLA = BL1 THEN END
    -----Ohne erweiterung---

    Aha. Was "-Direkt filesystem zugriff, ST on board." weiß ich nicht. Kann mir das mal wer erklären?

    "-Jeder befehl schon anwendbar ohne lib include." Befehle sind das, was die Sprache eh an sich beherscht (z.B. "if" und "for" in C++).
    Und wie andere Dinge geladen werden hat sicherlich ekinen Einfluss darauf, ob es eine Scriptsprache ist. Man könnte auch C++ mit einem ordentlichen Modulsystem ausstatten. C++ bliebe genauso hardwarenah wie bisher, wäre aber einfacher, man müsste weniger redundanten Kram schreiben (keine Deklarationen in Headern), ... .

    "-Evnt. Microsoft, wenns die Finger im Spiel hat." Microsoft ist eine Scrpitsprache? Interessant ... 😕

    -Wenn for() zu FOR BLA = BL1 THEN END

    Aha, also die Syntax machts? Aber Javas Syntax ist nicht besonders weit von C++ entfernt

    Und ich dachte schon es läge wiedermal daran, das die Java-Compilate auf einer virtuellen Maschine laufen, und dachte man müsste jetzt wieder die C-Interpteter als Gegenbeispiel bringen

    Aus der Unzufriedenheit mit C++ sind doch schon einige Sprachen entstanden, wie D zum Beispiel:

    http://www.digitalmars.com/d/

    Vereint viel Vorteile moderner Programmiersprachen mit der Systemnähe von C++.
    Es gibt eingebaute String-Klassen, konsistentes Überladen von Operatoren, Delegates, Properties und der Präprozessorquatsch wurde auch entfernt.

    Nö, es gibt keine eingebaute String-Klasse. Trotzdem sind Strings etwas kompfortabler, als in C++.



  • ich hätte gerne ein std::sleep(int ms)



  • JoJo, wenn Bill nur die anderen standards anerkennt haette, und das rechnen
    nicht neu (und das auch noch schlecht) erfunden haette.
    Dann waere die STL von C++ auch besser.

    😕 😕

    Eine Sprache die Browserseitig aufgeloest wird ist fuer mich ne script sprache.
    nur weil man es auch compilen kann...
    Da kann man mit PHP ja schon mehr.

    wenn du Java/Python/Perl meinst. 😕 😕

    Nein, aber fuer Windows-users.
    Wieso musste Windoof nur wieder etwas eigenes machen, und das
    posix nicht anerkennen???
    Sonst gaebe es in den STL auch Filesystem libs.

    du wirst es nicht glauben es gibt mehr als Windows/Unix(Linux) 🙄

    Wenn ich jetzt raten müsst würde ich sagen:
    - keine 20 Jahre alt.
    - kein Profi, nicht mal gut informierter Hobbiest.
    => keine Ahnung


Anmelden zum Antworten