What I suspect Google is up to with Native Client
hackerspews.com
hackerspews.com
It's also already the case that a third-party app which requests appropriate permissions can replace the standard contacts app --- in fact, there are several alternate contact managers already in the Android Market. Of course, the user must confirm that they want to allow the app to manipulate contacts, and apps that don't request that permission can't ordinarily do that. (Malicious apps can manipulate contacts without asking permission on the customized versions of Android shipped with several recent handsets, per news from the last few days, because the vendors doing the customization screwed up, but that's another rant altogether...)
Similarly, Contacts was only used as an example, as it is prominent and simple to understand. The main reference made there was to the data the Contacts UI represents, which ultimately backs on to some class library that ultimately is controlled by the platform (as I understand it).
So we have a bit of time to form a reaction strategy then. ;-)
Are we even sure Android will run on the quantum-singularity computronium that we will have by then, or that the Google meme-avatar will still be on, or near, Earth?
Google shipped Android on Google TV devices with Intel Atom processors.
Not to mention that NaCl is open source BSD-license, so, yeah.
In theory .NET JIT can emit native image code. But have you ever seen any framework-free .NET apps?
The dependences, libraries, ecosystem will lock you in.
They could have leveraged all of this by buying in to NaCl and putting it into IE. Hard to see how Google says no, and once Microsoft has that level of commitment to the technology, they'd get a strong say in its evolution. As a multi-vendor standard with an open source implementation, NaCl could have gotten real traction, and suddenly every C++ developer inside Microsoft and working for their customers has a path to the web for existing code that's slightly more plausible than rewriting everything in JavaScript and hoping the VMs get faster without also killing your laptop's battery (unlikely, I think).
If PNaCl ever happens, that might change the situation, maybe.
As far as legacy code, emscripten unlocks it as well. Not with the performance of NaCl (and unlikely to get there), but it has the benefit of running cross-browser right now and not forcing people onto particular hardware platforms.
And copying "valuable IP" out of an emscripten-compiled program is just as easy as copying it out of a binary, of course.
I'm seeing a lot of comments here in support for NaCl, so apparently people have forgotten (or never lived) the days of ActiveX. I am not buying the conspiracy theory bits of this article, I also regret waisting time reading it ; however that doesn't mean NaCl isn't a bad idea.
As a multi-vendor standard with an
open source implementation ...
Dude, seriously, don't you think these "vendors" had good reasons to dismiss NaCl?There are plenty of people within Google who'd love NaCI to take over the world. But equally there are lots who think it is a downright bad idea.
Google is going to lock the world into it's "stewardship" with a couple open source projects and the cell phone market?
I can't help but feel that I've just been trolled. Unless someone can better explain this to me.
So yeah, but no, you definitely can lock stuff in with "open source", no problem with that.
The license guarantees anybody who doesn't like the way Google is doing things can take the code and start their own project around it. The forks may not be easy to keep in sync -- this shouldn't matter if you don't agree with the way Google is doing things because you'll probably stop using their work after you fork anyway.
What you want is to have Google's engineers run their project the way you want, which is NOT what open source is about at all.
Aside: You're wrong about proprietary code -- awesome people like jbq and folks from the AOSP have consistently worked with hardware vendors to open up their binary blobs. They are actively fighting for this, not using it to keep people locked into the official Android project.
http://code.google.com/p/dart/wiki/Building#Building_the_sta...
[1] Obvious References: [1.1] Reductio ad Hitlerum ( http://en.wikipedia.org/wiki/Reductio_ad_Hitlerum ) [1.2] Godwin's law ( http://en.wikipedia.org/wiki/Godwin%27s_law )
After all, that was the promise of remote XUL+JS, which provided the user gave it the permissions, could access the XPCOM components to access the filesystem, run external applications and more.
Nevertheless it didn't caught on.
Well, I was kinda hoping it would, but for one thing, the Mozilla guys:
1) never documented it properly 2) never made any usable developer tools, IDEs, etc 3) never delivered on their initial XUL/XULRunner promises 4) never tried to build a community around them
I am having a hard time with this. At first I thought this amounted to a claim that the halting problem had been solved, or else that Java and NaCl are not Turing complete. I'm guessing the problem is with the term "perfect." So something interesting must be going on or it wouldn't be worth mentioning. What's being verified? That the code can't execute data and won't call certain interrupts, or is something more interesting happening?
That's not what the halting problem means! There is no rule that says you cannot prove a program is safe: the rule is only that you cannot prove any arbitrary program is safe. NaCl gets around that by adding checks to the code (bounds checks, etc) to anywhere that it can't prove is safe.
More info here: http://en.wikipedia.org/wiki/Java_Virtual_Machine#Bytecode_v...
JVM bytecode, .NET CLR bytecode, NACL bytecode are all verified as containing no illegal API calls. That's completely different. And its completely possible.
Sounds more like plain old X forwarding.
How does one judge this subjectively?
Because a platform is near-native performance, is cross platform and may run in a virtual machine, they are becoming Microsoft and locking people in? WHAT? (Beyond the absurdity of leaping to that conclusion, it's an open spec and the main implementation is open source. I understand that alternative implementations are needed for "open spec" to have significant meaning, but still).
That and the last set of bullet points are all true. Just like Google... except without the near native performance of NaCl. Which is why it was created. To be just like the rest of the HTML/JS stack. They're trying to get to actual "Web 2.0" (bleck), where Dart and NaCl are viable additions to the traditional stack. I see no reason why this is nefarious.
RE this whole conspiracy (not mocking it by calling it that...) and the Android connection especially... that's what I've been assuming and hoping for from day one. Portable LLVM bytecode is another step in that direction as well. I'm excited.
For the PNacl bit, I think the tech sounds great, I just think the reason this "arrow" survived Page's recent cull is because they have significant interests in it, and that's what the article is about.
Then I will. It's a conspiracy theory, worthy of all the mocking typically associated with such a thing.
Anyone who's been watching Google long enough, closely enough, knows how out of character this would be. Such efforts, not to mention the purported motivation, is not in their nature.
Google employees start hundreds (thousands?) of new projects every year with little coordination. Some of these end up becoming big, official things, and we end up with Gmail. They throw stuff at the wall and see what sticks.
There might be some group inside Google thinking along the lines this guy is. I doubt it, but it's possible. It might even be the native client guys. What there isn't, is a massive internal conspiracy crossing every product team up and down the chain of command, aimed at making Google the sole arbiter of what can run on your device.
Even if the executives wanted it to happen, it couldn't. How do I know this?
Because Google is full of hackers who would instantly revolt. They've had enough problems with things like their real name policy and the handful of places they've had to acquiesce to DRM.
A coordinated effort to make Google into The One True Gatekeeper into your electronic life on a scale unmatched even by 1990s Microsoft? I await the flying pigs.
Must be why they are paying those huge retention bonuses...
I'm strongly of the belief that Google's internal strategy has long surpassed "organising the world's information", and is now something like "become the world's biggest private intelligence agency.", but that's a paranoid side-note.. ask me more on this at your peril. ;)
Regardless, I wouldn't have written any of this if I didn't have a certain love for the company, and desire to follow their movements with some level of intimacy. I just don't agree with everything I suspect they'll be doing 20 years from now.
So I think that comment is just a little over the top, it's not that far beyond what the undisputed reality is.
For example it recently occurred to me: Google Voice transcribes your voice mail to text. I wonder to what extent they index that and use this as a sample of your telephone conversations as a way of better targetting ads to you. That strikes me as very scary because at that point I have no control over the retention of this information and then it becomes something the government can easily subpoena via something like the Stored Communications Act.
Your argument about the "google hacker's revolt" is is even more laughable that the conspiracy theory.
When we're talking about a company what's the difference between a "conspiracy" and a "plan" or "strategy"? (Serious question.)
However, there are very serious and likely unaddressable concerns about Native Client, even if this article is a bit much (we have already debated this at length here on HN several times in the past).
it's an open spec and the main implementation
is open source
Actually, the implementation is so complicated that whatever spec exists is completely useless. And the existence of an open-source implementation does not guarantee a spec, quite the contrary, the spec will be the implementation itself.See for example the rationale behind Mozilla's decision to prefer IndexedDB instead of Web SQL Storage: http://hacks.mozilla.org/2010/06/beyond-html5-database-apis-... (tl;dr - because SQLite doesn't have a spec besides the SQL Manual).
You may think that the lack of a complete spec is not a problem, however I disagree. It hinders other implementations from scratch, which you may want because you disagree with the license or because you want to make it a lot better than it is (like what Google did with V8, when they could have gone with SpiderMonkey or with Nitro or whatever). Also, ask yourself why nobody could implement an alternative Perl interpreter and it wasn't because there was no need for it ;)
It's also a problem because the potential for abuse (embrace, extend) is huge. Suddenly the spec will contain implementation bugs that you cannot fix as long as the reference implementation doesn't. This even happens with Javascript, which is severely fragmented and holden back with concerns over backwards compatibility of scripts that are using the broken behavior. And do note that the ECMAScript standard is properly defined and quite simple to implement by comparison.
except without the near native performance of NaCl.
Which is why it was created
People have only scratched the surface of optimizing Javascript VMs and performance was never Javascript's biggest problem - there are other more pressing concerns, like freaking security, which is still inadequate and I have my doubts that NaCL will ever be secure, no matter how well it is sandboxed. I see no reason why this is nefarious.
We have fought for years against the death grip IExplorer had on web standards. If other browser implementors don't want to implement NaCL, then Google should not try to push it down on people's throats. People could very well argue that ActiveX was a good thing. It gave birth to AJAX after all. That doesn't mean it wasn't an awful idea (even if it was done with good intentions).[1] http://hacks.mozilla.org/2010/06/beyond-html5-database-apis-...