HTML5Labs, MSowy sposób na niestabilne nowości?
Wojna, wojna nigdy się nie zmienia Microsoft postawił sobie za punkt honoru pokazanie IE9 jako innowacyjne przeglądarki. I nie tylko w sensie popatrzcie jakie IE9 jest wspaniałe w porównaniu z poprzednikiem! Ale i w porównaniu z konkurencją.
Dwoma najgorętszymi punktami są:
? HTML5 ? akceleracja sprzętowa
Oczywiście PR swoimi prawami się rządzi. Tak więc akceleracja jest najlepsza na świecie (bo jest pomijając oczywiście, że pierwsze miejsce IE9 dzieli z FF4, ale tylko na V i 7, cała reszta to FF ), a HTML5?
HTML5 czy HTML5
HTML5 to zarówno nazwa najnowsze wersji języka znaczników (ale nie języka programowania!), ale i chwytliwa nazwa-worek do którego wrzucamy wszystkie "nowości". Jak np. CSS3, właściwy HTML5, Indexed DB, Web Workers, SVG, etc.
I tak pierwsze dema MS z etykietką HTML5 w ogóle nie korzystały z 5 wersji języka znaczników! A często wręcz ze starszych wersji standardów, których nikt nie zalicza do "HTML5", a które dzięki akceleracji sprzętowej nabierały nowej prędkości.
Jednak gdyby MS na tym poprzestał mielibyśmy powtórkę IE8 - przeglądarka w tyle, goniąca to co inne już dawno obsługują, z paroma przydatnymi ale pobocznymi funkcjami.
Ale...
Dlatego MS (wreszcie!) zdecydował się na wsparcie dopiero rozwijanych standardów. Efekt? W html5test.com jest ostatni, z rozwojowych wersji przeglądarek...
Jednak MS tym razem ma konkretny powód. Standardy określane wspólną nazwą HTML5 mają też inną wspólną cechę - zmienność. Implementując konkretną wersję, twórca przeglądarki nie ma pewności, że coś w przyszłości się nie zmieni, i cała (lub część) praca pójdzie na marne.
To samo dotyczy się twórców aplikacji internetowych. Jeśli skorzystają z funkcji, która się zmieni w przyszłości, ich aplikacja przestanie działać.
Odpowiedzią na ten paradoks (nie da się stworzyć standardu bez implementacji, a implementacji bez standardu), MS znalazł rozwiązanie.
HTML5Labs. Prototypu dla Eksperymentalnych lub Niestabilnych Specyfikacji Standardów Internetowych*
Zadanie tej grupy jest tworzenie implementacji standardów, które programiści IE uznają za zbyt zmienne lub niegotowe, tak aby można było je testować, lub wykorzystać do eksperymentów (ukłon w stronę twórców aplikacji). Jednocześnie bez "psucia" samego IE i poświęcania czasu i pracy przez główną grupę na potencjalnie zbędny kod.
Prototypy to implementacje poszczególnych specyfikacji, które można samodzielnie doinstalować do IE9. W chwili obecnej są to IndexedDB i WebSockets.
Uzasadnienie
Na przykładzie tego drugiego MS tłumaczy taki podział.
WebSockets API czyli konkretne funkcje których użyją twórcy stron, jest już uzgodnione w ramach w3c i nie powinno ulec zmianie. Za to konkretny protokół jest opracowywany przez IETF, i ciągle napotyka na różne problemy (czy to związanie z bezpieczeństwem, czy interakcją z innymi technologiami jak np. proxy). A kolejne wersje są ze sobą niekompatybilne.
Ale...
Moja opinia? Bardzo dobre kompromisowe rozwiązanie, ale ciągle MS musi dodać 17 kolejnych prototypów aby dogonić FF4**. Historia lubi się powtarzać!
* moje skromne tłumaczenie ** aby oddać sprawiedliwość MS zaimplementowało 1, słownie jedną technologię, której nie obsługuje obecnie FF4