Neuigkeit von der WWDC2007 mit weitreichenden Auswirkungen

J

Jens Groh

|
Apple kündigt Teile von "Carbon" ab. So geschehen auf der WWDC2007.
Kein Spektakel in der Presse.
Und was geht uns das an?
Eine ganze Menge!

Hintergrund:
Carbon ist eine Schnittstelle für die Anwendungsprogrammierung (API), die geschaffen wurde, um den Firmen, die vor Mac OS X schon im Markt waren, den Umstieg von Mac OS 9 zu erleichtern. Deren Programmierer bekamen den alten "Stallgeruch" für das neue System, damit sie nicht revoltieren. Aber das verhinderte auch ihr Umlernen. Viele kleben noch heute notorisch an Carbon und scheuen sich, alles auf das eigentliche "Haus-API", also "Cocoa", umzuprogrammieren. Noch ein wichtiger Grund dafür ist, dass Cocoa in einer anderen Programmiersprache programmiert wird: Objective-C. Das schreckt viele Carbon-Anwender, weil sie meist C++ bevorzugen und irrtümlich annehmen, dass Objective-C ebenso kompliziert und aufwendig zu lernen sei. Tatsächlich ist es aber viel einfacher und vermeidet alle Konzeptfehler der Sprache C++.
Am leichtesten haben es seit OS X immer die Programmierer gehabt, die
- statt Altcode rumzuschleppen und immer wieder für neue Randbedingungen hinzupfriemeln, ihre Produkte komplett redesigned und sich dabei eng an Apples Empfehlungen gehalten haben: OS X sofort nutzen, mit den neuesten APIs und den mitgelieferten Tools.
- ein Softwaredesign mit extrem sauberer Systematik hatten (Abstraktionsschichten, Design Patterns...)
- oder einfach bisher NeXTStep-Programmierer waren.

Das alles gilt im Besonderen für die Audio-Programmiererszene.
Warum?
- In der OS 9-Audioszene brauchte man zum Programmieren eher Hackermanieren, weil das alte Betriebssystem für Echtzeitsachen so unzureichend ausgestattet war, dass man vieles daran vorbei programmieren musste. Deshalb gab es auch von Drittherstellern Behelfe, wie OMS und ASIO. Dinge also, die man sich auch erst wieder abgewöhnen muss, wenn die Funktionalität endlich dort ist, wo sie eigentlich hingehört: im Betriebssystem. Einige der Altprogrammierer folgen möglicherweise immer noch nur unwillig irgendwelchen "uncoolen" Apple-Vorgaben - und deshalb oft zu spät.
- Ein gescheites Audio-API für OS X (CoreAudio) kam tatsächlich erst spät, weil es beim Voläufer NeXT seit dem Wegfall der eigenen DSP-Hardware keine komfortable Audiounterstützung mehr gegeben hatte. Und CoreAudio reifte ärgerlich langsam. Sogar heute noch sind Teile noch nicht fertig spezifiziert, sondern nur in der Abteilung "Examples" zu finden.

Nun kommt also der Anfang vom Ende von Carbon: Teile davon (User-Interface im wesentlichen) werden in OS X 10.5 "Leopard" keine 64-Bit-Unterstützung bekommen.
Da ja fast jedes Carbon-Programm eine grafische Benutzeroberfläche hat, werden also die Programmierer bei ihren 32-Bit-Versionen bleiben müssen und den Leistungssprung der neueren Maschinen nicht nutzen können.

Ihr könnt euch denken, dass in Apples Carbon-Entwickler-Mailingliste die Hölle los ist. Hier ist eine Zusammenfassung.

Nun zu den Auswirkungen für den Audio-Bereich:
- 64 Bit ist für professionelle Anwender wirklich wichtig. Große Projekte stoßen heute schnell an die Grenzen des 32-Bit-Adressraums: Der entspricht nämlich nur 186 Minuten Material (mono / 96 kHz / Float)! In der Regel sind die 32-Bit-Programme da am Ende.
- Ein sehr kniffliges Problem sind die Plugins. Noch ungeklärt ist, ob überhaupt (oder wie) es möglich sein wird, 64-Bit-Hostprogramme mit 32-Bit Plugins zu mischen und umgekehrt. Ähnliche Probleme kennt man ja schon von PowerPC-Plugins in Intel-Hostprogrammen und umgekehrt. Auch keine Neuigkeit ist der Ärger, dass viele Carbon-Hostprogramme keine Cocoa-Benutzeroberfläche eines Plugins anzeigen können und umgekehrt.

