Der Name "C++"



  • Hallo

    @Artchi:

    das C++ C ist, weil es zufällig Pointer und char hat. Das sind Basics die jede Sprache hat.<<

    Aber ich finde, die spezielle Pointer-Syntax mit den Operatoren * und & ist schon eine C-Eigenheit.

    Sprachen ohne Zeigerkonzept gibt es übrigens viele, vermutlich weit mehr als Sprachen mit Zeigerkonzept. Unter den zeigerlosen sind u.a. die meisten funktionalen Sprachen
    (Lisp, Scheme, Haskell,Logo, ... ), etliche Websprachen (Javascript, ...), zahlreiche Skriptsprachen (Python, Ruby), sonstige OOP-Sprachen (Smalltalk, Io, Self,...), deklarative Sprachen (Prolog,...) und weitere.

    An Sprachen mit Zeiger-Konzept fallen mir gar nicht so viele ein: Basic (sofern
    man Peek&Poke als Zeigerkonzept zählen will), Forth, Fortran, Assembler und
    sicherlich noch ein paar mehr.

    Grüße



  • Jester schrieb:

    Also ist C++ ja nur eine Erweiterung von BASIC (*)! Da gab's Variablen und wenn man sich mal Variablen aus C++ rausnimmt, dann kann man mit dem Rest ja garnicht mehr viel machen.

    (*) wer Freude dran hat bitte ne beliebige andere Programmiersprache einsetzen

    🙄

    BASIC? Was hat Basic mit C zu tun?
    Vergleiche mal die Syntax wie man unter BASIC variablen deklariert udn wie unter C. Na?

    Und jetzt mal ehrlich:
    Der Entwickler (!!!) der Sprache C++ hat persönlich gesagt, dass es C++ eine erweiterung zu C ist / ein besseres C.

    Und jetzt kommen irgendwelche Schlaumaier und behaupten was anders.
    Entschuldigung, aber der Entwickler der Sprache dürfte es am BESTEN wissen.
    Der Bjarne ist nun mal der Entwickler der Sprache.
    (Da kann ja jeder kommen und sagen was C++ in echt ist 🙄 👎 )
    ende.



  • Hobbyprogrammierer schrieb:

    Aber ich finde, die spezielle Pointer-Syntax mit den Operatoren * und & ist schon eine C-Eigenheit.

    Willst Du's wirklich an so Äußerlichkeiten wie der Syntax festmachen? Ist es nicht viel interessanter sich die Art und Weise anzuschauen, wie programmiert wird?



  • Jester schrieb:

    Hobbyprogrammierer schrieb:

    Aber ich finde, die spezielle Pointer-Syntax mit den Operatoren * und & ist schon eine C-Eigenheit.

    Willst Du's wirklich an so Äußerlichkeiten wie der Syntax festmachen? Ist es nicht viel interessanter sich die Art und Weise anzuschauen, wie programmiert wird?

    AFAIK kann man mit C auch Objecktorientiert programmieren. Naja, amn müsste auf einige Keywords verzichten. Ich glaube sogar, dass das mal Volkard oder jemand in der art gesagt hätte. bin mir aber nicht sicher.



  • ... kann man mit C auch objektorientiert programmieren.

    Das ist ein interessantes Thema. Die Möglichkeiten von C zeigt Marcus Bäckmann in seinem immer wieder lesenswerten Buch "OOP für Dummies" in Kapitel 10.

    Dort äußert er sich übrigens in der Einleitung auch zum Zusammenhang zwischen C und C++: "... so wissen wir doch, dass unser C++ seine Wurzeln in ... C hat. Logo - ein Nachfolger von C konnte nur C++ heißen!" 👍

    siehe auch: http://de.wikipedia.org/wiki/Bild:Historie.png



  • Hallo

    das stimmt, man braucht nicht zwingend eine Sprache mit Objektmodell,
    um objektorientiert zu programmieren.

    Als Minimalausstattung zur OOP reicht es, daß eine Sprache
    1. Hashes
    2. Funktionszeiger (oder ein anderes Konzept zum Verweis auf benannte Funktionen)
    hat.
    Mit dem Hash bildet man die Attributnamen eines Objektes auf seine Werte ab
    und mit Funktionszeigern verweist man auf seine Methoden.

    Das Javascript-Objektmodell besteht beispielsweise im Wesentlichen aus
    Hashes mit "function". Damit hat man dann allerdings zunächst prototypenbasierte
    Vererbung und noch keine Klassen.

    Grüße



  • normal schrieb:

    BASIC? Was hat Basic mit C zu tun?

    sehr gut, Du hast es verstanden. 🙂

    Vergleiche mal die Syntax wie man unter BASIC variablen deklariert udn wie unter C. Na?

    Nochmal: Machst Du das an Äußerlichkeiten wie der Syntax fest? Willst Du Dir nicht lieber anschauen, wie Probleme in C++ gelöst werden? Du wirst zugeben müssen, daß man in C++ Probleme nicht so löst, wie man sie in C gelöst hat und weils ne Erweiterung ist gelegentlich mal ein neues Super-Keyword aus der C++-Erweiterung benutzt um's toller zu machen.

    Und jetzt mal ehrlich:
    Der Entwickler (!!!) der Sprache C++ hat persönlich gesagt, dass es C++ eine erweiterung zu C ist / ein besseres C.

    Das mit dem besseren C habe ich auch schon gehört. Gibt's für das andere nen Link?

    Und ja, man kann mit C OO programmieren, geht auch mit Assembler. Der große Unterschied ist doch die Sprachunterstützung.



  • Jester schrieb:

    normal schrieb:

    BASIC? Was hat Basic mit C zu tun?

    sehr gut, Du hast es verstanden. 🙂

    Vergleiche mal die Syntax wie man unter BASIC variablen deklariert udn wie unter C. Na?

    Nochmal: Machst Du das an Äußerlichkeiten wie der Syntax fest? Willst Du Dir nicht lieber anschauen, wie Probleme in C++ gelöst werden? Du wirst zugeben müssen, daß man in C++ Probleme nicht so löst, wie man sie in C gelöst hat und weils ne Erweiterung ist gelegentlich mal ein neues Super-Keyword aus der C++-Erweiterung benutzt um's toller zu machen.

    Und jetzt mal ehrlich:
    Der Entwickler (!!!) der Sprache C++ hat persönlich gesagt, dass es C++ eine erweiterung zu C ist / ein besseres C.

    Das mit dem besseren C habe ich auch schon gehört. Gibt's für das andere nen Link?

    Und ja, man kann mit C OO programmieren, geht auch mit Assembler. Der große Unterschied ist doch die Sprachunterstützung.

    Ich kenne den link leider nicht (mehr).
    Aber ich meine:
    Bjarne hat doch C um wichtige Bestandteile erweitert und dadurch. C++ kreirt.
    Mir gefält es bloß nicht, dass manche Leute versuchen die Wurzeln von C++ zu
    leugnen. C++ ist nunmal besseres/erweitertes C. JA, es ist auch eine eigentständige Sprache.

    Ich programmiere selber liebend gerne objektorientiert in C++ aber man sollte dessen Wurzeln nun mal nicht leugnen.

    MfG, total normal



  • richtig, C++ hat seine Wurzeln in C, hat sich darüber hinaus aber zu einer komplett eigenständigen Sprache entwickelt. Genauso, wie sich C in der Zeit verändert hat. Da diese veränderungen der Sprachen aber unabhängig voneinander erfolgt sind, ist C++ keine erweiterung zu C (mehr).



  • otze schrieb:

    richtig, C++ hat seine Wurzeln in C, hat sich darüber hinaus aber zu einer komplett eigenständigen Sprache entwickelt. Genauso, wie sich C in der Zeit verändert hat. Da diese veränderungen der Sprachen aber unabhängig voneinander erfolgt sind, ist C++ keine erweiterung zu C (mehr).

    Amen.



  • normal schrieb:

    Jester schrieb:

    normal schrieb:

    BASIC? Was hat Basic mit C zu tun?

    sehr gut, Du hast es verstanden. 🙂

    Vergleiche mal die Syntax wie man unter BASIC variablen deklariert udn wie unter C. Na?

    Nochmal: Machst Du das an Äußerlichkeiten wie der Syntax fest? Willst Du Dir nicht lieber anschauen, wie Probleme in C++ gelöst werden? Du wirst zugeben müssen, daß man in C++ Probleme nicht so löst, wie man sie in C gelöst hat und weils ne Erweiterung ist gelegentlich mal ein neues Super-Keyword aus der C++-Erweiterung benutzt um's toller zu machen.

    Und jetzt mal ehrlich:
    Der Entwickler (!!!) der Sprache C++ hat persönlich gesagt, dass es C++ eine erweiterung zu C ist / ein besseres C.

    Das mit dem besseren C habe ich auch schon gehört. Gibt's für das andere nen Link?

    Und ja, man kann mit C OO programmieren, geht auch mit Assembler. Der große Unterschied ist doch die Sprachunterstützung.

    Ich kenne den link leider nicht (mehr).
    Aber ich meine:
    Bjarne hat doch C um wichtige Bestandteile erweitert und dadurch. C++ kreirt.
    Mir gefält es bloß nicht, dass manche Leute versuchen die Wurzeln von C++ zu
    leugnen. C++ ist nunmal besseres/erweitertes C. JA, es ist auch eine eigentständige Sprache.

    Ich programmiere selber liebend gerne objektorientiert in C++ aber man sollte dessen Wurzeln nun mal nicht leugnen.

    MfG, total normal

    Amen.



  • Wenn wir schon in lustiger Weise über den Namen reden. C++ ist zumindest voll inkrementiert, aber C# nur um einen Halbton! 😃 😃 😃

    Es wird Zeit für die Sprache D. 😉 😃



  • Es wird Zeit für die Sprache D.

    D gibt es doch schon, ist aber eher ein direkter Nachfolger von C:
    http://de.wikipedia.org/wiki/D_%28Programmiersprache%29



  • Hobbyprogrammierer schrieb:

    Sprachen ohne Zeigerkonzept gibt es übrigens viele, vermutlich weit mehr als Sprachen mit Zeigerkonzept. Unter den zeigerlosen sind u.a. die meisten funktionalen Sprachen
    (Lisp, Scheme, Haskell,Logo, ... ), etliche Websprachen (Javascript, ...), zahlreiche Skriptsprachen (Python, Ruby), sonstige OOP-Sprachen (Smalltalk, Io, Self,...), deklarative Sprachen (Prolog,...) und weitere.

    Ähem, in Smalltalk gibt es nur Zeigervariablen. Zeiger die auf das Objekt zeigen, an welches man eine Nachricht schicken will.
    Nur weil es keinen expliziten Dereferenzierungsoperator gibt, sondern dies "automatisch" abläuft, heißt das ja noch lange nicht, dass es keine Zeiger sind.

    Selbst die Klassennamen sind Zeiger auf das Klassenobjekt. Kannst ja mal nil setzen. Das funktioiert "wunderbar".^^



  • Hallo!

    Ähem, in Smalltalk gibt es nur Zeigervariablen.<<

    Eben. Deshalb schrieb ich ja auch "Zeiger*konzept*" und nicht "Zeigervariablen", um es von der Art, wie Variablen intern realisiert sein können, abzugrenzen.

    Mit "zeigerlose Sprache" meint man, daß es (außer zu Debugging-Zwecken) nicht möglich ist, die Speicher-Adresse eines Datums zu ermitteln und/oder dieses über die Speicher-Adresse zu manipulieren.

    Ein solches Zeiger*konzept* gibt es in C,C++,Forth,Basic usw., aber nicht in Smalltalk (und nicht in Java, Python, Ruby, Io, Logo, Lisp usw...).

    Grüße



  • D gibt es doch schon
    

    Ja, ich weiß 😃 , scheint aber keiner Ernst zu nehmen, sonst gäbe es ja hier im Forum eine Sparte "D". Also brauchen wir D++. 👍



  • C++ ist eine objektorientierte Hybrid-Sprache, die auf C basiert.
    C++ besteht aus:
    C .
    C-Erweiterungen: "Das Bessere C".
    Zusätzliche Sprachmittel zur objektorientierten Programmierung (OOP).

    Man kann ohne weiteres aus einem sauber programmierten C-Programm
    ein C++-Programm machen, indem einfach die Datei-Endung .c in .cpp geändert wird.

    In C++ muß man nicht unbedingt objektorientiert programmieren;
    C++ ist keine 'reine' OOP-Sprache.

    C++ ist aber dennoch eine eigenständige Sprache, mit eigenem ANSI-Standard
    🕶



  • Amen



  • Man kann ohne weiteres aus einem sauber programmierten C-Programm
    ein C++-Programm machen, indem einfach die Datei-Endung .c in .cpp geändert wird.

    Genau meine Meinung



  • Für C99 und C++98 gilt das schon nicht mehr, wegen den VLAs (wenn man mit "sauber programmiert" meint dass man keine K&R-Konstrukte mehr benutzt 😉 )


Anmelden zum Antworten