r   e   k   l   a   m   a
r   e   k   l   a   m   a

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

Strona główna AktualnościOPROGRAMOWANIE

W kanale beta Google Chrome pojawiła się właśnie wersja 31 tej przeglądarki. W czasach, gdy co sześć tygodni pojawia się nowa wersja Chrome, normalnie nie byłoby o czym pisać. Tym razem jednak wprowadzone do przeglądarki zmiany są przełomowe dla ekosystemu oprogramowania Google'a, czyniąc go w znacznym stopniu niezależnym od sprzę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 takich aplikacji był niewielki, ale też uruchomienie ich było możliwe tylko na 32-bitowej architekturze x86. Rok później pojawiła się wersja NaCl dla procesorów ARM, jak również wersja dla x86-64, ale jak każdy, kto próbował się wówczas bawić przygotowanymi przez programistów Google'a demonstracjami możliwości tej technologii, były one ze sobą wzajemnie niekompatybilne, każda z nich mogła uruchomić jedynie kod skompilowany pod natywny zestaw instrukcji hosta.

Dla Google'a pracującego nad uczynieniem z Chrome uniwersalnej platformy uruchomieniowej dla aplikacji webowych, udostępnianych przez sklep Chrome Web Store, nie była to komfortowa sytuacja. Ze względów technicznych poszczególne wersje NaCl sporo się od siebie róż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 Native Client (PNaCl), specjalny łańcuch budowania, którego pierwszą eksperymentalną wersję zaprezentowano dopiero w maju tego roku.

PNaCl rozwiązuje problem z przenośnością natywnego kodu, dzieląc proces kompilacji na dwa etapy: przekształcenia kodu źródłowego w przenośny kod bajtowy kompilatora Low Level Virtual Machine, a następnie translacji tego kodu na odpowiedni dla hosta kod wykonywalny. W ten sposób programiści mogą zbudować swoją aplikację jako pojedynczy moduł pexe, nie przejmując się tym, jak wygląda sprzęt użytkownika – czy jest to 32-bitowy ARM-owy chromebook, taki jak Samsung Series 3, czy też np. Chrome uruchomione na 64-bitowym Macbooku Pro. O ile więc pliki wynikowe dla zwykłego Native Clienta (nexy) zapewniały niezależność od systemów operacyjnych, tak pexy zapewniają niezależność od architektury, przy zachowaniu wydajności i bezpieczeństwa nexów. Co więcej, jeśli w przyszłości dana architektura zostanie rozbudowana, to twórca aplikacji nie musi nawet rekompilować kodu przez PNaCl – rozszerzenia zostaną automatycznie wykorzystane w procesie translacji.

Jak informuje Google, wraz z pojawieniem się PNaCl w stabilnej wersji Chrome, zostaną zniesione wszelkie restrykcje związane z udostępnianiem aplikacji Native Clienta. Moduły pexe będą mogły być łączone teraz np. z aplikacjami pisanymi w HTML5, a także rozpowszechniane poza sklepem Chrome. Wszystko to dotyczy jedynie wersji Chrome dla desktopowych systemów (Windows, OS X, Linux, Chrome OS), jak do tej pory bowiem Chrome dla Androida nie obsługuje interfejsu wtyczek PPAPI, poprzez który Native Client współpracuje z przeglądarką.

Pozostałe zmiany, które przynosi Chrome 31, też są warte uwagi: możliwe jest automatyczne wypełnianie formularzy płatności (np. numer karty kredytowej) za zgodą użytkownika, z wykorzystaniem przechowywanych w przeglądarce danych, rozbudowano też możliwości interfejsów programowania dla aplikacji Chrome. Mogą one już działać jako uchwyty dla określonych URL-i (tak, że np. kliknięcie linka do dokumentu danego typu otworzy go nie w zewnętrznej aplikacji systemowej, ale wewnątrz aplikacji Chrome), mają też dostęp do wybranych przez użytkownika katalogów w lokalnym systemie plików i wymieniać się danymi z aplikacjami natywnymi (np. edytor kodu w Chrome może korzystać z wersjonowania zapewnianego przez lokalnie zainstalowanego gita).

Ulepszono też obsługę wideo w WebM, dodając obsługę kanału alfa, a przez to efektów blue/green screenu, wprowadzono protokół kontrolny SCTP do kanału danych WebRTC, dzięki czemu bardziej niezawodna ma się stać wymiana danych P2P między przeglądarkami, zaś wersja dla Androida otrzymała obsługę javascriptowego interfejsu rozpoznawania mowy oraz możliwość umieszczania skrótów do witryn bezpośrednio na głównym ekranie telefonu czy tabletu.

Czy Chrome 31 doprowadzi do znaczącego skoku w popularności aplikacji pisanych pod Native Clienta, to się dopiero okaże. Technologia ta ma wielu przeciwników (na czele z Microsoftem i Mozillą), przekonanych że szkodzi ona otwartości Sieci. Dla deweloperów gier, mających być głównymi beneficjentami NaCl, kwestia otwartości Sieci jest raczej drugorzędna – Google dało im platformę o wiele bardziej wydajną niż nawet najlepiej optymalizowany JavaScript od Mozilli, dzięki której mogą oferować swoje gry na niemal każdym komputerze. Co więcej, na Native Clienta nie tylko przenosi się popularne frameworki i silniki gier, takie jak Unity czy havok, ale też tworzy nowe, specjalizowane silniki, takie jak Aroma. Czemu więc nie skorzystać?

r   e   k   l   a   m   a
© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.