Für mich war das die einzige wesentliche Neuigkeit der WWDC2007.
Ich bin gespannt auf die Reaktionen der Softwarehersteller.
 
Das ist mal ein interessanter Bericht, ich hab ne Weile nicht programmiert - daher auch diesmal nicht soooo neugierig gewesen..

Aber eins ist wohl vorprogrammiert: Das Chaos..
Privat bleibt ich eh bei dem, was grad da ist..
 
Tja, wenn man bedenkt, wie viele Audioprogramme auf Carbon basieren...
Definitiv Cocoa-basierte kenne ich nur wenige: GarageBand und Numerology (ist nur MIDI, da ist 64Bit unwichtig, aber hostet AUs).
Wer weiß Genaueres?
Nur um Logic braucht sich sicher niemand Sorgen zu machen.
 
Ja, da kommt ja ein Nachfolger, aber sicher nicht vor Leopard.. Und der Leo lohnt sich imho diesmal auch. Da weisste auch was die fehlt, wenn du mal wieder auf PC gehen musst.. diese Vorschau und Suche ist das Allerletzte..

Hmm, ich denke Ableton wird da eher modern sein, kenne die und die sind so drauf. Genau wissen tu ichs aber nicht..

Evtl gibts ja dann Listen in besseren Foren, das alte OSXAudio heißt ja jetzt anders, aber da fand ich bisher die kompetentesten Nutzer..

Numerology ist prima.. Ich denke aber, man wird uns das als Leopardized AU in ca 1 Jahr nach Release von Leo bringen als 64Bit und vielleicht noch in 2 Versionen oder sowas.. bis dahin arbeitet man einfach an seinem G5 mit Logic 6.43 weiter..
 
Moogulator schrieb:
Hmm, ich denke Ableton wird da eher modern sein, kenne die und die sind so drauf.
Da wäre ich nicht so sicher. Denn sie gehören zu den Firmen, die ihr Produkt zunächst auch für Mac OS 9 angeboten hatten.

Überlegt mal:
Welche Softwarefirmen gibt es, die erst auf den Markt kamen, als sie sich leisten konnten, auf eine Mac OS 9-Version zu verzichten? Verdammt wenige. Alle "großen Namen" waren vorher da, oder etwa nicht?

Das heißt, fast alle Hersteller der Programme, an die ihr am längsten gewöhnt seid, haben jetzt ein echtes, zusätzliches Problem am Bein hängen. (Außer vielleicht "Riesen" wie Adobe, die bekommen vielleicht Apples interne Version, die eben doch 64 Bit kann -- reine Spekulation...)

Sicher könnten die alle das inzwischen umgebaut haben, aber die meisten dürften ständig mit dringenderen Dingen beschäftigt sein, nach denen die Kunden verlangen und die auch tatsächlich Geld einbringen.
Nicht, dass ich so einen Umbau irgendeinem Hersteller nicht zutrauen würde, aber er bedeutet schlicht Arbeitsaufwand. Für manche eine Menge, für andere weniger.

Aber du hast schon Recht, wer "modern drauf ist", dem traue ich natürlich auch eher zu, dass er den Umstieg schon längst gemacht hat.
 
JA, ist schon eher Spekulation..
Wir werden sicher eine Welle von "Leopard-ready" Hinweise finden ab Herbst, aber die Features sind zumindest so verlockend, dass wir hier sicher auf Leopard gehen wollen, ich brauch sowas wie eine Systemweite gute Suche und da hat Apple noch einen draufgesetzt - Quicklook und Finder über alle Netzwerke hinweg.. Das Backupsystem und die Timemachine, die offensichtlich sich einfach alle Namen merkt, die je über es geflossen sind SOWAS ist dann schon weit näher an dem, wie wir Menschen suchen als alles andere bisher..

Chaoten wie ich werden das mögen, so..

