Objective-C vs. C++ und C?
-
Kann mir jemand mal die Unterschiede von Objektive-C zu C/C++ in kurzen nennen, so daß man sich davon einen Überblick machen kann?
-
Discovery schrieb:
Kann mir jemand mal die Unterschiede von Objektive-C zu C/C++ in kurzen nennen, so daß man sich davon einen Überblick machen kann?
Ups, Wort vergessen.
Ich meinte:
"in kurzen Sätzen nennen..."
-
Wow, zu faul um zu "googeln"?
http://de.wikipedia.org/wiki/Objective-CObjective-C, auch kurz ObjC genannt, erweitert die Programmiersprache C um Sprachmittel zur objektorientierten Programmierung. Objective-C++ erlaubt teilweise die Mischung von Objective-C mit C++-Code mit dem Ziel, älteren Code verwenden zu können. Objective-C ist die primäre Sprache von Cocoa (Mac OS
und GNUstep.
Die Syntax und Konzeption der objektorientierten Erweiterungen ist an Smalltalk angelehnt und von der gewöhnlichen prozeduralen C-Syntax strikt getrennt. Diese Trennung erlaubt es, das gleiche Konzept zur Erweiterung auf andere imperative Sprachen anzuwenden; so gibt es z. B. ebenfalls Objective Pascal und Objective-J.
http://de.wikipedia.org/wiki/C%2B%2B
C++ ist eine von der ISO standardisierte höhere Programmiersprache. Sie wurde ab 1979 von Bjarne Stroustrup bei AT&T als Erweiterung der Programmiersprache C entwickelt. C++ wurde als Mehrzwecksprache konzipiert und unterstützt mehrere Programmierparadigmen, wie die objektorientierte, generische und prozedurale Programmierung. C++ ermöglicht sowohl die effiziente und maschinennahe Programmierung, als auch eine Programmierung auf hohem Abstraktionsniveau.
http://de.wikipedia.org/wiki/C_(Programmiersprache)
C ist eine imperative Programmiersprache, die der Informatiker Dennis Ritchie in den frühen 1970er Jahren an den Bell Laboratories für das Betriebssystem Unix entwickelte. Seitdem ist sie auf vielen Computersystemen verbreitet.
Die Anwendungsbereiche von C sind sehr verschieden. Es wird zur System- und Anwendungsprogrammierung eingesetzt. Die grundlegenden Programme aller Unix-Systeme und die Systemkerne vieler Betriebssysteme sind in C programmiert. Zahlreiche Sprachen, wie C++, Objective-C, C#, Java, PHP oder Perl orientieren sich an der Syntax und anderen Eigenschaften von C.
-
Discovery schrieb:
Kann mir jemand mal die Unterschiede von Objektive-C zu C/C++ in kurzen nennen, so daß man sich davon einen Überblick machen kann?
Objective-C ist im Grunde eine "Preprozessorsprache" für C (mittlerweile auch für C++), die ein dynamisches Smalltalk-ähnliches Objektsystem zur Verfügung stellt.
-
Discovery schrieb:
Discovery schrieb:
Kann mir jemand mal die Unterschiede von Objektive-C zu C/C++ in kurzen nennen, so daß man sich davon einen Überblick machen kann?
Ups, Wort vergessen.
Ich meinte:
"in kurzen Sätzen nennen..."Macht die Frage auch nicht korrekter.
Willst Du die Unterschiede zwischen Objective-C und C oder zwischen Objective-C und C++ wissen? Vielleicht untersuchen wir auch die Unterschiede zwischen C++ und C/Objective-C
.
Vielleicht solltest Du Dir erst mal Gedanken über die Unterschiede zwischen C und C++ machen.
-
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-CWenn 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 collectortntnet 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 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?
-
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.