Snow Leopard – Was Apple aus dem Vista Desaster gelernt hat.
Windows Vista, des Fanboys liebstes Thema. Auf den vergangenen 4 bis 5 Apple Events haben wir uns ständig dieselbe Folie ansehen dürfen. 5 Releases von OS X gegen ein Windows. Oberflächlich hat sich Apple, wie auch die ganze Technikbranche, lustig gemacht über den Software Giganten. Innerhalb der Abteilungen liefen aber so einige Worst Case Analyse zu den eigenen Produkten.
Zwar kennen wir alle verspätete und verbugte Software, aber in den meisten Fällen schieben wir, wie auch die Mitarbeiter, dies auf unzureichende Ressourcen. Seien wir ehrlich, wenn ein Spiel zu spät ist, dann war das Entwicklungsteam zu klein, die Programmierer zu schlecht oder das Management hatte keine Ahnung. Aber Microsoft? Gut wir (hier) halten nicht viel von dieser Firma, aber wenn man mal den Sinn für das gewisse Etwas außen vorlässt haben sie quasi endlose Ressourcen. Also wie kann sich eine annehmbare und in vielen Bereichen unverzichtbare Software zu so einem Monstrum entwickeln?
Man kann dem Management und den Programmierern nur zu einem gewissen Teil die Schuld zusprechen, denn von beiden gab es mehr als genug. Microsoft hätte zwei paralele Teams aufbauen können, aber dadurch nichts beschleunigt. Windows selbst ist an der Misere schuld! Zu lange hat man das Betriebssystem zu breit werden lassen, und zu lange hat man Fehlerhaftes Verhalten aus Kompatibilitätsgründen (!!) beibehalten. Jeder Neuschrieb, jede Änderung hat Auswirkungen auf Programme, gerade weil Windows auch tote Software in Unternehmen weiterhin unterstütz. Apple hat schlicht und ergreifend Angst vor diesem Problem. Das gesamte OS Team auf die Ausdünnung des OS anzusetzen ist weniger eine Akute als viel mehr eine präventive Maßnahme.
Denn Software schreiben ist nach wie vor mehr eine Kunst als eine exakte Wissenschaft. Studien zufolge scheitern weiterhin ca. 80% der Softwareprojekte an den gesetzten Zielen. Mal ist man zu spät, mal kann das Programm zu wenig, mal ist das Ziel schlicht nicht erreichbar. Zwar sind Konzepte wie Objektorientierung, die daraus resultierenden Patterns (MVC als Basis für Cocoa), Memory Management heute durchaus verbreitet. Aber Software ist immer noch ein Biest. Hat man erstmal ein Programm fertig, wird die Wartung nicht minder aufwändig. Gerade Funktionserweiterungen tendieren dazu unglaublich hässlich zu werden, weil man ja meist das Feature einfach nur irgendwie reinkriegen will.
Obwohl Apple nicht zuletzt aufgrund der klaren NextStep/Unix Strukturen hier im groben sehr ordentlich gearbeitet hat, haben Sie in der Vergangenheit doch größere Probleme TimeMachine oder Auflösungsunabhängigkeit nachzubauen. Klar, 2 Jahre für ein Backupprogramm sind wirklich schnell (ernsthaft), aber Quartz Extreme in ein Jahresrelease einzubauen ist deutlich schneller. Quartz 2D Extreme hat zuletzt auch 2 Jahre gebraucht. Wenn Apple also die Releasezyklen wieder erhöhen will, ist es Zeit für ein kleineres, oder zumindest klareres, OS.
Also wird Apple nichts machen? Nein, man wird sich nur darum kümmern, wie Microsoft es vor hatte die internen Abhängigkeiten zu verkleinern, denn je weniger von einer bestimmten Änderung abhängt, desto kleiner ist das Problem für sich. In diesem Schritt wird Apple bereits fertige Teile des Betriebssystems austauschen oder umarbeiten, dadurch ist der Einsatz von schon seit längerem experimentell laufenden Projekten (GrandCentral oder Open CL) natürlich besonders einfach. Aber das Verlassen dieser Ebene zugunsten von sichtbaren Features grundsätzlich schwierig, weil dann ein Projekt mit dem Einbau, ein anderes mit der Nutzug beschäftigt ist, die in zu starker gegenseitiger Abhängigkeit stehen.
Also was soll uns in Zukunft erwarten? Schlicht mehr und bessere Features aufgrund eines aufgeräumten Betriebssystems! Apple hats gelernt, Microsoft vielleicht mit Windows 8?