Das 64Bit Problem ist insofern erstmal so anzunehmen: Die meisten PRogs werden 32er sein, aber wenn sie 64er werden, stört Leopard das null. Das Problem könnten aber Plugins sein, die an ein altes oder neues Hostprogramm gelangen, da weiss ich aber auch nicht wie das da genau abgehen wird..

Ich denke, es ist eh sinnig seine aktiv genutzten Programme auf ein kleines Set zu dampfen und dann ist das auch nicht so ein schlimmes Problem und man stellt sich dann drauf ein als Musik..

Aber Core Animation und Co machen schon eher mehr Bock, wieder zu programmieren..
 
Moogulator schrieb:
Ich denke, es ist eh sinnig seine aktiv genutzten Programme auf ein kleines Set zu dampfen..
das machen die meisten äppler ja sowieso - vorallem im vergleich zu windoz:
unter win war ich ewig am basteln und nix hat so gefunzt wie ich es wollte, mittlerweile hab ich beim apfel zu einem system gefunden, das mit wenigen zusätzlichen goodies genau und nur das macht was es soll. da dürfte auch nicht viel dabei sein, was künftig nicht mehr unterstützt wird.


mittlerweile (ver)traue ich auch darauf, das bei apple mit änderungsankündigungen -egal ob HW oder SW- auch wirklich was sinnvoll bewegt wird.
 
Hier erwähnt jemand einige Audioapplikationen.
Und schreibt einigen Blödsinn. Ich hoffe, ihr glaubt ihm jenes "...Apple's ridiculous Cocoa library..." nicht.
Ansonsten: So viel Schrott in den Kommentaren, mannomann! Obacht:
- Apple hat nicht behauptet, dass sie auch für den eigenen Gebrauch kein CarbonUI64Bit hätten (also zB für iTunes, Logic...).
- CoreAudio hat nichts mit Objective-C zu tun. (Es ist ein C-API)
- Es geht nicht um einen Umstieg auf CoreAudio, für niemanden. Carbon enthält eh nichts in der Richtung. Z. B. jedes Programm, das Audio-Units kennt, kann gar nicht anders als CoreAudio-basiert sein. Einziges Alt-API für Audio ist Quicktime, das vielleicht von dem einen oder anderen Programm genutzt wird, aber:
- Quicktime hat nichts mit den abgekündigten Carbon-Teilen zu tun.
 
Ach ja, und:
- Carbon war nie für die Crossplatform-Portierung da, sondern nur für die OS 9-Portierung.

Alles Schwachköpfe... ;-)
 
Das erinnert mich etwas an die Legacy (Serial, USB,...) oder A20 Gate Diskussion.

Leute, irgendwann müssen wir gewisse Dinge über Bord werfen statt ständig Altlasten mit rumzuschleppen. Die Wartung und parallele Weiterentwicklung von dem Zeug ist imho auch nicht für Apple einfach und billig.

Das erinnert mich auch daran das einige Firmen ewig lange Ihre Plugins über VST-AU Wrapper eingebunden haben. Irgendwo müssen die Hersteller inen Punkt setzten um die Entwicklung sinnvoll weiterzuführen....
 
richtig deutlich wird das im Logic thread, wo ich zumindest versuche, dies zu erklären.. Wenn man dann immernoch mit Jaguar arbeiten will und sich wundert, ist das sone Sache.. Das ginge, aber dann kommt da sowas raus wie das mitschleppen von DOS in Win etc.. nett, aber irgendwann wirds dann lästiger das mitzuschleppen..

Ich war auch nicht sooo glücklich, als Apple ADB und vorallem RS422 gekippt hatteu und mein neues Unitor mk1 ja kein USB hatte... das war teuer, denn ich wollte einen neuen Rechner..
 
