Hübscher Quote, doch Leider sagt er nichts aus ausser der persönlichen Meinung von jemandem, der einen Begriff als erster verwendet hat. Das ist ja totaaaal relevant.
Davon abgesehen war ein Rückzug auf Definitionsklauberei schon immer Kapitulation, das weisst du.
Und auch darauf eingehen, dass dynamisches Binding ein OPTIONALES Feature von OOP ist. Aber viel Erfolg dabei, du schaffst das
ZitatMan beachte wieder den Unterschied zwischen Klugscheißen und Besserwissen. Tu ich. Und ich finds amüsant
Man beachte wieder den Unterschied zwischen Klugscheißen und Besserwissen.
Das mit der Akkulaufzeit des IPhones war ein Beispiel.
Fakt ist, dass der Overhead dynamischer Methodenaufrufe massivst ist. Und in dem Moment, in dem man jedes kleinste Stück Daten als Objekt sieht, was OOP-Fanatiker sehr, SEHR gerne tun, wirds halt sehr, SEHR schlimm.
Der GC ist ebenfalls offizielles Sprachfeature von Objective-C 2.0 und nicht Teil der Cocoa-Library. Und ganz davon abgesehen ist es eh scheißegal, weil außerhalb des Apple-Universums faktisch niemand freiwillig Objective-C benutzt. Ok, GNUStep. Das ist aber auch ne 1:1-NeXTStep-Kopie und damit fast identisch zu Cocoa. Was soll also irgendeine Trennung.
(im Gegensatz dazu werden die Standardframeworks von C und C++ gerne mal weggelassen, wenn Portabilität enweder gar nicht oder zwingend zählt)
Ich würd mal sagen: Üben, Junge.
Klassen sind auch optionale Features von OOP. Trotzdem sind Teile der C++-Fraktion der Meinung, eine Programmiersprache mit Objekten, die nicht durch Klassen erzeugt wurden, seien höchstens objektbasiert.
Nehmen wir ein Beispiel. Ich möchte wissen, ob mein Objekt auf eine Nachricht antwortet.Wie realisiere ich es in C++? Ich frag das Objekt nach seiner Klasse, prüfe im Code nach, ob diese Klasse mit denen kompatibel ist, die diese Nachricht empfangen können, und entscheide dann ob wahr oder falsch.
Sowohl in Java als auch in Javascript, Objective-C und (nagel mich nicht drauf fest, ich glaube aber, dass dem so ist) auch in C# kann ich via Prototyping mein Objekt erweitern, davon Kopien erzeugen, das Klassenobjekt verändern, das Objekt um den Bauplan aus einem anderen Klassenobjekt erweitern und dem fertigen Objekt sogar ein vollkommen anderes Klassenobjekt unterschieben. Geht das auch einfach in C++?
In Javascript, Objective-C und vermutlich auch in Java und C# kann ich in meine Containerobjekte einfach alle Objekte stopfen die ich will. Nummern, Zeichenketten, weitere Container, eigene Objekte. Geht das auch einfach in C++?
Wäre die GarbageCollection offizielles Sprachfeature liefe sich auch auf dem iOS. Tut sie aber nicht, es gibt (noch) keinen GarbaceCollector auf dem iPhone.
Ob der verhassten Templates sind meine letzten C++-Erfahrungen angestaubt. Wie werde ich noch mal die STL in C++ los? 'Damals' war sie noch durch das zuständige Gremium standardisierter fester Bestandteil des Sprachpakets.
And the winner is ... *goldene Pimmelfigur zück*