Objective-C vs. C++ und C?



  • Im Titel hat er es doch korrekt aufgeführt, also spiel dich hier nicht so künstlich auf.



  • DEvent schrieb:

    Wow, zu faul um zu "googeln"?
    http://de.wikipedia.org/wiki/Objective-C

    Wenn ich Fragen stelle, dann ist die Tatsache, daß ich den WP Artikel gelesen habe bei meiner Frage grundsätzlich bereits includiert.

    Ich hätte es gerne aus einer anderen Perspektive.

    Wenn ich mein Java Buch herauskrame, dann werden dort z.B. ausführlich die Unterschiede zwischen Java und C++ aufgezählt.

    Genau das gleiche gilt für mein C++ Buch, daß die Unterschiede zu C zeigt.



  • Discovery schrieb:

    Ich hätte es gerne aus einer anderen Perspektive.

    Wenn ich mein Java Buch herauskrame, dann werden dort z.B. ausführlich die Unterschiede zwischen Java und C++ aufgezählt.

    Genau das gleiche gilt für mein C++ Buch, daß die Unterschiede zu C zeigt.

    PS: Um das deutlich zu machen.

    In keinem Wikipedia Artikel zu Java oder C++ werden diese Unterschiede derart ausführlich aufgezählt, man kann es sogar so sehen, daß darauf nichtmal nennenswert eingegangen wird.



  • rüdiger schrieb:

    Objective-C ist im Grunde ein Preprozessor für C (mittlerweile auch für C++), der ein dynamisches Smalltalk-ähnliches Objektsystem zur Verfügung stellt.

    nee, es gehört noch ein laufzeitsystem dazu, für diese dynamik, die du ja schon erwähnt hast. das objektsystem von obj-c ist völlig dynamisch und message-basiert, während es in c++ ja zu 99% statisch ist (bis auf wenige ausnahmen wie 'typeid' und 'dynamic_cast') und alles der compiler erledigt.
    btw, objective-C 2.0 hat auch einen garbage collector

    tntnet schrieb:

    Vielleicht solltest Du Dir erst mal Gedanken über die Unterschiede zwischen C und C++ machen.

    hier sind sie schon: http://david.tribble.com/text/cdiffs.htm
    🙂



  • ;fricky schrieb:

    nee, es gehört noch ein laufzeitsystem dazu, für diese dynamik, die du ja schon erwähnt hast. das objektsystem von obj-c ist völlig dynamisch und message-basiert, während es in c++ ja zu 99% statisch ist (bis auf wenige ausnahmen wie 'typeid' und 'dynamic_cast') und alles der compiler erledigt.
    btw, objective-C 2.0 hat auch einen garbage collector

    Also ist objective-C besser als C++?
    Nur, warum hat es sich dann nicht gegenüber C++ durchgesetzt?

    Und welche der beiden Sprachen ist moderner?
    AFAIK gab's C++ vor Objektive-C, ist das richtig?



  • Ist Objective-C auf Mac-OS X eigentlich die dominierende Programmiersprache oder ist hier C++ stärker vertreten?

    Und wie sieht's auf dem iPhone aus?





  • Numbus schrieb:

    Also ist objective-C besser als C++?
    Nur, warum hat es sich dann nicht gegenüber C++ durchgesetzt?

    'besser' ist relativ. c++-progger lassen gern möglichst viel vom compiler im voraus ausrechnen, das bringt natürlich 'nen unschlagbaren laufzeitvorteil gegenüber anderen sprachen, allerdings auf kosten von flexibilität. darüber, warum c++ so weit verbreitet ist, kann man nur spekulieren. es wurde mal ziemlich 'gehyped', zu einer zeit, als oop die einzige rettung aus einer softwarekrise zu sein schien. das ist so ähnlich wie mit der machtergreifung der nazis: ein paar unglückliche umstände müssen zeitgleich zusammentreffen und dann können schlimme dinge passieren, die sich nicht mehr rückgängig machen lassen. *fg*

    Numbus schrieb:

    Und welche der beiden Sprachen ist moderner?
    AFAIK gab's C++ vor Objektive-C, ist das richtig?

    objective-C ist wohl moderner, obwohl ihre grundlage C schon einige jahrzehnte auf dem buckel hat. aber C++ ist ja auch alles andere als modern.
    🙂



  • C++ gehyped? Ich bitte dich, Java wurde gehyped, aber doch nicht C++.



  • ;fricky schrieb:

    aber C++ ist ja auch alles andere als modern.

    du verwechselst da was. C++ wird nicht unmodern, weil ein paar spartensprachen wie PHP und eintagsfliegen wie Java auftauchen.
    http://en.wikipedia.org/wiki/C%2B%2B0x



  • Ja mordern, man korrigiert nicht mal die syntaxische Fallgruben die es in C++ gibst und macht die Sprache noch komplexer - hoch lebe der Fortschritt. Da frag ich mich wie Bjarne Stroustrup es meinte mit dem 'leichter lernen' mit C++.



  • jwb schrieb:

    C++ gehyped? Ich bitte dich, Java wurde gehyped, aber doch nicht C++.

    naja, ge- oder be-hyped. aber ja, Java auch. C++ sollte ein besseres C werden und später dann entwickelte man Java als einen ausweg aus dem C++-desaster. beide sprachen wurden gemacht, um einem unbefriedigenden zustand entgegenzuwirken (und wurden von der programmiererwelt ja auch dankbar angenommen), ebenso die .NET-plattform. mit C und PHP z.b. ist es anders. diese beiden hat man für den eigenbedarf entworfen, um sich das leben leichter zu machen und so. aber sie haben sich dann auf natüliche weise ausgebreitet, was ursprünglich niemand vorhatte (und ahnen konnte).

    volkard schrieb:

    du verwechselst da was. C++ wird nicht unmodern...
    http://en.wikipedia.org/wiki/C%2B%2B0x

    'unmodern' ist vielleicht auch das falsche wort. ausserdem glaub ich nicht, dass es hilfreich ist, wenn man eine programmiersprache immer weiter aufbläht. sonst wird sie doch nur zur seifenblase *fg*
    🙂



  • Fragedersprache schrieb:

    Ist Objective-C auf Mac-OS X eigentlich die dominierende Programmiersprache oder ist hier C++ stärker vertreten?

    Und wie sieht's auf dem iPhone aus?

    Unter OS X ist Objective-C weiter verbreitet da vorallem die Cocoa Bindings für C++ noch "relativ neu" sind. Die Masse an Legacy Code ist Objective-C

    Ähnliches gilt auch fürs iPhone - Objective-C ist halt die native Sprache und die Libraries sind für Objective-C designed, du kannst zwar auch C++ oder sonstwas verwenden, aber an der einen oder anderen Ecke wirst du dich stossen...

    Objective-C ist aber eine furchtbar haessliche Sprache, da es naemlich 2 Sprachen in einer sind, mit komplett unterschiedlicher Syntax. Natürlich hat es auch nette Ideen, keine Frage, aber das gesamtgefühl ist furchtbar...



  • Numbus schrieb:

    ;fricky schrieb:

    nee, es gehört noch ein laufzeitsystem dazu, für diese dynamik, die du ja schon erwähnt hast. das objektsystem von obj-c ist völlig dynamisch und message-basiert, während es in c++ ja zu 99% statisch ist (bis auf wenige ausnahmen wie 'typeid' und 'dynamic_cast') und alles der compiler erledigt.
    btw, objective-C 2.0 hat auch einen garbage collector

    Also ist objective-C besser als C++?
    Nur, warum hat es sich dann nicht gegenüber C++ durchgesetzt?

    Und welche der beiden Sprachen ist moderner?
    AFAIK gab's C++ vor Objektive-C, ist das richtig?

    C++ fing iirc 1979 an und Objective-C 1980. Macht also nicht so viel Unterschied aus. Vermutlich wussten beide Entwickler am Anfang voneinander. Moderner kann man auch nicht wirklich sagen, da beide eben andere Ansätze verfolgen. C++ orientiert sich bei der Objektorientierung eben eher an Simula und bietet aber neben der Objektorientierung noch zahlreiche andere Sprachfeature, wie Exceptions, Operatorüberladung, Templates etc.

    Objective-C bringt dagegen nur das Objektsystem (seit Version 2.0 aber auch einen GC).

    Besser ist sowieso relativ und ignoriere am besten ;fricky.



  • ;fricky schrieb:

    C++ sollte ein besseres C werden

    Das ist ja auch gelungen. 😃
    War aber nicht so schwer. Nein, es sollte kein besseres C werden, sondern es sollte gut werden. Das ist ein viel höherer Anspruch. Auch der ist erfüllt.



  • Auch das ist subjektiv. Ebenso wie die Häßlichkeit von ObjC. Hauptsache wir akzeptieren alle, dass Java Müll ist.



  • rüdiger schrieb:

    Besser ist sowieso relativ und ignoriere am besten ;fricky.

    von mir aus. aber nicht das hier ignorieren: http://pierre.chachatelier.fr/programmation/fichiers/cpp-objc-en.pdf
    ^^ vergleich c++/obj-c
    🙂



  • also ich find die syntax von objective-c auch hässlich, die sieht einfach nur zusammengewürfelt aus. Wie wenn es ein Freak geschrieben hätte, der in C einmal Objektorientierung nutzen wollte 😉 .



  • player4245 schrieb:

    also ich find die syntax von objective-c auch hässlich, die sieht einfach nur zusammengewürfelt aus. Wie wenn es ein Freak geschrieben hätte, der in C einmal Objektorientierung nutzen wollte

    es sind nun mal 2 verschiedene syntaxen, etwa wie C und sein präprozessor (daher wohl auch rüdis falsche annahme, objective-C wär nur ein präprozzi). das wird aber, glaub ich, nicht so schlimm sein, als dass es sich dem menschlichen verstand entziehen würde. es gibt üblere syntaxen, z.b. eine programmiersprache (weiter verbreitet als objective-C übrigens), die so verzwickt ist, dass deren compiler oft nicht den vollen sprachumfang beherrschen *fg*
    🙂



  • der präprozessor erledigt in den beiden Sprachen ja nur oberflächliche Aufgaben, aber diese schlimme Syntax mit den ganzen @ Zeichen ist ja schön im ganzen Code verteilt, das macht die Sprache nämlich so schrecklich.

    P.S. ich habe deine Anspielung auf C++ bemerkt. Musst du eigentlich in jedem deiner Posts so was schreiben? Wenn dir die Sprache nicht gefällt dann ignorier sie doch einfach. Sorry aber das nervt schon etwas.


Anmelden zum Antworten