Am interessantesten finde ich jetzt das Problem Plugins. (Ich meine jetzt nur AudioUnits; wer VST programmiert, ist sowieso selber schuld. ;-) ) Viele Entwickler stehen jetzt dumm da, weil sie sich an Apples Rezepte gehalten haben. Und gerade da liegt einiges im Argen. Die Audioabteilung scheint nämlich einen anderen "Stil" zu haben als die Führung. Kein Wunder, die NeXT-Crew hatte vor 10 Jahren kein Audio-Subsystem mitgebracht, und darum sicher auch keinen Audio-Chef.
Jetzt, wo der Anfang vom Ende von Carbon sichtbar wird, werden sich Apples eigene CoreAudio-Leute kaum noch weiter leisten können,
<flamewar>
- ihre eigenen Beispiele fast nur auf Carbon-UI aufzubauen
- ein SDK in C++ zu machen -- was es bei keinem anderen Apple-API gibt
- selbiges in solch einem Bastlerstil zu bauen, dass es zu Recht in den Ordner "Examples" gehört (wo es tatsächlich ist)
- moderne Softwaredesigntechniken zu ignorieren
- die Dokumentation unvollständig und wirr zu schreiben (Reverse Engineering ist z. Zt. teilweise die einzige Abhilfe)
- ein Referenzdokument mit der exakten Verhaltenspezifikation seit Anbeginn schuldig zu bleiben
- ihr Design (also nicht nur die Implementation) immer wieder nachbessern zu müssen, weil man nicht richtig nachgedacht hat
- sich um ein richtiges, objektorientiertes Framework in Stile von Cocoa herumzudrücken (NeXTStep hatte es anfangs drin, es hieß SndKit, später fiel es weg).
</flamewar>
Mir scheint, dass innerhalb von Apple politisch noch was geklärt werden muss, und vielleicht ist es bald endlich soweit.
 
Kann das daran liegen, dass sie es nicht wissen oder wie kommt sowas zustande, durch abgucken und aufbauen habe ich zB oft gelernt, wie man das Ding einsetzt.. Es wäre sicher gut, wenn man es mal in perfekt sehen würde, so könnte man dann auch leicht direkt einsteigen mit der richtigen Technik..
 
Moogulator schrieb:
durch abgucken und aufbauen habe ich zB oft gelernt, wie man das Ding einsetzt.. Es wäre sicher gut, wenn man es mal in perfekt sehen würde, so könnte man dann auch leicht direkt einsteigen mit der richtigen Technik..
Genau meine Meinung. Abgucken und drauf aufbauen finde ich korrekt, und ich hätte auch gern ein perfektes Referenzdesign als Vorbild.

Und weil ich das bisher nicht gefunden habe, bin ich zur Zeit dabei, eine AU-Vorlage ohne das SDK zu bauen, die mein eigenes Referenzdesign werden soll. Aber die ist noch lange nicht vollständig. Immerhin besteht sie schon mal die AU-Validation. Sie wird erst mal auf wenige Funktionen beschränkt und auf leichte Wiederverwendbarkeit ausgelegt. Komfort-Versionen kann ich dann immer noch machen.
Wenn ich mich mit dem Ergebnis wohlfühle, wäre ich wohl auch bereit, das dann an Interessierte weiterzugeben. (Ob das dann jemand für perfekt hält, sei dahingestellt... ;-) )
 
Jens Groh schrieb:
Moogulator schrieb:
durch abgucken und aufbauen habe ich zB oft gelernt, wie man das Ding einsetzt.. Es wäre sicher gut, wenn man es mal in perfekt sehen würde, so könnte man dann auch leicht direkt einsteigen mit der richtigen Technik..
Genau meine Meinung. Abgucken und drauf aufbauen finde ich korrekt, und ich hätte auch gern ein perfektes Referenzdesign als Vorbild.

Und weil ich das bisher nicht gefunden habe, bin ich zur Zeit dabei, eine AU-Vorlage ohne das SDK zu bauen, die mein eigenes Referenzdesign werden soll. Aber die ist noch lange nicht vollständig. Immerhin besteht sie schon mal die AU-Validation. Sie wird erst mal auf wenige Funktionen beschränkt und auf leichte Wiederverwendbarkeit ausgelegt. Komfort-Versionen kann ich dann immer noch machen.
Wenn ich mich mit dem Ergebnis wohlfühle, wäre ich wohl auch bereit, das dann an Interessierte weiterzugeben. (Ob das dann jemand für perfekt hält, sei dahingestellt... ;-) )

oh, cool.. Daran wäre ich sehr interessiert..
Einfach aus Interesse..

Falls du das öffentlich machen wolltest oder privat zuschicken würdest, wäre ich froh wie ein Floh..
 


Zurück
Oben