C++/C lernen?

  • C++

Es gibt 26 Antworten in diesem Thema. Der letzte Beitrag () ist von Gamester.

    Zu 1: Einfach mal die Doc des allerersten C lesen. Das erlaubte nur Identifizierer mit max 8 Buchstaben. Das wurde kurz später auf 31 erweitert, für externe Funktionen war es aber erstmal weiter auf 8 beschränkt. Da das natürlich die möglichen Bezeichner stark beschränkt, scheint case-Sensitivität eine ein gutes Mittel GEWESEN zu sein. siehe auch hier ;)

    Zu 2: Programmierer unterscheiden den "Context", weil Großklein vorhanden ist. Bloß was hat das mit der Begründung eines Syntaxmerkmals zu tun? Hätte C von Anfang an auch den Unterstrich als erstes Zeichen und mehr Zeichen insgesamt erlaubt, hätte man es halt "damals" schon gemacht, wie oft heute Parent -> _Parent

    Zu 3: dh also "Keanu Reeves" ist für dich eine Person und "KEANU REEVES" eine komplett andere? Offensichtlich sind natürliche Sprachen da ziemlich flexibel und Großklein ist nur eine "Lesehilfe" und weniger zwingend.

    Abwärtskompatibilität

    Eben. Und deswegen geht auch dein vorheriger Hinweis "es hat alles einen guten Grund in C" völlig fehl. Manche Sachen sind einfach so wie sie sind - weil sie sich aufgrund technischer Beschränkungen der Vergangenheit nunmal so entwickelt haben (siehe auch A20 Gate). Das ist übrigens der große Vorteil von Basic (das ja sogar älter als C ist), da es ja nie DAS BASIC gab, sondern immer schon viele zu einander weigehend inkompatible Sprachen. Da kann man natürlich des öfteren mal alte Zöpfe abschneiden (VB.classic -> VB.Net). Daraus folgt (für mich): Hal hat vermutlich recht: Manche Dinge in C(++) sind halt einfach Überbleibsel aus lange vergangenen Zeiten und keine genialen Designentscheidnungen.
    1: Nun, das läuft auch auf die Sammelgruppe "Altlasten" hinaus.
    2: Hm, gut, argumentieren in diese Richtung wird wohl ziemlich spekulativ.
    3: "KEANU REEVES" ist für mich erst mal keine Person, nein. Ich erkenne aber durchaus den Fehler in der Groß- und Kleinschreibung, den du eingebaut hast und *interpretiere* das als "Keanu Reeves". Ich würde das selbst aber immer "Keanu Reeves" schreiben und mische das daher auch beim Programmieren nicht wild durcheinander. "_Keanu Reeves" erkenne ich ja auch als die Person und nicht als merkwürdiges Fremdwort mit Unterstrich am Anfang...

    Und ich habe nicht gesagt, dass alles in C einen guten Grund hätte (hoffe ich jedenfalls). Ich habe gesagt, dass alles in C++ - also einer vollkommen anderen Sprache als C - einen guten Grund hätte. Und ja, "Abwärtskompatibilität" ist ein sehr guter Grund für mich. ;)
    C++ ist Super. Nur verwendet man Heutzutage wohl Frameworks, und nimmt die Stdlib eher weniger.
    Frameworks wie Qt , Wx, GTK sind relativ einfach zu verwenden. Diese ganzen "Erstmal C können, dann C++, dann Frameworks" Sprüche halte ich für Schwachsinn.
    Mir fiel der Umstieg von C# auf Qt+C++ relativ einfach. Und bereuen tu ich das überhaupt nicht. Es läuft auf jedem System fast gleich; ein Fenster muss nicht für jedes Os neu geschrieben werden, man hat viele Module wie z.b OpenGL, Webkit, Netzwerk, XML die alles sehr einfach machen.
    Das System Signal/Slot ist ähnlich dem C# Event System, und mit C++11 kann man auch direkt Anonyme Funktionen als Slot übergeben. Sobald man damit etwas rumexperimentiert hat ist Qt echt super.
    Andere Frameworks bis Boost habe ich aber nicht ausprobiert, und Boost habe ich nur mal kurz angeschaut.
    Da ich nur noch Linux als System habe, ist QtCreator meine IDE, die auch ihre Vorteile hat wenn man ein Maemo/Meego Harmattan Mobiltelefon hat.

    Renati schrieb:

    Und ja, "Abwärtskompatibilität" ist ein sehr guter Grund für mich.

    Abwärtskompatibilität (RÜCKWÄRTS trifft es fast noch besser) ist ne tolle Sache, bei einem neuen (neu eingeführten) Produkt. Sobald dieses Produkt dann aber selbst zum "Standard" wird, wird die RK imho zu einem Hemmschuh. Ab und zu ... muss man "altes" auch mal wegwerfen.

    Tsuyo schrieb:

    C++ ist Super. Nur verwendet man Heutzutage wohl Frameworks, und nimmt die Stdlib eher weniger.

    Das kommt darauf an... falls du meinst, dass man selbst seltener auf native APIs zurückgreift - geschenkt. ;) Natürlich verwendet man in C++ Frameworks für sowas. Das geht ja gerade deshalb so gut, weil es der STL völlig egal ist, ob du ihr nun einen QString oder sonstwas gibst. Templates sind halt noch immer ungeschlagen.

    picoflop schrieb:

    Abwärtskompatibilität (RÜCKWÄRTS trifft es fast noch besser) ist ne tolle Sache, bei einem neuen (neu eingeführten) Produkt. Sobald dieses Produkt dann aber selbst zum "Standard" wird, wird die RK imho zu einem Hemmschuh. Ab und zu ... muss man "altes" auch mal wegwerfen.

    Es werden aber immer noch Unmengen an C-Programmen in C++-Programme eingebunden, da auch weiterhin C programmiert wird. Ich persönlich würde es auch begrüßen, wenn man mal langsam darüber nachdenken würde, wie man den C-Ballast abwirft. Aber momentan hinkt die Realität dem Ideal halt noch hinterher. ;)

    Renati schrieb:

    "KEANU REEVES" ist für mich erst mal keine Person, nein. Ich erkenne aber durchaus den Fehler in der Groß- und Kleinschreibung, den du eingebaut hast und *interpretiere* das als "Keanu Reeves".

    Ich hoffe du weißt, dass Minuskeln eine willkürliche Erfindung sind und man bis dato IMMER so geschrieben hat? IULIUS CEASAR IMPERATOR REX
    Jein. Der Terminus "willkürliche Erfindung" ist nicht ganz passend. Es stimmt, dass Majuskelschrift vorher verwendet wurde aber im Zuge der Alphabetisierung und der Verbreitung der Handschrift ist es halt zur Enstehung von Kleinbuchstaben bzw. zur Umwandlung von Groß- in Kleinbuchstaben gekommen. Das ist aber keine "Erfindung", sondern einfach eine Entwicklung, genau wie gesprochene Sprache sich entwickelt.

    Edit by hal2000:
    - VOLLZITAT entfernt.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „hal2000“ ()