Chrome 31 to początek uniwersalnej platformy Google dla gier i aplikacji

W kanale beta Google Chrome pojawiła się właśnie wersja 31 tejprzeglądarki. W czasach, gdy co sześć tygodni pojawia się nowa wersjaChrome, normalnie nie byłoby o czym pisać. Tym razem jednakwprowadzone do przeglądarki zmiany są przełomowe dla ekosystemuoprogramowania Google'a, czyniąc go w znacznym stopniu niezależnym odsprzętowej architektury.Gdy w 2009 roku Google zaprezentowało technologię Native Client(NaCl), pozwalającą na uruchamianie aplikacji pisanych w C/C++ bezpośrednio w przeglądarce, nie tylko zakres możliwości takichaplikacji był niewielki, ale też uruchomienie ich było możliwe tylkona 32-bitowej architekturze x86. Rok później pojawiła się wersja NaCldla procesorów ARM, jak również wersja dla x86-64, ale jak każdy, ktopróbował się wówczas bawić przygotowanymi przez programistów Google'ademonstracjami możliwości tej technologii, były one ze sobą wzajemnieniekompatybilne, każda z nich mogła uruchomić jedynie kodskompilowany pod natywny zestaw instrukcji hosta.[img=nacl-games]Dla Google'a pracującego nad uczynieniem z Chrome uniwersalnejplatformy uruchomieniowej dla aplikacji webowych, udostępnianychprzez sklep Chrome Web Store, nie była to komfortowa sytuacja. Zewzględów technicznych poszczególne wersje NaCl sporo się od siebieróżniły, używając np. odmiennych metod izolacji uruchamianego kodu.Połączenie ich nie było możliwe – więc trzeba było szukaćinnych rozwiązań. Takim rozwiązaniem okazał się Portable NativeClient (PNaCl), specjalny łańcuch budowania, którego pierwsząeksperymentalną wersję zaprezentowano dopiero w maju tego roku.PNaCl rozwiązujeproblem z przenośnością natywnego kodu, dzieląc proces kompilacjina dwa etapy: przekształcenia kodu źródłowego w przenośny kod bajtowykompilatora Low Level Virtual Machine, a następnie translacji tegokodu na odpowiedni dla hosta kod wykonywalny. W ten sposóbprogramiści mogą zbudować swoją aplikację jako pojedynczy moduł pexe,nie przejmując się tym, jak wygląda sprzęt użytkownika – czyjest to 32-bitowy ARM-owy chromebook, taki jak Samsung Series 3, czyteż np. Chrome uruchomione na 64-bitowym Macbooku Pro. O ile więcpliki wynikowe dla zwykłego Native Clienta (nexy) zapewniałyniezależność od systemów operacyjnych, tak pexy zapewniająniezależność od architektury, przy zachowaniu wydajności ibezpieczeństwa nexów. Co więcej, jeśli w przyszłości danaarchitektura zostanie rozbudowana, to twórca aplikacji nie musi nawetrekompilować kodu przez PNaCl – rozszerzenia zostanąautomatycznie wykorzystane w procesie translacji.Jak informuje Google, wraz z pojawieniem się PNaCl w stabilnejwersji Chrome, zostaną zniesione wszelkie restrykcje związane zudostępnianiem aplikacji Native Clienta. Moduły pexe będą mogły byćłączone teraz np. z aplikacjami pisanymi w HTML5, a takżerozpowszechniane poza sklepem Chrome. Wszystko to dotyczy jedyniewersji Chrome dla desktopowych systemów (Windows, OS X, Linux, ChromeOS), jak do tej pory bowiem Chrome dla Androida nie obsługujeinterfejsu wtyczek PPAPI, poprzez który Native Client współpracuje zprzeglądarką.Pozostałe zmiany, które przynosi Chrome 31, też są warte uwagi:możliwe jest automatyczne wypełnianie formularzy płatności (np. numerkarty kredytowej) za zgodą użytkownika, z wykorzystaniemprzechowywanych w przeglądarce danych, rozbudowano też możliwościinterfejsów programowania dla aplikacji Chrome. Mogą one już działaćjako uchwyty dla określonych URL-i (tak, że np. kliknięcie linka dodokumentu danego typu otworzy go nie w zewnętrznej aplikacjisystemowej, ale wewnątrz aplikacji Chrome), mają też dostęp dowybranych przez użytkownika katalogów w lokalnym systemie plików iwymieniać się danymi z aplikacjami natywnymi (np. edytor kodu wChrome może korzystać z wersjonowania zapewnianego przez lokalniezainstalowanego gita).Ulepszono też obsługę wideo w WebM, dodając obsługę kanału alfa, aprzez to efektów blue/green screenu, wprowadzono protokół kontrolnySCTP do kanału danych WebRTC, dzięki czemu bardziej niezawodna ma sięstać wymiana danych P2P między przeglądarkami, zaś wersja dlaAndroida otrzymała obsługę javascriptowego interfejsu rozpoznawaniamowy oraz możliwość umieszczania skrótów do witryn bezpośrednio nagłównym ekranie telefonu czy tabletu.Czy Chrome 31 doprowadzi do znaczącego skoku wpopularności aplikacji pisanych pod Native Clienta, to się dopierookaże. Technologia ta ma wielu przeciwników (na czele z Microsoftem iMozillą), przekonanych że szkodzi ona otwartości Sieci. Dladeweloperów gier, mających być głównymi beneficjentami NaCl, kwestiaotwartości Sieci jest raczej drugorzędna – Google dało implatformę o wiele bardziej wydajną niż nawet najlepiej optymalizowanyJavaScript od Mozilli, dzięki której mogą oferować swojegry na niemal każdym komputerze. Co więcej, na Native Clienta nietylko przenosi się popularne frameworkii silniki gier, takie jak Unity czy havok, ale też tworzy nowe,specjalizowane silniki, takie jak Aroma.Czemu więc nie skorzystać?

Wybrane dla Ciebie
Komentarze (36)