Objective-C vs. C++ und C?
-
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?
-
Also im Bezug zu C ist es der bessere C Nachfolger:
http://www.gnustep.org/Presentations/GNUstep-Presentation-NYCBUG-2.ppt_files/Slide0015.gif
-
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 collectorAlso 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.
-
player4245 schrieb:
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.
Lies doch deinen eigenen Beitrag nochmal
-
tut mir leid ich komm nicht drauf sag du mir was nicht stimmt.
-
player4245 schrieb:
Wenn dir die Sprache nicht gefällt dann ignorier sie doch einfach.
-
;fricky schrieb:
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)
Hab das korrigiert. Meinte natürlich, wie eine Präprozzisprache. Man kann ja sogar Objective-C programmieren, in dem man einfach das dahinterliegende C-Interface benutzt (ist aber Compilerabhängig). Dann hat man auch keine komische Syntax:
http://paste.lisp.org/display/37105
http://www.google.com/codesearch/p?hl=en#t4cUIrRdV2U/gnu/mingw/gcc-2.95.3-20010723-src.tar.gz|FL01zNkJ3_0/libobjc/sendmsg.c&q=sel_get_any_uid
...
-
player4245 schrieb:
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.
wieso? das war doch eine recht passende antwort auf deinen beitrag, von wegen grausame syntax und so. syntax ist doch am anfang immer gewöhnungsbedürftig. in einer programmiersprache akzeptierst du hässliche syntax, weil du dich daran gewöhnt hast (und findest sie vielleicht nicht mehr hässlich), bei der anderen lehnst du sie ab, weil du die sprache noch nie benutzt hast. kein problem, so denken viele.