Blog von Jens Franke » 2008 » October » 17

Archiv für 17. October 2008

Das Arbeiten in einer Welt voller APIs

Eigentlich wollte ich mir einen Beitrag zum Flash Player 10 sparen, aber die sehr geschätzten Kollegen André Michelle und Joa Ebert haben mich dann doch dazu bewegt zumindest indirekt darüber zu schreiben.

Initial hätte ich nicht gedacht, dass dieser Beitrag so lang wird. Ich hoffe ihr habt ein wenig Zeit mitgebracht und findet das Thema ebenfalls so diskussionswürdig wie ich. Ich freu mich auf Eure Meinungen.

Seit dieser Woche steht nun der finale Player zum Download bereit. Im Vorfeld hatte die Hobnox-Crew reichlich Lärm gemacht, um mit dem neusten Player Sound dynamisch manipulieren zu können. Wenn man so viel Herz und Leidenschaft in ein Projekt steckt und es an dieser einen Stelle klemmt, kann man so einen Wunsch natürlich nachvollziehen. Aber ich war mehr als erstaunt als Adobe ihren Wunsch erhört hat.

Neutral betrachtet ist dieses Feature natürlich nichts für die breite Masse, sondern eher für 0,0001 % der Entwickler, also André, Joa und einer Handvoll anderer Entwickler. Aber egal, man freut sich über den Erfolg der Jungs.

Wieso Adobe aber so nett war, bleibt mir schleierhaft. Aus meiner Sicht verfolgt Adobe die Marschroute in jeder Release viele schöne neue WoW-Effekte zu implementieren, die sich gut verkaufen lassen - sowohl bei ihren Kunden als auch bei den Kunden der Kunden. Klar, ein, zwei Features gehören eher zu der nüchteren Feature-Kategorie, aber es ist einfach unverständlich, dass jahrelang bekannte Bugs nicht behoben werden.

In der neuesten Version gibt es für die Effekt-Etage ein bisschen 3D, Inverse Kinetics, Bones und natürlich das neue Tool Pixel Blender. Auch wenn PV3D bei mir die Freude an 3D getrübt hat, bin ich froh über den 3D-Support der Flash API. In Zukunft wird bei 90% der Aufgaben die API von Flash ausreichen und somit muss man sich nicht mehr mit der Jenga-Turmähnlichen-API von PV3D rumschlagen, was wirklich schmerzhaft sein kann. Fraglich bleibt natürlich, ob und wo man 3D wirklich braucht bzw. wie ein sinnvoller Einsatz aussieht, aber das Thema hatte ich bereits auf der Flashforum Konferenz angesprochen.

Bei Inverse Kinetics und Bones bin ich einmal gespannt, was die Animationsspezis schönes zaubern und wie qualvoll dann die Einbindung der IDE-Erzeugnisse im wirklichen Projekt ist. Beim Thema Pixel Bender habe ich noch keine wirkliche Meinung, weil ich es noch nicht getestet habe. Derzeit wirkt es auf mich noch wie ein Tool von Nerds für Nerds. Beispiel gefällig?

Audio-Mixing mit Pixel Bender - mir fehlt noch gänzlich ein realer Einsatzzweck.

Aber wo wir wieder beim Thema Audio sind, will ich auf meinen initialen Grund für diesen Beitrag zurück kommen.

Die Hobnox-Gang kündigte groß an, dass sie sobald der Flash Player 10 verfügbar ist, eine neue Version ihres Audio-Tool veröffentlichen werden. Ich habe diese Nachricht mit erstaunen wahr genommen. Man musste annehmen, dass sie schon längere Zeit produktiv für den Flash Player 10 entwickeln haben. Aus meiner Sicht mutig, war doch der Player bis dato nur als Beta-Version verfügbar, aber ich führte es auf gute und sichere Kontakt bei Adobe zurück.

Tja, da lag ich wohl falsch. Nach der Relase des Flash Players 10 ist die Stimmung im Audio-Lager schlecht. Auf der Zielgeraden hat Adobe einfach die API geändert und den Jungs beinahe das Genick gebrochen.

Traurige Sache, wo ich auf der einen Seite den Frust der Jungs verstehen kann, aber auf der anderen Seite auch ein allgemeines Problem sehe, welches mehr und mehr Einfluss auf die Projekte nimmt und der Grund für diesen Beitrag ist.

