Атаки на технологию Java не прекращаются, наверное, с момента её появления на свет. Можно вспомнить немало попыток создания и прямых клонов, и альтернативных реализаций концепции “пишется однажды, работает везде”, от Red Hat Ceylon (СМИ называли её Java-killer) до Microsoft .NET. Очередную попытку предприняла Google, анонсировав в ноябре 2013 г. технологию Portable Native Client (PNaCl). Как явствует из названия, разработчики смогут создавать “родной” код для самых разных платформ и запускать PNaCl-приложения в браузерах. В проекте задействованы наработки Low Level Virtual Machine (LLVM) — своеобразной виртуальной машины, основной акцент в которой сделан, в отличие от Java, не на кросс-платформном исполнении промежуточного байт-кода, а на получении на его основе скомпилированных машинных инструкций под конкретную аппаратную архитектуру. Программирование в компилирующем окружении LLVM ведётся на Си/С++, а применяет её, например, Apple в разработке приложений для iOS, и Embarcadero, выстраивающая на базе LLVM версию Delphi для Android и iOS.

Ключевая идея Google PNaCl заключается в том, что промежуточный LLVM-код приложения хранится на веб-сервере, а когда к нему обращается браузер, сервер выполняет компиляцию на лету под конфигурацию конкретного компьютера пользователя. Таким образом, удастся достичь производительности веб-приложений, сравнимых со скоростью настольных программ, но PNaCl скорее всего останется малопопулярной особенностью браузера Chrome — Mozilla и Opera уже отказались от поддержки PNaCl.

Версия для печати