Native Client: Getting Ready for Takeoff
blog.chromium.org
blog.chromium.org
Note the distinctions: open source, platform agnostic, solves a real problem.
Google is handling this just as they should and I can't see how else would you introduce such a major piece of browser infrastructure.
This doesn't even compare to Google Wave.
If the end customer is developers, then yes, it's interesting and google should promote it heavily at something like GoogleIO or other dev venue.
If it's for customers, it's going to need a killer app.
(edited to remove anchor tag)
I'm not convinced at this point in time that NaCl offers enough advantages over the rapid development of JavaScript or the power and speed of operating system APIs. Apps running in the browser was attempted in the 90s with Java, and NaCl been around for a few years now. This link is just announcing that it's supporting the Pepper plug-in interface in Chrome.
I don't know what the progress is with this, but they were talking it up last year:
http://blogs.unity3d.com/2010/05/19/google-android-and-the-f...
Is Lego Star Wars in the browser enough to make people sit up and pay attention? I think it might be.
This is a very exciting technical development but it remains unclear what the killer application will be.
Even if they are talking about Portable NaCl, I have doubt about how portable they can make it.
> Native Client runs on 32- and 64-bit x86 systems that use Windows, Mac OS X, or Linux. Some ARM support is implemented in the source base, and we hope to make it available for application developers next year.
They do have a version that's based on shipping LLVM bitcode instead, but that is not yet ready for prime time and it's not clear when it will be.
Here is a comment of mine from last time NaCl came up that explains this and other issues with it:
LLVM bitcode is actually not meant to be portable at all. It is very specific to the machine it is built for - endianness, structure alignment, and so forth.
> Hell, you can translate it to javascript if you're truly worried about absolute browser portability: http://code.google.com/p/emscripten/
Thanks for mentioning Emscripten, I wrote it :) It's interesting though, that a main challenge in Emscripten is exactly to deal with the non-portability issues in LLVM.
The reason LLVM is used in Emscripten (and, I suspect, in PNaCl) is not that it is portable - it isn't - but that nothing portable exists which is as good as LLVM in other respects (clean codebase, well-defined assembly language, good toolchain, etc.).
Countdown to SSH client functionality in 5... 4... 3...
Something tells me such limitations will be temporary...
"This allowed us to remove the expiration date and localhost security restrictions we had adopted in previous research-focused releases.
We are excited to see Native Client progressively evolve into a developer-ready technology. In the coming months we will be adding APIs for 3D graphics, local file storage, WebSockets, peer-to-peer networking, and more."
This prediction is going on 20 years old. :)
"We’ll also be working on Dynamic Shared Objects (DSOs), a feature that will eventually allow us to provide Application Binary Interface (ABI) stability. [...] Until the ABI becomes stable, Native Client will remain off by default. "
Even Brendan Eich openly talks about JS's flaws and admits that it lacks a lot of important things, mostly attributable because he had only a few weeks to compose something to stop Netscape from doing "something worse". See http://www.jwz.org/blog/2010/10/every-day-i-learn-something-... .
I greatly anticipate the day when I script a web page in Python instead of JavaScript.
"But at the time, mostly we felt the need to move very quickly, not to make money but because we knew Microsoft was coming after us. Microsoft low-balled Netscape in late '94, and the Jims (Clark and Barksdale) told them to pound sand. After that, we felt the monster truck riding up on our little Yugo's rear bumper, month by month.
"If you appreciate this and it is accurate, consider that JavaScript (please, not "JScript") saved you from VBScript."