Golem meldet, dass ggf. der beliebte VLC-Player des VideoLan Projektes offenbar vor dem Aus steht. Zwar sei nur 1% des Codes Mac-Spezifisch, doch findet sich niemand, der diese Code-Teile warten und anpassen will. Im wesentlichen geht es um die GUI. Wäre doch schade, wenn VLC nicht mehr unter OSX laufen würde...
Kommentare
Videodekodieren per Hardware
Würde es mehr Entwickler geben, würde ich vermuten, dass man sich darüber ärgert, dass Apple keine Schnittstelle wie DXVA unter Windows für 3rd Apps zur Verfügung stellt. Daran scheint Apple kein Interesse zu haben (so war es wohl auch schon bei MPEG2-Beschleunigung). Man hat aus Apple Sicht eben QT zu nutzen. Fremdsoftware hat eben (absichtlich) "Pech". Mal gespannt ob sich das in Zukunft ändert... (aber wahrscheinlich nicht, war bei MPEG2-Beschleunigung AFAIK schon genauso).
[Spekulation]
Wahrscheinlich hat man versucht einen Ableger von VLC auf das iPhone zu bringen und Apple verweigert die Zulassung[/Spekulation]
Wenn es nur um einen alternativen Player geht der viele Codecs abspielt, kann man auch den MPlayer nehmen (da gibt es auch ein Cocoa-Interface). Bei VLC war bzw. ist aber z.B. die Streaming-Fähigkeit bzw. Möglichkeiten auch eine Besonderheit.
Konsequenz aus Apples Politik
Irgendwie ist schon klar, dass VLC keine Programmierer für das Mac-Interface findet. Apples Politik hat die Zahl der möglichen Entwickler für Mac OS X deutlich ausgedünnt:
Mit dem Wechsel zu Intel hat Apple die Entwickler auf XCode gezwungen und alternative, cross-Plattform-fähige IDEs gekillt. Dann hat man, indem man mit 64bit auch noch Carbon, als C-basierte API wegfallen lassen hat, die Entwickler auf Objective-C gezwungen.
Die verbliebenen Entwickler sind alle damit beschäftigt, sinnlose Apps für das iPhone zu schreiben (selbst ich bin dafür schon angefragt worden;-)). Ist klar, dass keiner Zeit und Lust hat, unentgeltlich für VLC eine Mac-GUI zu entwickeln.
Interessant ist übrigens auch dieses Statement von videolan.org: "Finally, we have a few issues, since Apple doesn't want us on the Mac platform and is blocking us a lot, and refuses to explain why."
Konsequenz aus Apples Politik?
http://wiki.videolan.org/Lunettes
also reg dich ab und ergreife nicht jede chance kausalketten zu konstruieren, um deinem kassandrakomplex zu froenen ;-)
ich fuer meinen teil haette gern mal gewusst, was videolan.org mit dem von dir zitierten statement meint. so wie es dort steht, ist es mir nicht aussagekraeftig genug.
Na ja
Hallo,
Unabhängig davon, ob dies nun bei VLC zum Tragen kommt, ist Apples Fixierung auf Objective-C als einzige Sprache für GUI-Anwendungen schon ein Problem, für die Portierung anderer Anwednungen auf OS X. Man brauct in diesen Fällen halt immer einen zusätzlichen Abstraktionlevel, der der Performance sich nicht zu gute kommt.
Insofern besteht (oder droht zumindest) dort in der Problem.
Bis dann
R"udiger
Aber sicher Konsequenz aus Apple Politik
Ob bzw. dass videolan.org ein neues Interface für die Mac-Version entwickelt ändert nichts an der Tatsache, dass es an Entwicklern für den Mac-spezifischen Teil fehlt. Das hat etwas mit den von mir beschriebenen Faktoren zu tun. Mag ja sein Du nicht in der Lage bist, da einen Zusammenhang zu erkennen. Aber ist das wohl Dein Problem.
Das Problem, mit dem VLC gerade zu kämpfen hat, zeigt natürlich auch, wie schwachsinnig die Behauptung gewisser Leute ist, dass der Wechsel auf x86 einen Vorteil für die Mac-Plattform gebracht hätte, weil es ja mehr Entwickler für x86 gäbe.
Was die videolan.org mit dem von mir zitierten Statement gemeint hat?
Ich vermute, dass sie keine oder nur abblockende Antworten auf Supportanfragen, welche Entwickler mit Select- oder Premium-Account an Apple richten können, bekommen.
Unabhängige Entwicklungen
Das Problem, mit dem VLC gerade zu kämpfen hat, zeigt natürlich auch, wie schwachsinnig die Behauptung gewisser Leute ist, dass der Wechsel auf x86 einen Vorteil für die Mac-Plattform gebracht hätte, weil es ja mehr Entwickler für x86 gäbe.
Hier werden IMHO zwei verschiedene Dinge in einen Topf geworfen: Die Prozessorplattform und die zur Verfügung gestellt Tool-Kits (Also bei OS X Carbon und Cocoa) sind zwei vollkommen unabhängige Paar Schuhe (mit zwei Aussnahmen: 1. Assemblerprogrammierung, 2. Übernahme von Binärblocks aus anderen OS, wie z.B. die Winodws-Codecs bei MPlayer oder Windowstreiber via Ndiswrapper für Linux)
Ich vermute stark der Zug zu Cocoa-only hin wäre auch bei PPC gekommen.
Bis dann
R"udiger
gcc vs XCode
Was mich nun interessiert. Klar das Mac OS X Programme mit XCode erstellt werden (sollten). Nur scheint das nicht die einzige Möglichkeit zu sein. Sofern man auf Aqua verzichten kann, oder nur ein Front-End für ein shell Programm braucht, funktioniert die Entwicklung des eigentlichen Programms auch unter gcc, ohne XCode.
Und sehe ich das recht, wenn es Portierungen von QT und gtk+ für Mac OS X geben würde, müßte man nicht mal das Front-End für Mac OS X im proprietären XCode entwerfen.
Da bleibt die Frage, da das iPhne SDK ja letztendlich etwas völlig anderes als XCode ist, ist XCode nicht eine Sackgasse? Oder erwartet Steve P. Jobs, der reale, tatsächlich in seiner eigenen Realitätsverzerrung, das sich die Welt komplett auf XCode um stellt? Man, es gibt immer noch Cobol und Fortran. Und da gibt es jemand, der in Anbetracht von Java, .net und C/C++ auf eine Variante setzt, die an keiner Uni gelehrt wird?
Nicht gcc vs Xcode sondern C/C++ vs Objective-C
Hallo,
Zum einen sind XCode und die gcc zwei verschiedene paar Schuhe (Xcode ist ein IDE, das auf dem gcc aufsetzt, gcc die "nur" eine Sammlung verschiedener Compiler (mit geminsamem Backend) für diverse Sprachen).
Zum anderen ist IMHO das gar nicht das Problem. Das Problem ist Objective-C. Anders als der Name suggeriert hat es mit C nur wenig gemeinsam dafür umsomher mit SmallTalk. Damit ist es aber ziemlich weit weg von dem, was die meisten Entwickler heutzutage gewiohnt sind. Nahezu alle verbreiteten Sprachen (C, C++, Java, C#, php) sind Abkämlinge der C/C++-Familie (php ist einn Hybrid aus Basic-Elementen und C-Elementen). Bei Skriptsprachen gibt es noch die eine oder andere Ausnahme (z.B. perl oder tcl), aber bei kompilierten Sprachen, besetzten andere Sprachen nur Nischen (z.B. Fortran (Wissenschaft), Cobol (Banken), Ada (Militär)) oder haben eine historisch gewachsenen Entwicklergemeinde, die aber so auch nur eine Nische darstellt (siehe das weiterleben von Pascal bei Delphi unter Windows).
Selbst wenn man alle in Nischen verbreiteten Sprachen hinzunimmt, bleibt Objektuve-C ein Exot, der aus der NextStep-Nische stammt. Somit baut Apple Hürden in Richtung auf Entwickler auf, die von anderen OS oder aus anderem Kontext kommen. Und das ist IMHO ein Problem.
Bis dann
R"udiger
XCode, gcc-Tools, alternative IDEs
Um ein Kommandozeilen-Programm zu schreiben, brauchst Du natürlich kein XCode. Den C-Code kannst Du in jedem beliebigen Texteditor schreiben und dann mit make blabla zu einem Mac-OS-X-Kommandozeilen-Programm übersetzen. Wobei das in XCode einfacher ist, denn C-Code kannst Du dort einfach per Copy&Paste einsetzen, das verwendete SDK per Menü auswählen und den Build-Button klicken (ist halt einfacher, als make blabla einzutippen).
Sobald Du aber ein Mac-OS-X-Programm mit Benutzeroberfläche bauen willst, bist Du (jetzt, da Carbon nicht mehr weiter entwickelt wird) auf Objective-C-Kenntnisse angewiesen. Ein z.B. Windows-Programm nach Carbon (die C-basierte Mac-OS-X-API) umzusetzen, bedeutete weitestgehend, die API-Calls im Code durch Carbon-Calls zu ersetzen, nach Cocoa (die Objective-C-basierte API) zu portieren, bedeutet aber, es praktisch neu schreiben zu müssen. Außerdem lernt man nicht mal eben eine neue Programmiersprache und schon gar nicht, nur um mal eben ein Programm nach Mac OS X zu portieren. Es gibt da zwar auch andere Möglichkeiten, wie Java oder QT etc. Aber das werden keine richtigen Mac-OS-X-Programme, das kommt immer nur halbgar portierter Mist bei raus, mit dem man richtige Mac-Benutzer mehr abschreckt, als sonstwas.
Fragen von keinerlei Sachkenntnis getruebt ...
wow. Dafuer dass hier einige immer die Welt erklaeren wollen, ist dieses Posting aber recht low level (euphemistisch formuliert). Ich denke mal jeder Xcode-Wikipediaartikel haette dir 80% deiner Fragen beantwortet.
Xcode ist lediglich eine IDE zum verwalten und bearbeiten von Softwareprojekten. Das koennen iPhone- oder Macapplikationen sein, das kann etwas in Objektive C sein, aber auch ein C Kommandozeilentool. Das bauen der Applikationen kann ueber das interne 'build'-System erfolgen oder man bindet etwas externes ein. Zum Beispiel 'make', was in der Unixwelt sehr verbreitet ist. Das Xcode Projektfile fuer die LLVM macht das beispielsweise so. Uebrigens ein C++ Projekt. Und kein kleines. Die Compiler die von Xcode standardmaessig genutzt werden: gcc oder llvm.
Qt und gtk+ auf dem Mac? Keine Ahnung was da aktuell laeuft, aber Google liefert beispielsweise:
http://www.gtk-osx.org/
http://doc.trolltech.com/4.4/install-mac.html
Objective-C zu lernen sollte kein Problem sein. Ausserdem ist es im Gegensatz zu C++ eine echte Obermenge von C.
Danke für die Blumen!
Ist ja toll, was man mit XCode alles machen kann. Boh-Ei. Die Frage, die sich eigentlich stellt, die ich aber nicht explizit ausgedrückt habe: Muss man für Mac OS X mit XCode programmieren, oder kann man auch bei einem Cross-Platform Tool wie Eclipse, Netbeans, ... oder anderen, ... bleiben?
Für X11 Anwendungen wohl definitiv ein "Ja". Aber wie sieht es mit Aqua-Anwendungen aus? Mich interessiert unter anderem _deine_ Meinung. Sollte man sinnvoller Weise für Mac OS X "konforme" Programme zwangsweise XCode und Objective-C nutzen, oder ist es ähnlich effizient und komfortabel wenn man bei einer unabhängigen IDE und C/C++ bleibt?
wieso _meine_ meinung?
kann man jetzt zu einer entscheidungsfrage eine meinung haben?
keine ahnung was man fuer einen handstand machen muss, um ausserhalb von Xcode die nib-files hinzubiegen, aber alles andere kannste wohl auch mit dem gcc und vi machen. ehrlich gesagt habe ich mich noch nie gefragt ob man macapplikationen auch auf anderen plattformen mit anderen IDEs entwickeln kann. steht sicher im internet.
Qt
Ja schon richtig. Programmieren kann man auch mit dem Texteditor :-)
Also Qt läuft schon lange unter OSX. Seit der 4er Version auch richtig gut. Seit 4.5 auf Wunsch auch mit Cocoa- (inkl. Rechtschreibprüfung) und 64Bit-Support. Die aktuelle Version ist die 4.6.
Der Jabber-Messenger PSI basiert z.B. auf Qt (4.5.3).
LyX basiert ebenfalls auf Qt.
Echte Cocoa-Anwendungen sind natürlich "besser" und schöner. Aber Qt ist klar dem GTK vorzuziehen - zumindest unter OSX (das AFAIK auch in der OSX Version noch nicht komplett ist).
Ach ja. Man kann Objective-C auch mit C++ mischen. Das Grundgerüst muss natürlich Objective-C sein.
Btw:
Ein Unternehmen will Gewinn machen. Wenn man glaubt, dass man einen Gewinn erwirtschaftet, setzt man es um.
Ein Unternehmen _muss_ Gewinn machen!
Sogar ein gemeinnütziges Unternehmen. Ansonsten droht, je nach Finanzstatus, die Pleite.
Die Frage ist doch, ob Apple eine Schmiede für Entwicklungsumgebungen ist, und das Geld dadurch verdient, dass man Entwicklungsumgebungen gegen Bares verkauft?
Oder ob Apple das Geld damit verdient, das man Computer mit einem proprietären OS verkauft auf dem auch andere Programme laufen. Das alte Henne-Ei Problem. In der Regel werden Rechner nicht verkauft, auf denen wenig bis gar keine Programme laufen. Das heißt, in der Regel sind Firmen daran interessiert, das Entwckler gerne für das System Programme schreiben. Siehe Monkeydance von Balmer. Developer, Developer, Developer ...
Wenn Apple Profit-Orientiert ist, wieso gibt es XCode als Bundle für Lau?
[Sinn entstellenden Typo ausgebessert]
iPhone SDK
Mittlerweile verkauft Apple ja Entwicklungsumgebungen gegen Bares. Sogar nur zusammen mit Hardware (welche nicht mal von Apple, sondern von Intel stammt).
Ein Unternehmen will Gewinn machen...
Ein Unternehmen will Gewinn machen. Wenn man glaubt, dass man einen Gewinn erwirtschaftet, setzt man es um.
Eben aus diesem Grunde hätten fachkundige Entscheider mit dem Wechsel zu Intel die Entwicklung weiterer Mac-Versionen eingestellt. Die Kosten sind dadurch um ein Vielfaches gestiegen. Außerdem läuft die Windows- oder Linux-Version ja auf einem "Mac" mit Intel ohne Geschwindigkeitseinbußen in der Virtualisierung. (Du bist doch derjenige, der immer behauptet, dass x86-Virtualisierung eine unglaublich geile Sache sei;-))
Apples ist sich dieses Risikos übrigens durchaus bewusst gewesen und gibt dieses auch in den Berichten für die Börsenaufsicht an. Zu Apples Glück zeichnen sich die Leute, die das in den Software-Firmen entscheiden nicht durch sonderlich große Fachkunde aus.
Ja.
Die zwei Ausnahmen Assemblerprogrammierung und Übernahme von Binärblocks kommen allerdings so selten zum Tragen, dass man selbst bei einer Angabe der Häufigkeit in "in x Promille der Fälle" für x noch ein paar Nullen hinter dem Komma braucht.
Zu Cocoa-only: Bis Tiger konnte davon ausgegangen werden, dass Carbon und Cocoa immer auf dem selben Stand gehalten werden. Erst mit Leopard, d.h. nach dem Wechsel zu Intel wurde beschlossen, dass Carbon nicht mehr weiter entwickelt würde (und die offenbar schon fertige 64-bit-Version wurde gestrichen). Für das Portieren von Windows- und Mac-OS-9-Programmen wurde übrigens lange Zeit darüber hinaus immer noch Carbon empfohlen. Erst seit kurzem wurde in die Anleitung ein zusätzlicher Satz davor eingefügt, dass Cocoa empfohlen wird. Das hört sich jetzt so an:
"Wherever possible, it is recommended that you develop applications using the Cocoa environment. However, Carbon is a good choice when your application is already implemented in C or C++ code that has been written in a procedural (as opposed to object-oriented) style."
Ich denke nicht, dass Carbon heutzutage wirklich noch eine "good choice" ist, denn es führt in eine Sackgasse und bedeutet Mittelfristig doppelte und dreifache Arbeit.
Eigentlich hätten die Entscheider in Software-Firmen mit dem Wechsel zu Intel die Entwicklung ihrer Software für Mac OS X einstellen müssen. Aber solche Entscheidungen werden ja bekanntlich nicht von fachkundigen Leuten gefällt.
Carbon als Übergangs-API?
Hallo,
Wenn ich mich an die Tage vor bzw. umd die Einfügrung von OS X zurückerinnere, dann ist damals Carbon erst während der Entwicklung hinzugekommen, da die Entwicklergemeinde nicht bereit war auf Cocoa umzusteigen und man deshalb ein Übergangs-API (nämlich alles das der alten Toolbox, was mit MultiTaksing etc vereinbar war) gezimmert hat. Diese API war dann Carbon. So ärgerlich die Fixierung von Apple auf Objective-C ist, die Festlegung auf Cocoa als API der Zukunft hat Apple IIRC sehr früh gemacht. Allerdings haben sie es zwischenzeitlich nicht mher getont, so dass man glauben konnte, sie hätten sich eines bessren besonnen.
Bis dann
R"udiger
Carbon-CFM vs. Carbon-Mach-O
Carbon war nicht als Übergangs-API gedacht.
Von Carbon gab es zwei Varianten: Carbon CFM und Carbon Mach-O.
Carbon CFM ist die Variante von Carbon, die gegen den Code Fragment Manager gelinkt wurde und nicht direkt gegen den Mach-Kernel und die unverändert auch unter Mac OS 9 mit CarbonLib lief. Das war die Übergangs-API.
Carbon-Mach-O dagegen war als gleichwertige Umgebung neben Cocoa gedacht und sollte immer auf dem gleichen Stand gehalten werden. Einziger Unterschied: Carbon wird verfahrensorientiert in Standard C programmiert, Cocoa objektorientiert in Objective-C.
Bis zu dem Zeitpunkt, wo Apple plötzlich ankündigte, dass es keine 64bit-Version geben würde, obwohl diese schon so weit fertig war.
Adobe und Microsoft u.a. Firmen, die große Mac-Software-Pakete im Angebot haben, sind übrigens bis zum Wechsel zu Intel bei Carbon-CFM (der Übergangsumgebung) geblieben und haben ihre Projekte nicht vom Code Warrior auf XCode umgesetzt. Mit Intel wurde sie gezwungen, auf XCode umzustellen. Als Umgebung in XCode haben aber eigentlich alle Carbon (Mach-O, die zu Cocoa gleichwertige Variante) verwendet. Für 64bit müssen sie ihre Projekte jetzt nach dem Wegfall vom 64bit-Carbon in Objective-C neu schreiben. Das gilt auch für viele von Apples eigenen Software-Pakteten.
Hm
Hallo,
Ich kann mich nicht daran erinnern, das dort so ein Unterschied gemacht wurde, den das Carbon-API sollte ja in beiden Fällen identisch sein. Nur das "Linking-Format" unterscheidet sich.
Tatsache ist aber auch, dass der Markt Cocoa nur in Teilen angenommen hat(te) und nun ein erheblicher Portierungsaufwand zu stemmen ist. Und ich versteh Apple auch nicht, warum sie kein weniger exotisches API anbieten (die Java-Variante von Cocoa ist ja auch schon lange wieder gestorben).
IMHO wird das aber dazu führen, das vermehrt auf Tookkits dritter für die Oberfläche gesetzt werden wird (also Qt, gtk oder Tk, oder WxWindows) und die ToolKit-Entwickler sich mit Objektive-C herumschlagen dürfen.
Bis dann
R"udiger
Nur in der Phase der
Nur in der Phase der Parallelexistenz von MacOS 9 und MacOS X wurde Carbon CFM und Carbon MachO gleich gehalten, aber in Carbon MachO war es damals schon möglich alle UNIX APIs zu nutzen.
Eben nicht
Der Unterschied zwischen CFM und Mach-O ist eben nicht nur das Binär-Format. CFM Carbon war dafür gedacht, Programme für Mac OS 9 und Mac OS X zu schreiben. Die API sollte nicht weiter entwickelt bzw. erweitert werden. Mach-O Carbon im Gegensatz war für reine Mac-OS-X-Programme gedacht und wurde auch weiter entwickelt und stetig erweitert.
Allerdings kann es sein, dass im Code Warrior, wie Du sagt, der einzige Unterschied wirklich zwischen CFM und Mach-O nur das Binär-Format war. AFAIK konnte man dort schon Mach-O-Binarys erzeugen, allerdings nur mit dem Funktionsumfang von CFM-Carbon. Um den vollen Umfang der Carbon-API zu nutzen, musste dann doch auf XCode umgesetzt werden (allerdings lassen sich in XCode wiederum keine CFM-Programme erzeugen).
Ist halt alles in bisschen kompliziert und offensichtlich haben auch die Entscheider bei Adobe, M$ etc. diese Unterschiede nicht mitbekommen.
Was die alternativen GUI-Toolkits betrifft, die Erfahrung zeigt, dass da immer nur Oberflächen bei rauskommen, denen man anmerkt, dass sie irgendwie portiert wurden und die den Ansprüchen richtiger Mac-Benutzer kaum genügt. Insofern ist die Entscheidung, Carbon zu streichen, nicht sonderlich schlau. Beim iPhone merkt man allerdings, wie gut es laufen kann, wenn es keine Alternative zu Cocoa gibt.
das heisst jetzt was?
carbon ist besser als cocoa oder was soll dein letzter satz bedeuten?
Persönliche Präferenzen
Hallo,
Das hängt IMHO von den persönlichen Präferenzen der jeweiligen Entwickler ab. Und diese sind natürlich stark durch die eigene Geschichte geprägt. Und da kommen eben nur wenige aus der Smalltalk/Objektive-C-Ecke und viele aus der C/C++-Ecke, sofern sie nicht unter NextStep programmieren gelernt haben, oder erst bei OS X eingestiegen sind und sich dann auch Objektive-C gestürzt haben.
Insofern ist für viele Carbon das bessere API, weil der Umgang damit vertrauter ist, Das ist aber keine Aussage zur technischen Qualität des einen oder anderen APIs.
Im Übrigen werden wohl zunehmen auch andere Toolkits auf Cocoa portiert. Mittlerweile gibt es eine Cocoa-Tcl/Tk Version (IIRC ist Tcl/Tk 8.6 auf dem Mac Cocoa only). Und zumindest vom Tk-Part profitieren auch andere Sprachen, z.B. phyton oder perl.
Bis dann
R"uidger
man merkt eindeutig aus
man merkt eindeutig aus welcher ecke du kommst. objektiv formuliert haette das ganze anders ausgesehen:
Smalltalk/ObjC - Ecke
Simula/C++ - Ecke
C - Ecke
Java - Ecke
denen aus den letzten beiden ecken sollte es schnuppe sein was sie neu lernen muessen. und abgesehen davon: ich denke mal es gab noch nie soviel ObjC entwickler wie heutzutage.
Kann ich so nicht nachvollziehen
Hallo,
Deine Zuordnung kann ich so nicht nachvollziehen. Aber vielleicht liegt das ja auch daran aus welcher Ecke ich komme ;-)
C++, Java und C# sind einander syntaktisch sehr ähnlich und bauen syntaktisch auf C auf. Alles was ich an Objektive-C-Code gesehen habe ist doch sehr anders. Ebenso sieht Simula-Code (soweit ich ihn eben beim schnellen Googlen gefunden habe) eher nach Pascal/Modula aus als nach C (aber auch das nur entfernt). Dagegen hat eine Sprache wie php sich an vielen Stellen bedient, nicht zuletzt bei C. Insofern ist php IMHO auch ein entfernter Verwandter dieser Familie.
Ich muss zugeben, die Zuordnung Obj-C -> SmallTalk kenn ich nur vom Hörensagen. Möglicherweise bestehen auch dort große Syntaktische Unterschiede.
Mir ging es mit meiner Ausgae weniger um konzeptionelle Ähnlichkeiten, als darum, wie man den Einstieg in eine Sprache in eine Sprache schafft. Und da ist IMHO die Vertrautheit mit der Syntax und den dazugehörigen Strukturen. Wenn alles anders aussieht, erfordert dies immer eine zusätzliche Portion Umdenken (zumindest anfangs).
ich denke mal es gab noch nie soviel ObjC entwickler wie heutzutage.
Damit hast du - OS X sei Dank - sicher recht. Ohne OS X wäre Obj-C eine Nischensprache wie Modula oder PL/I heutzutage. Umgekehrt stellt sich die Frage, ob es nicht noch mehr OS-X-Coder gäben, wenn Apple statt auf Obj-C auf (z.B.) C++ gesetzt hätte.
Bis dann
R"udiger
Umgekehrt stellt sich die
Umgekehrt stellt sich die Frage, ob es nicht noch mehr OS-X-Coder gäben, wenn Apple statt auf Obj-C auf (z.B.) C++ gesetzt hätte.
die frage ist doch eher: haette apple ein carbon touch genauso schnell und elegant hinbekommen, wie ein cocoa touch? os x wurde ja eher um objC designt als um c++. und die hohe anzahl an objC entwicklern ist ja vor allem der mobil-osx variante zu verdanken.
ansonsten sehe ich bei der aneignung einer neue sprache eher konzeptionelle als syntaktische huerden. wie toll C entwickler mit dem syntaktisch sehr aehnlichen C++ klar kommen sieht man immer wieder wenn in C++ jede chance objektorientiert zu programmieren ausgelassen wurde. vielleicht ist ein klarer syntaktischer schnitt zwischen den programmierkonzepten manchmal hilfreicher.
was mich an dieser diskussion hier aber meisten stoert: auf der einen seite wegen prozessormonokultur rumheulen, auf der programmiersprachenseite dieses aber einfordern. geht's noch?
Ja, mit jedem Port hat Apple Entwickler verloren.
Ursprünglich ist das Mac System mit ObjectPascal (nicht mit TurboPascal und Nachfolgern verwechseln) entwickelt worden. Apple hatte als einer der ersten Firma ein Framework für die Applikationsentwicklung angeboten: MacApp - ObjectPascal. Noch zu 68k Zeiten wurde dann ObjectPascal durch C ersetzt, und MacApp von ObjectPascal zu C++ portiert. Von Symantec gab zu 68k Zeiten das TCL Framework, welches ebenfalls für viele Anwendungen benutzt wurde.
Da ich damals den Schritt von 68k zu PowerPC mitgemacht habe, weiß ich noch wie viele Programme damals eingestampft wurden, weil sie noch in ObjectPascal geschrieben waren, und Apple den Support in MPW für ObjectPascal auf PowerPC nicht eingebaut hat. Mit dem Wechsel zu PowerPC kam dann Metrowerks ins Spiel (später eine Motorola/Freescale Tochter), die C, C++ und Anfangs auch noch ObjectPascal für PowerPC anboten. Mit dem Metrowerks Compiler wurde PowerPlant mitgeliefert, ein neueres und bessere Framework als MacApp, so daß viele der wichtigen Applikationen zunehmend mit PowerPlant entwickelt wurden.
Zu 68k Zeiten hatte Apple bereits ein UNIX im Produktkatalog - A/UX, was auch damals schon eine spezielle MacToolBox enthielt, so daß man spezielle A/UX Programme mit Mac Oberfläche bauen konnte. Wenn man so will der Urahn von Carbon MachO. Leider hat Apple damals den Fehler gemacht bei Wechsel von 68k auf PowerPC nicht konsequent auf A/UX zu setzen, das hätte damals allen viel Ärger erspart, und der Merger mit NeXT wäre nie ein Thema gewesen.
Cocoa fördert ganz massiv eine sprachliche Monokultur auf MacOS X, weil man eben nur mit Objective-C die wichtigen APIs überhaupt nutzen kann. Und im Gegensatz zu C APIs, sind Objective-C APIs von anderen Programmiersprachen nicht mehr sinnvoll nutzbar.
Apple hatte eine Zeit lang eine Java Bridge gepflegt, mittlerweile ist diese aber auch eingestellt, so daß es nur noch Community Bridges für Python und Ruby gibt. Aus allen anderen Programmiersprachen kann man Cocoa daher ohne beträchtlichen Aufwand nicht nutzen.
Schlußendlich muß man sagen, daß sich NeXT voll und ganz durchgesetzt hat, zum Nachteil aller die MacOS Programme entwickelt haben.
Tcl
Hallo,
so daß es nur noch Community Bridges für Python und Ruby gibt.
Es gibt noch (auch wohl im Wesentlichen dank der Community und eines (Ex?) Apple-Entwicklers) eine Cocoa-Tcl/Tk-Port, für den mittlerweile auch einige Mac-spezifische Extension programmiert werden und andere allgemeine Extension auf Cocoa-Tk portiert werden.
Bis dann
R"udiger
Tk, so wie ich Tcl und Tk
Tk, so wie ich Tcl/Tk kenne und die Texte im Netz dazu verstehe, nutzt Cocoa nur zur Ausgabe des GUIs. Bei Python oder Ruby wird direkt das Objektmodell von Objective-C unterstützt, so daß man Cocoa Applikationen in Ruby bzw. Python schreiben kann. Nach meinem Verständnis gibt es also keine Bridge für Tcl.
OK
Hallo,
Tk aus Tcl/Tk ist ja auch nur "semi-OOP". Insofern kann es das wohl das Objektmodell von Objective-C gar nicht abbilden. Immerhin kann man aber mittels Tcl/Tk weiterhin plattform-unabhängig programmieren(*) ohne sich mit Objective-C beschäfftigen zu müssen und bekommt dennoch (weitgehend) natives GUI. In diesem Sinne ist es schon eine "Bridge". Aber Python und Ruby als OOP-Sprache kann da sicher dichter an Objective-C ran.
Bis dann
R"udiger
(*) Soweit es bei Tcl seit jeher ging. Ein paar Kleinigkeiten sind auch bei Tcl plattformspezifisch zu beachten.
Panik!
Wer hat eigentlich eine Monokultur eingefordert? Ich denke, das will hier keiner, weder bei den Prozesssoren noch bei den Programmiersprachen. Ausserdem, wenn, dann Scheme.
Eigentlich kann ich nicht mitreden, denn ich kenne eigentlich nur Pascal, Scheme und Java etwas. Aber weder C/C++ noch Objective-C. Auf der anderen Seite, ein syntaktischer Schnitt wird nirgends gemacht. Im Grunde ist es doch ein Scheingefecht um Syntax und Semantik. Ansonsten wird in jeder Programmiersprache bei Bedarf der aktuelle Hype eingeflochten. Mehr oder minder geglückt. Ob man nun funktionale Teile in Java nachrüstet, oder die Seiteneffekte in Scheme bejubelt.
Letztendlich sollte jedes OS dem Programmierer die Wahl lassen, was _er_ bevorzugt. Nur Apple scheint damit ein Problem zu haben. Überspitzt gesagt (oder doch nicht): Wann wird Apple dazu übergehen und sich die Käufer aussuchen, die Apple Produkte kaufen dürfen? Es ist schon eine komische Welt, in der die Nutzer die Einschränkungen bejubeln, die Ihnen Apple macht, während sich immer mehr Programmierer finden, die das Geld sehen und dann sämtliche Bedenken fallen lassen. Sich in ein höchst eigenartiges System der Unfreiheit, Bevormundung und Abhängigkeit begeben (App-Store). Ich rechne zudem fest damit, das Apple das App-Store System auf die Desktops und Laptops übertragen wird. Eventuell mit einem "einfacheren" Entwicklungssystem? Würde mich nicht überraschen.
Zynische 2. Antwort
Im Übrigen sind die Sprachen der Zukunft doch eh JavaScript und Flash. Oder was wird sonst in der Cloud programmiert.
R"udiger
das flash unbedingt
das flash unbedingt notwendig ist beweist bereits diese seite hier mit der tag cloud (peinlich).
und das javascript die zukunft gehoert weiss auch apple: http://rentzsch.tumblr.com/post/286536824/apples-myriad-javascript-frame...
Nicht ganz
das flash unbedingt notwendig ist beweist bereits diese seite hier mit der tag cloud
Schalt mal Flash ab, dann wirst du sehen, die Tag-Cloud geht auch ohne! Vieeleicht nicht ganz so interaktiv, aber es geht. Flash ist also nicht notwendig.
Bis dann
R"udiger
OOP und Monokultur
Hallo,
wie toll C entwickler mit dem syntaktisch sehr aehnlichen C++ klar kommen sieht man immer wieder wenn in C++ jede chance objektorientiert zu programmieren ausgelassen wurde.
Ohne die Einzelfälle zu kennen, OOP ist beileibe nicht das allein selig machende Programmierparadigma. Es ist eine Bereicherunf, ganz sicher. Aber alles nur noch OOP zu machen ist, sorry, schwachsinn. Es gibt genug Anwendungen, die sich bessere Prozedual programmieren lassen, oder eben als Hybrid. Völlig überzogen word es IMHO, wenn es in Sprachen wie Java oder C# kein sinus-Funktion, keine Logaritmuisfuinktion etc mehr gibt, sondern statt dessen statische Methoden einer Klasse, die nur statische Methoden und Konstanten enthält. Das fördert nicht gerade die Übersichtlichkeit.
Das OOP so ein domierendes Paradigma geworden ist hat IMHO einen anderen Grund. Mit OOP lässt sich das Zusammenarbeiten vieler Enwtickler an einem Projekt einfacher organisieren, weil jeder nur für seinen kleinen Teil zuständig ist und dieser bis auf die definierten Schnittstellen vollkommen gekapselt ist. Ich befürchte aber, dass dadurch der Gesamtblick für globale Sideeffects (wobei viele durch konsequentes OOP vermieden werden, aber eben nicht alle) und die Performance leidet (weil Dinge die in einem gemeinsamen Speicherbereich nacheinander erledigt werden können, mehrfach hin und her kopiert werden, weil jede Klasse ihre eigen Kopie braucht, damit es eben zu weniger Sideeffects kommt).
was mich an dieser diskussion hier aber meisten stoert: auf der einen seite wegen prozessormonokultur rumheulen, auf der programmiersprachenseite dieses aber einfordern. geht's noch?
Da hast du glaub ich was falsch verstanden. Apple ist gerade dabei eine Programmiersprachenmonokultur bei ihren OS einzuführen, nämlich Obj-C. Und da dies eine Sprache ist, die ausserhalb von "Apple" so gut wie keine Bedeutung hat, ist dies doppelt schlimm. Zum einen eine Monokultur und zum anderen ein Exot. Auch wenn schwerfällt, hier ist IMHO Microsoft (vorerst?) den besseren Weg gegangen und bietet für ihr .NET verschiedene Sprachen an (zumindest C++, C# und VB, bei C und Java bin ich mir jetzt unsicher) und haben IIRC sogar die Option offengelassen, das dritte andere Sprachen hinzufügen (diese müssen dann halt nur den passenden Bytecode erstellen.
Bis dann
R"udiger
Nüchtern betrachtet, ja.
Für den Benutzer bringt Cocoa jedenfalls keinen Vorteil. Insgesamt sogar den Nachteil, dass Cocoa-Programme im Allgemeinen träger sind. Für den Entwickler bringt Cocoa den Nachteil, dass er eine neue Programmiersprache lernen muss, um ein Programm für Cocoa erzeugen zu können und dass er den Code für nichts anderes verwenden kann.
P.S. Falls irgendein Benutzer der Meinung ist oder irgendwo gehört hat, dass Cocoa ihm Vorteile gegenüber Carbon bringt, so möge er mal den Finder von 10.5 mit dem von 10.6 vergleichen. Die sind beide praktisch gleich (dem 10.6er-Finder fehlen ein paar Funktionen, dafür hat er ein paar "neue" (die schon der Mac-OS-9-Finder besaß) Funktionen bekommen). Einer von beiden ist Carbon und der andere Cocoa.
Kniffelfrage
Adobe Lightroom kam Anfang 2007 auf den Markt - sowohl für OS X, als auch Windows. Die Entwicklung hat natürlich schon lange vorher begonnen.
Zu dem Zeitpunkt als Lightroom auf den Markt kam, wusste noch niemand, dass es keine 64 Bit HiToolbox geben wird. Adobe selber hatte offenbar noch mit einem 64 Bit Photoshop (Carbon) geplant.
Obwohl also Adobe davon ausgegangen ist, dass es ein komplettes Carbon 64 Bit geben wird und Lightroom von Anfang an für zwei unterschiedliche Betriebsysteme erscheinen sollte (Windows und OS X), hat sich Adobe entschlossen für Lightroom auf Cocoa zu setzen.
Wie kann das denn sein, nach dem Expertentalk hier? ;)
Safari gibt es ebenfalls für Windows und OS X. Safari ist ebenfalls eine Cocoa-Anwendung.
Falls irgendein Benutzer der Meinung ist oder irgendwo gehört hat, dass Cocoa ihm Vorteile gegenüber Carbon bringt, so möge er mal den Finder von 10.5 mit dem von 10.6 vergleichen.
Ja. Beispiel:
Carbon-Finder/Anwendung liegt inaktiv im Hintergrund. Cocoa-Anwendung liegt innaktiv im Hintergrund. Fokus hat also eine andere Anwendung.
Klickt man jetzt auf einen Schalter des Cocoa-Finders (z.B. Listen oder Symboldarstellung), der inaktiv im Hintergrund liegt, verhält er sich anders als der Carbon Finder. Beim Carbon Finder wird einfach nur das Fenster des Carbon Finders aktiviert - während beim Cocoa Finder der Button ausgeführt wird.
Keine Kniffelfragen
Wie kann das denn sein, nach dem Expertentalk hier? ;)
Wie schon weiter oben gesagt, werden solche Entscheidungen nicht von Leuten gefällt, die fachkundig sind.
Safari gibt es ebenfalls für Windows und OS X. Safari ist ebenfalls eine Cocoa-Anwendung.
Auch das ist eine politische Entscheidung.
Außerdem sind Cocoa-Anwendungen für Windows nichts neues, schon zu NeXT-Zeiten gab es das NeXTStep-GUI-Framework für Windows (NT). Siehe http://en.wikipedia.org/wiki/OpenStep#OPENSTEP_Enterprise und http://upload.wikimedia.org/wikipedia/en/a/a4/OPENSTEP_on_Windows_NT.jpg
Beim Carbon Finder wird einfach nur das Fenster des Carbon Finders aktiviert - während beim Cocoa Finder der Button ausgeführt wird.
Davon abgesehen, dass Deine Aussage so pauschal nicht stimmt, hat das nichts mit Carbon oder Cocoa zu tun.
Z.B. werden nämlich die Elemente in der Seitenleiste beim Snow-Leopard-Finder beim Klick aus einem anderen Programm nicht direkt aktiviert, sondern erst beim zweiten Klick, beim Leopard-Finder werden sie aber direkt aktiviert. Die Seitenleiste handelt es sich in beiden Fällen um ein Cocoa-Element (auch beim Leopard-Finder, der eigentlich Carbon ist).
Wie schon weiter oben
Wie schon weiter oben gesagt, werden solche Entscheidungen nicht von Leuten gefällt, die fachkundig sind.
Ts, ts, ts...
Ganz davon ab stehen wirtschaftliche Fragen vor technischen Fragen, da es ums Geld verdienen geht.
Außerdem sind Cocoa-Anwendungen für Windows nichts neues, schon zu NeXT-Zeiten gab es das NeXTStep-GUI-Framework für Windows (NT). Siehe http://en.wikipedia.org/wiki/OpenStep#OPENSTEP_Enterprise und http://upload.wikimedia.org/wikipedia/en/a/a4/OPENSTEP_on_Windows_NT.jpg
Brauchst du mir nicht zu sagen, dass es das gab. Allerdings handelt es sich bei Safari nicht um eine "Cocoa-Anwendung".
http://www.tuaw.com/2007/06/24/safari-for-windows-does-not-equal-cocoa-f...
Habe kein 10.6 hier.
Ts, ts, ts...
Ganz davon ab stehen wirtschaftliche Fragen vor technischen Fragen, da es ums Geld verdienen geht.
Tja, nur dass durch diese technischen Fragen das mit dem Geld verdienen schwerer wird, da sich die Kosten vervielfachen (siehe nächsten Abssatz). Was aber die Leute, die das entscheiden, offensichtlich nicht mitbekommen haben.
Allerdings handelt es sich bei Safari nicht um eine "Cocoa-Anwendung".
Damit hätten wir einen weiteren Beweis dafür dass das, was Rüdiger und ich weiter oben gesagt haben richtig ist: Wenn man ein Programm von oder nach Mac OS X / Cocoa portiert, kann man den Code, den man dafür geschrieben hat, nur in die Tonne drücken um ihn dann komplett neu schreiben zu müssen. Wirtschaftlich ist das nicht sinnvoll.
Habe kein 10.6 hier.
Hättest Du nicht erwähnen brauchen, dass Du nur über Hörensagen schreibst.
Glaube an den Osterhasen?
Damit hätten wir einen weiteren Beweis dafür dass das, was Rüdiger und ich weiter oben gesagt haben richtig ist: Wenn man ein Programm von oder nach Mac OS X / Cocoa portiert, kann man den Code, den man dafür geschrieben hat, nur in die Tonne drücken um ihn dann komplett neu schreiben zu müssen..
Wo ist da der Beweis für neue/jungen Programme - also z.B. Safari? Den kompletten Code in die Tonne? So so!?! Wie war noch mal die Kniffelfrage (also bei _neuen_ Programmen)?
btw.
Nur weil ich aktuell kein 10.6 hier habe, bedeutet das nicht, dass ich es nicht genutzt habe.
Wirtschaftlich ist das nicht sinnvoll.
< ironie >Klar, "sinnvoller" ist es Software gar nicht erst anzubieten und auf die Einnahmen zu verzichten ... mal _pauschal_ ausgedrückt< /ironie > :rolleyes:
Eigene Links nicht gelesen?
Wo ist da der Beweis für neue/jungen Programme - also z.B. Safari?
Dazu hast Du doch gerade in deinem vorletzten Post einen Link gepostet: http://www.tuaw.com/2007/06/24/safari-for-windows-does-not-equal-cocoa-f... Da geht es um Safari für Windows.
Zitat daraus: "all of these APIs are C++ or C... even the WebKit." Furthermore, there are "no signs of Cocoa or Objective-C (strings or functions)" and "they wrote it in Microsoft Visual Studio."
Den kompletten Code in die Tonne? So so!?!
Den Code von Objective-C nach C und C++ umzusetzen (siehe Zitat "all of these APIs are C++ or C... even the WebKit." Furthermore, there are "no signs of Cocoa or Objective-C (strings or functions)" and "they wrote it in Microsoft Visual Studio."), bedeutet praktisch, ihn in die Tonne zu drücken und komplett neu zu schreiben. Das hat Apple bei Safari offensichtlich auch gemacht (machen müssen).
Wie war noch mal die Kniffelfrage (also bei _neuen_ Programmen)?
Wenn da irgendetwas kniffelig dran ist, dann liegt das wohl an Dir. Für mich jedenfalls gibt es da nichts kniffeliges dran.
< ironie >Klar, "sinnvoller" ist es Software gar nicht erst anzubieten und auf die Einnahmen zu verzichten ... mal _pauschal_ ausgedrückt< /ironie > :rolleyes:
Ja, natürlich. Wenn die Kosten die Einnahmen übersteigen ist es sinnvoller, die Software gar nicht erst anzubieten. Selbst, wenn dadurch nur die Gewinne sinkten. Oder meinst Du, die Aktionäre verzichten gerne auf ihre Dividende, weil es ihnen ach so wichtig ist, dass die Software auch für Mac OS X angeboten wird? Ob die Verkaufszahlen dadurch sinken, dass man die Software nicht für Mac OS X anbietet, steht zusätzlich noch in Frage. Der Kunde kann die Software ja in der Windows-Version in der tollen x86-Virtualisierung laufen lassen.
Auflösung
Ja, natürlich. Wenn die Kosten die Einnahmen übersteigen ist es sinnvoller, die Software gar nicht erst anzubieten.
Endlich mal weiter gedacht... aber es scheint sich ja dennoch zu lohnen ;)
Außerdem haben Firmen wie z.B. Adobe es auch nicht so unbedingt mit MS. Lässt man Apple fallen, liefert man sich MS allein aus...
Solche Überlegungen können auch noch eine Rolle spielen.
Wenn da irgendetwas kniffelig dran ist, dann liegt das wohl an Dir. Für mich jedenfalls gibt es da nichts kniffeliges dran.
Und du meinst ernsthaft, dass der komplette Code betroffen ist?
Ja, sieht so aus:
Den Code von Objective-C nach C und C++ umzusetzen
Gerade bei neuen Anwendungen (und von denen spreche ich) kann man das von Anfang an berücksichtigen -> nativer UI-Layer (z.B. Cocoa) ->
Rest weitestgehend plattformunabhängig. So wird es auch Adobei bei Lightroom gemacht haben.
Adobe Lightroom kam Anfang 2007 auf den Markt - sowohl für OS X, als auch Windows. Die Entwicklung hat natürlich schon lange vorher begonnen.
Zu dem Zeitpunkt als Lightroom auf den Markt kam, wusste noch niemand, dass es keine 64 Bit HiToolbox geben wird. Adobe selber hatte offenbar noch mit einem 64 Bit Photoshop (Carbon) geplant.
Obwohl also Adobe davon ausgegangen ist, dass es ein komplettes Carbon 64 Bit geben wird und Lightroom von Anfang an für zwei unterschiedliche Betriebsysteme erscheinen sollte (Windows und OS X), hat sich Adobe entschlossen für Lightroom auf Cocoa zu setzen.
vlc läuft doch auf befreiten Macs!
Also keine Panic. GNU/Linux auf die Hardware und gut ist's. Wie immer halt. Dann läuft der vlc auch auf Mac-Intel Hardware.
Überraschung
es stimmt. und : das 1% Code eines VLC zu einer Grundsatzudiskussion über Programmiersprachen führt, erstaunlich. Zur Zeit geht der Hype wieder in die Richtung Funktionalisierung und Vereinfachung (z.b. Java in Richtung Scala). Wie auch immer, mal so, mal so. Auch in Objective-C (eine echte krasse Verunglimpfung von Smalltalk, aber nett :)) ) kann man Code von andere Sprachen, so sie denn gewissen Grundvoraussetzungen folgen, einbinden. Sogar Java kann man instanzieren oder umgedreht via JNI native Programme parametrisiert aufrufen.
Worum geht es also bei VLC ? Der meiste Code ist unter C und C++ entwickelt, das "FrameWork" kennt XFree. Im wesentliche geht es um die GUI sowie die Darstellung in einem wie auch immer gearteten Pane sowie die entspr. Soundausgabe. Es ist zwar alles kein Hexenwerk, aber trivial ist nur die Bedienungs-GUI. Timing, Synchronität bei der Ausgabe von Bild und Ton müssen schon stimmen. Sicher auch kein Hexenwerk. Wenn es richtiggehend trivial wäre, würde sich beim Videolan, so nehme ich an, "mal eben" sich jemand drum kümmern, und zur Not würde einer der Profs/Lehrer der École Centrale Paris die Aufgabe vergeben den Mac einzubinden. Das Problem dabei ist, dass das Laufzeitsystem (hier Cocoa) halt so richtig schön versorgt werden muss. ich weiss nicht, inwieweit da es seitens Cocoa entsprechende einfache Möglichkeiten geboten werden, oder ob man da schon eine Anbindung via Quicktime wähle würde (bzw. dies in Cocoa einfach abgebildet wäre). Ich kann nicht beurteilen, wie schwer das wäre unter der Sprache Objective-C sowie der Laufzeitumgebung Cocoa.
Das aber sind alles technische Probleme, die lösbar sind (sie wurden bisher gelöst, warum also nicht auch weiterhin ?)
Das Problem ist ein ganz anderes, ganz unabhängig von der verwandten Programmiersprache, der Entwicklungsumgebung (gibts es noch was anderes als (IBMs)Eclipse und vielleicht (Oracles, früher Suns) NetBeans ?) oder der verwandten "Hachtwär" : das Interesse von Leuten in der Community es zu machen.
Sicher würden sich Firmen, die vielleicht sogar noch SW für den Mac (und nicht nur fürs iPhone) machen, finden auch mal eine Anfrage eines freien Developers qualifizert an den "Apple-Premium-Super-Gold-Master"-Support zu schicken, also durchzureichen, nur was wenn keiner mehr eine Frage stellt ? Weil einfach keiner mehr Lust dazu hat ?
Das ist das Problem, nicht die Technik. Technik ist nur Mittel-Zum-Zweck.
Objective-C läßt sich nur
Objective-C läßt sich nur schwer mit C++ kombinieren, obwohl es Objective-C++ gibt. Nur muß man einen C++ Programmierstil pflegen, der alles andere als schön ist und eher dem Stand von C with Classes entspricht. Das macht es aufwendig, ein Cocoa Frontend für einen C++ Core zu programmieren. In C++ benutzt man intensiv das RAII Idiom, was in Zusammenhang mit Objective-C++ gar nicht möglich ist. Das führt dazu, daß man den kompletten C++ Code isolieren und wrappen muß, so daß niemals Exceptions in Objective-C Code eskalieren (oder umgekehrt), und man muß penibel darauf achten, daß beim Werfen von Exceptions die C++ Objekte in Objective-C Klassen manuell zerstört werden, die Objective-C++ Laufzeitumgebung macht das nämlich nicht. Das liegt daran, daß Objective-C keine echten Exceptions kennt, sondern nur eine Art von jongjmp() Wrapper hat, und somit kein "stack unwinding" macht. => RAII funktioniert so einfach nicht.
Technisch ist es möglich beides zusammen zu bringen, nur lohnt sich das nicht so richtig. Man wird sehen, ob es noch jemanden gibt, der bereit ist die Arbeit zu machen.
man wird nicht umhinkommen...
Ich bin auch nicht so tief in Objective-C eingestiegen, dass ich mir klar machte, dass Resourcen nicht über den Stack allokiert und entspr. deallociert werden (destructor), sondern eher wie bei Java, .Net und anderen (älteren) Laufzeitsystemen/Interpretern läuft-
Anderseits, ist das ein Objective-C Problem oder eben eher ein FrameWork Cocoa Problem ? Egal, kann ein Problem sein....bei der engen Verzahnung von Objective-C mit Cocoa geht die Frage eh ins Leere...
Aber das führt eigentlich auch über das Thema hinaus.
Grss Frank