От няколко години Google работи над технология Native Client, която позволява на браузъра Chrome да изпълнява машинен код независимо от операционната система. Компанията съобщи тази седмица за сериозен напредък по проекта.
На конференцията за разработчици Google I/O в Сан Франциско интернет гигантът показа следващата логична стъпка в развитието на технологията – PNaCl (Portable Native Client), която решава някои от основните проблеми.
Изпълнението на приложения, компилирани в C/C++, директно в браузъра с помощта на Native Client носи огромна полза по отношение на производителността. Но технологията има и някои недостатъци, например нуждата от компилиране на различни версии на приложенията в зависимост от използваната процесорна архитектура.
Предимството на уеб технологиите се състои в това, че те работят вътре в браузъра. Машинният код на ниско ниво обаче трябва да е привързан към конкретна процесорна архитектура или дори операционна система. Стандартната технология Native Client, която Chrome поддържа от 2011 г., реши проблема с операционната система – кодът се изпълнява на всяка ОС, на която работи Chrome. Но разработчиците трябваше да компилират отделни версии на своите приложения за изпълнение на x86 или ARM процесори.
Технологията PNaCl реши и този проблем. Тя позволява на разработчиците да компилират една версия на своята програма, която се изпълнява в Chrome без да зависи нито от операционната система, нито от процесорната архитектура.
Приложенията се компилират в универсален код LLVM (файл с разширение .pexe), който след това Chrome преобразува в код за определени архитектури. По този начин се осигурява широка съвместимост на приложенията не само със съществуващите архитектури x86 (32- и 64-битови) и ARM, но теоретично и с бъдещи архитектури, без необходимост от прекомпилиране на кода.
С други думи, разработчиците не трябва да мислят къде точно ще се изпълнява тяхното PNaCl приложение – в Chrome под Linux на ARM процесор или в Chrome под Windows на x86-система. В перспектива може да се появи поддръжка на технологията и в други браузъри. Mozilla все още не е внедрила NaCl във Firefox, но с излизане на PNaCl може да възприеме технологията.
Въпреки достъпността на PNaCl за разработчиците, Google все още не е готова да включи поддръжката на технологията по подразбиране в своя браузър и да я направи достъпна за масовия потребител. Във всички случаи обаче Portable Native Client ознаменува нов етап от превръщането на браузъра в самостоятелна платформа, независима от операционната система и архитектурата на процесора.
И кое е новото? Както се казва, всяко ново е добре забравено старо. Мисълта ми е относно Java аплетите, които по същия начин бяха платформено независими. И то преди доста години.