Google наконец-то выпустил портативную версию Native Client (PNaCl). Технологию Native Client, которая позволяет компилировать в машинный код и выполнять в браузере программы на С или С++, достигая практически нативной производительности, часто критиковали за то, что изначально NaCl поддерживал не все платформы, и для каждой из них приходилось компилировать отдельно. PNaCl компилирует исходный код программы в биткод LLVM — низкоуровневой виртуальной машины, которая поддерживает множество аппаратных платформ и гарантирует, что код будет работать практически везде.
Поддержка PNaCl пока выключена по-умолчанию. Для того, чтобы её включить, надо запускать Chrome с опциями --enable-pnacl
и/или --enable-nacl
.
Разработка Native Client идёт уже несколько лет, и за это время у этой технологии появился сильный конкурент от Mozilla — Asm.js. Asm.js компилирует не в байткод, а в ограниченное подмножество JavaScript, которое очень хорошо оптимизируется и перед выполнением компилируется в машинный код, позволяя достичь производительности всего вдвое меньше нативной. В то же время, код Asm.js представляет собой корректную программу на JavaScript, и может выполняться в любом браузере, даже без поддержки Asm.js. Похоже, в ближайшие несколько лет NaCl и Asm.js будут сосуществовать и конкурировать между собой.
Автор: ilya42