Das Problem sind frühzeitig frei zugängliche APIs und ihr sofortiger Einsatz in kommerziellen Projekten. Auch wenn es komisch klingt, heute gehört es zum guten Ton seine Software bereits im Alpha- oder Beta-Stadium auf den Markt zu werfen. Verpackt mit effektvollen Demos kann man schnell für viel Aufsehen in der Flash-Community sorgen. Und es dauert nicht lange bis diese technischen Demos im kreativen Zaubertopf landen und in ein Konzept gepresst werden.

APIs sind aber doch eine super Sache? Auf den ersten Blick sicherlich, aber beim Einsatz in kommerziellen Projekt können sie schnell zum unkalkulierbaren Risiko werden.

Bestes Beispiel dafür ist PV3D. Das Entwickler-Team präsentiert regelmäßig neue Demos, um das Rennen der 3D-Engines weiter anzuführen. Ich frage mich schon seit langem, wie wichtig es dem Core-Team eigentlich ist, dass andere deren eigene API nutzen?

Mein Verständnis war immer, wenn ich etwas anderen zur Verfügung stelle, dann so, dass sie damit vernünftig arbeiten können. Ohne saubere Dokumentation und mit ständigen Änderungen an den Kernschnittstellen würde ich mir vom heutigen Standpunkt aus manchmal wünschen, dass sie die API nicht öffentlich zugänglich gemacht hätten. Dann hätten wir uns viele ideenfreie Projekte sparen können und ich mir einige Überstunden und graue Haare. In meinen letzten Projekt, wo der Einsatz von 3D sogar gut zum Thema passte, hofften wir bei jedem SVN-Update, dass die vielen vorhanden Fehler behoben werden. Die Praxis sah in der Regel leider anders aus. Updates gab es zwar genug, aber wenn sie eine Verbesserung mit sich brachten, dann folgte auf den Schritt auch meist ein neues Problem.

Diese Problematik trifft nicht nur auf Community-Projekte wie PV3D zu, sondern auch auf die großen der Branche. Aktuell habe ich die Ehre mit der Flash API von Google Maps zu arbeiten. Vom API-Design ist das natürlich ein Unterschied wie Tag und Nacht zu PV3D, aber auch hier komme ich mir langsam vor wie der persönliche Bugreporter vom Hofe Google.

Ich will nicht sagen, dass ich auf Kriegsfuß mit APIs stehe. Sie bieten mir ohne Frage viele tolle Möglichkeiten, aber beim Einsatz in kommerziellen Projekten, die in einer definierten Zeit zu realisieren sind, bin ich mit der Zeit vorsichtiger geworden. Auch wenn Demos zeigen, dass man diese oder jene Sache machen kann, steht für mich die Überprüfung dieser Features im Kontext der gesamten Anwendung an oberster Stelle. Und manchmal muss man somit auch auf ein neues Feature verzichten, aber oft ist weniger auch mehr, z.B. Performance.

Ich will niemandem den Spaß am Spielen mit den APIs nehmen, aber schreitet als Entwickler ein, wenn Dritte API-Demos zu einem Konzept zaubern. Verwendet ihr APIs von Dritten, dann solltet ihr immer ausreichend Buffer einkalkulieren.

Nicht selten kommt man in Grenzbereiche der API, wo man sich entweder tief in die API einarbeiten muss, um sein Ziel zu erreichen oder einfach in der Abhängigkeit gefangen ist und warten muss bis die API-Entwickler einen erhören und dann auch noch das Richtige veröffentlichen.

Eine Gradwanderung, die viel Feingefühl und einen kühlen Kopf benötigt.

Das war mein persönliches Wort zum Sonntag bereits am Freitag. Habt ein schönes Wochenende, geht raus und genießt die Farben des Herbstes.

Wer es nicht in die Natur schafft, der kann sich auch schöne Farben über die API von Kuler besorgen.

16 Kommentare 17. October 2008

Kalender

October 2008
M T W T F S S
« Sep   Nov »
 12345
6789101112
13141516171819
20212223242526
2728293031  

Posts nach Monat

Posts nach Kategorie