Objective-C vs. C++ und C?
-
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.
-
Zu C / C++ gibt es uebrigens einen netten FAQ-Eintrag: http://www.c-plusplus.net/forum/viewtopic-var-t-is-41471-and-postdays-is-0-and-postorder-is-asc-and-start-is-0.html
Bedenke auch, dass es zu C++ viel mehr Infos, Bibliotheken, Ressourcen etc. im gegensatz zu ObjC gibt. Du hast nicht mal einen eigenen Syntax-Highlighter in diesem Forum fuer ObjC
-
@;fricky: Wenn ich dir ein Bild zeigen würde und du würdest mir sagen es ist hässlich, dann könntest du deine Meinung auch nicht richtig begründen.
Geschmack ist eben etwas das man nicht begründen kann. Und so ist es auch mit dieser Syntax. Mir gefällt die einfach nicht, weil sie nicht miteinander harmoniert (schon allein wegen der ganzen @ Zeichen, die findest du sonst nirgends in C).
Naja davon abgesehen fristet ObjC, wie mein Vorposter bereits erwähnte, eher ein Nischendasein, zumindest unter den Populärsten Plattformen.
-
Hoodoo schrieb:
Bedenke auch, dass es zu C++ viel mehr Infos, Bibliotheken, Ressourcen etc. im gegensatz zu ObjC gibt.
Naja; viele c++ librarys sind aber wirklich schrecklich. Die haben auch nicht viel mit c++ zu tun. zB GUI Frameworks:
MFC - äh zum kotzen aus sicht von ästetischen c++
QT - Die brauchen für ihre Slot Signal konzept einen eigenen preprocessor
wxWidgets - Das mit dem Eventtables ist auch nur begrenzt mit wirklichen c++ zu vergleichen.
Namespaces haben die alle nicht! Und die Interoperabilität mit std-library ist auch begrenzt.
Gtkmm ist die einzige c++ige GUI library für c++ (bis auf 2-3 unklarheiten beim Speichermanagement; aber das ist ok)Bei Objective-c habe ich als GUI Appkit, was sich perfekt in die Grundlagen der Sprache wie NSObject und Foundatione einpasst. Das ist so perfekt, dass man die Übergänge oft garnicht bemerkt.
Wenn man halbfertige und absolut miserable librarys einrechnet gibt es für c++ von der gesamtfunkionalität sicherlich 20 mal mehr als für Obj-C. Wenn man sich aber auf gute Librarys die man gerne benutzt beschränkt (also Perfektionist) hat man für c++ nur noch grob 2-3 mal so viel (wobei davon ein grosser Teil davon die hervorragende boost lib ist).
Bei Objective-C sind viele Librarys einfach total schmerzfrei. Ich will ein mp3 abspielen? Nehme ich einfach QTkit (Quicktime; nicht QT) und geht. Bei c++ ist es sehr viel komplizierte auszuwählen was man will. Das hängt zB sehr vom Betriebsystem und GUIlibrary und ähnlichen ab. Da ist die gnadenlose Plattformabhängigkeit von Obj-C eine Berfreiung und Erhöhung der Produktivität.
Das mit dem Mehr infos ist auch so eine Sache. Es ist viel scheiße wie <iostream.h> da und Objective-C ist so viel simpler, dass man gar keine so umfangreiche Anleitung wie bei c++ braucht. Aber versuch mal einen nicht c++-Programmierer virtuelle Vererbung zu erklähren. Der hält die für bekloppt. :xmas1:
-
player4245 schrieb:
@;fricky: Wenn ich dir ein Bild zeigen würde und du würdest mir sagen es ist hässlich, dann könntest du deine Meinung auch nicht richtig begründen.
Geschmack ist eben etwas das man nicht begründen kann.Als Kunststudent muss ich dir mal leider sagen dass das Blödsinn ist, es gibt natürlich jede menge objektive merkmale die ein bild "schön" erscheinen lassen, schwierig wird es nur mit kunst aus anderen kulturen. Gleiches gilt im gewissen Maß übrigens auch für Musik
Und so ist es auch mit dieser Syntax. Mir gefällt die einfach nicht, weil sie nicht miteinander harmoniert (schon allein wegen der ganzen @ Zeichen, die findest du sonst nirgends in C).
Naja davon abgesehen fristet ObjC, wie mein Vorposter bereits erwähnte, eher ein Nischendasein, zumindest unter den Populärsten Plattformen.In der Regel benutzt man eine Programmiersprache nicht, weil einem die Anordnung verschiedener Zeichen auf dem Bildschirm ästhetisch zusagt. Allerdings scheinst du eh nicht viel Plan von Obj-C zu haben, ein @ findest du in der regel maximal an 2 Stellen in einer Quelldatei, nämlich am anfang und am ende einer protocol/interface/implementation definition. Aber wild gestreute * oder # in C Quelltexten scheinen dir ja nich zu so mißfallen.
Zum nischendasein hab ich nichts hinzuzufügen, außer 100.000 deployten apps, von der vielen hervorragenden OS X Software ganz zu schweigen. :xmas2:
-
keinbenutzer schrieb:
Und so ist es auch mit dieser Syntax. Mir gefällt die einfach nicht, weil sie nicht miteinander harmoniert (schon allein wegen der ganzen @ Zeichen, die findest du sonst nirgends in C).
Naja davon abgesehen fristet ObjC, wie mein Vorposter bereits erwähnte, eher ein Nischendasein, zumindest unter den Populärsten Plattformen.In der Regel benutzt man eine Programmiersprache nicht, weil einem die Anordnung verschiedener Zeichen auf dem Bildschirm ästhetisch zusagt. Allerdings scheinst du eh nicht viel Plan von Obj-C zu haben, ein @ findest du in der regel maximal an 2 Stellen in einer Quelldatei, nämlich am anfang und am ende einer protocol/interface/implementation definition. Aber wild gestreute * oder # in C Quelltexten scheinen dir ja nich zu so mißfallen.
Du scheinst auch nicht viel Plan von Obj-C zu haben, wenn du noch nie was von @property und @synthesiz gehört hast.
-
Man muss ja nicht jeden 2.0 Scheiss mitmachen. Aber ansonsten "gut gebrüllt Löwe"...
-
blard schrieb:
Aber versuch mal einen nicht c++-Programmierer virtuelle Vererbung zu erklähren. Der hält die für bekloppt. :xmas1:
Mag sein. Aber versuch mal dem selben Programmierer zu erzählen, daß Pluto ein Hund ist und daher einen Schwanz hat und zugleich eine Comicfigur ist und daher einen Erfinder/Autor hat. Am besten noch dazu, daß sein Alter je nach Blickwinkel unterschiedlich ist (als Erfindung 79 Jahre). Der sagt Dir, das kann man nur mit viel if/goto programmieren.
-
blard schrieb:
Aber versuch mal einen nicht c++-Programmierer virtuelle Vererbung zu erklähren.
Dafür sind Objective-C Programme so schön langsam. Das Dispatching ist in Vergleich zu C++ zwar schön flexibel aber schnarch langsam. Und wenn man schnelle Programmteile braucht, dann muß man zu reinem C greifen. Was für ein Fortschritt. C++ fehlt definitiv dynamic dispatching, aber Objective-C fehlt so ziemlich alles für schnelle Programme. Das fällt immer wieder auf, wenn man X11 Apps auf einem Mac nutzt und dann das gleiche Programm mit Cocoa Nutzerschnittstelle. Cocoa ist und bleibt lahm.
-
blard schrieb:
Aber versuch mal einen nicht c++-Programmierer virtuelle Vererbung zu erklähren. Der hält die für bekloppt. :xmas1:
Wahrscheinlich weil der Begriff dort anders definiert ist? :xmas1:
-
blard schrieb:
Bei Objective-C sind viele Librarys einfach total schmerzfrei. Ich will ein mp3 abspielen? Nehme ich einfach QTkit (Quicktime; nicht QT) und geht. Bei c++ ist es sehr viel komplizierte auszuwählen was man will. Das hängt zB sehr vom Betriebsystem und GUIlibrary und ähnlichen ab. Da ist die gnadenlose Plattformabhängigkeit von Obj-C eine Berfreiung und Erhöhung der Produktivität.
Du redest Bullshit.
Objective-C ist nämlich nicht Plattformabhängig.
Es gibt Obj-C auch für Linux und Windows.
Und es gibt Gnustep.Und was für ne MP3 Lib nimmst du jetzt dort?
-
Dieter Böller schrieb:
Objective-C ist nämlich nicht Plattformabhängig.
Im Prinzip richtig, in der Realität trifft es nicht zu, da es Cocoa nicht für andere Plattformen gibt. GNUstep enthält nur eine ältere Teilmenge der Cocoa API.