Odkryto,
że WebKit, otwarty silnik do renderowania stron internetowych
dostarczany przez Apple, używa wielu nieudokumentowanych funkcji.
Dzięki jednej z nich Safari może w niektórych sytuacjach
działać
szybciej niż przeglądarki konkurencji.
Odwołania do nieznanych
funkcji odnalazł Vladimir Vukicevic, programista Mozilli, gdy usiłował
rozwiązać problem z wydajnością w Firefoksie 3. Doszedł do wniosku, że
winna optymalizacja Beam Sync wprowadzona w Mac OS X Tiger. W
dokumentacji dostarczonej przez Apple odnaleźć można tylko pobieżne
informacje na temat rozwiązania, nie dające możliwości zastosowania go
w praktyce. Vukicevic postanowił wtedy zajrzeć do kodu Safari. Odkrył
wtedy z zaskoczeniem, że przeglądarka Apple używa nigdzie nie
udokumentowanej funkcji WKDisableCGDeferredUpdates. Jest ona zawarta w
zamkniętej bibliotece, dostępnej na niejasnych warunkach licencyjnych.
O sprawie pisze
dalej Robert O'Callahan, inny programista Mozilli. Zauważa on, że
funkcje WK* tylko opakowują nieudokumentowane funkcje frameworka
WebKit. Wysnuwa wniosek, że prawdopodobnie udostępnianie tych funkcji w
postaci binarnej, bez źródeł ma na celu utrudnienie życia
niezależnym
dostawcom oprogramowania. Uważa, że gdyby czegoś takiego dopuścił się
Microsoft, zapewne stanąłby przed sądem UE a być może też amerykańskim.
Dave
Hyatt, programista z Apple, który kiedyś pomagał przy
Firefoksie będąc
w Netscape odpowiada, że sposób obchodzenia
problemów wydajnościowych
zawarty w zamkniętej bibliotece a używany przez Safari nie jest
właściwą metodą. Dlatego nie powinien być używany i nie powinien być
dostępny. Na to z kolei zareagował
Robert Accettura, twórca oprogramowania shareware dla Maca
oraz
ochotnik pomagający Mozilli. Zapytał co w takim razie mają zrobić
programiści skoro Apple nie stosuje się do własnych wytycznych.
Ciekawą
odpowiedź dał Maciej Stachowiak, programista w Apple. Zachęcił bowiem
programistów aby zgłaszali ukryte funkcje jakie by chcieli
aby Apple
opublikowało. Proszenie jednak o co, co nie wiadomo czy istnieje będzie
jednak problematyczne. Programiści będą musieli więc tak jak Vukicevic
przeglądać udostępnione kody aplikacji Apple i szukać w nich odwołań do
nieudokumentowanych funkcji, które mogą się wydać potrzebne.
Biorąc
pod uwagę ilość dokumentacji dostarczanej programistom przez Apple
raczej nie można stwierdzić, że w tym akurat wypadku chodziło o
zaszkodzenie konkurencji. Nie uważa
tak też sam Vukicevic. Zabrakło jednak otwartości, która
ułatwiłaby
życie programistom Firefoksa i innych aplikacji korzystających z
frameworka WebKit.