Native Client (Google's NaCl)

HomeForumsPlatform specificNative Client (Google's NaCl)

Tagged: , ,

This topic has 5 voices, contains 19 replies, and was last updated by avatar Sverre Lunøe-Nielsen 207 days ago.

Viewing 5 posts - 16 through 20 (of 20 total)
Author Posts
Author Posts
August 25, 2011 at 12:17 #1014
avatar
Sverre Lunøe-Nielsen

kusma: there’s also the compilation step where the code is run through a modified version of gcc that secures that the compiled code is well behaved. All this is documented and open source.

niels: Gah, I’m sounding like a zealot. I’m really not :)

My angle is this: web is great for obvious reasons, but I’m not willing to put a lot of effort into making a demo for web if the quality is drastically reduced. With WebGL so far, it’s just not good enough. OK for smaller GPU-only things, but those godawful demos that the mozilla team put out was a big disappointment, I think.

People seem to “forgive” alot of awfulness as long as it’s “web-based”.

Btw, I’m not looking at NaCl because I prefer C++ over JavaScript — in the presence of Emscripten and http://www.mandreel.com you can quite nicely compile your C++ code to JS.

August 25, 2011 at 12:41 #1015
avatar
niels

If you don’t want native code to be run in your browser, then NaCl isn’t for you.

If it’s “for me” isn’t relevant. Though if push came to shove I’d consider it, given that I don’t particularly enjoy developing in languages other than C/CPP ;) But I digress…

Keep in mind that NaCl code DOES run in a sandbox. I don’t think that poses any security issues itself compared to interpreted code; security bugs are security bugs no matter if they are in a sandbox or in an interpreter.

I agree with that. I never said I didn’t trust Google to do a good job on security though.

What I do say is that I still feel it is a somewhat backwards strategy for web-based content (i.e. not core technology) to carry native modules. And in a world where Chrome isn’t the absolute market leader, this technology would require other vendors to implement it as well in order to offer a seamless experience to the user (i.e. the person who enters a URL in his or her browser). And that creates breeding ground for discrepancies, (security) bugs, you name it. And that’s besides how hard a time companies have agreeing upon standards :)

  • This reply was modified 268 days ago by avatar niels.
August 25, 2011 at 12:53 #1017
avatar
niels

niels: Gah, I’m sounding like a zealot. I’m really not :)

Me neither, though I do suspect I am a bit skeptical every so many hours of the day:)

My angle is this: web is great for obvious reasons, but I’m not willing to put a lot of effort into making a demo for web if the quality is drastically reduced. With WebGL so far, it’s just not good enough. OK for smaller GPU-only things, but those godawful demos that the mozilla team put out was a big disappointment, I think.

I don’t know the specifics of the performance but I can certainly imagine it being suboptimal as I do know what’s going on to facilitate it under the hood :) And I really hope that it gets better over time by way of communities remaining active and technology developers spending adequate time and resources. It’s all relatively new so it might just need more time to get somewhat on par with nowadays native-built applications. That way the need for building native applications will become even smaller than it is today.

(and those Moz demos.. well.. perhaps thats also a matter of talent for selling their stuff on their part)

To me it feels like making an application, or lets just say demo, that a) uses x86/x64 native code and b) only runs in a Chrome browser is just a niche thing. And it remains to be seen how the efforts balance out, because on one hand the native modules are somewhat restricted compared to an actual native application but you do get to do most if not all of the effort implied by coding something in C/CPP. Of course a few things might be easier to get running out-of-the-box using existing technologies (I’m thinking scripting, image loading, audio, that kind of deal) and having different native and non-native components talk to one another, but that’s speculative for now, at least it is for me :)

But at the end of the day it won’t result in webcontent seamlessly viewable by most users.

People seem to “forgive” alot of awfulness as long as it’s “web-based”.

Feel free to elaborate. I’ve noticed the lower standards among developers and users as well but I wonder if that’s not just a generic thing. If you surf around looking for native developer screenies and demos the majority of it also appears to be crap :) Why would that be different on the web?

Btw, I’m not looking at NaCl because I prefer C++ over JavaScript — in the presence of Emscripten and http://www.mandreel.com you can quite nicely compile your C++ code to JS.

*click*

a) bah I still have phpbb-codes burned into my brain
b) i’m going to the beach muchachos \o

  • This reply was modified 268 days ago by avatar niels.
  • This reply was modified 268 days ago by avatar niels. Reason: grrr
  • This reply was modified 268 days ago by avatar niels. Reason: grr*grr
  • This reply was modified 268 days ago by avatar niels.
August 25, 2011 at 13:13 #1026
avatar
Erik "kusma" Faye-Lund

kusma: there’s also the compilation step where the code is run through a modified version of gcc that secures that the compiled code is well behaved.

Just out of interest: how do they guarantee that the code packaged in the NaCl module is generated by that modified compiler? It’s not like they can sign it in the compiler; if they did, it’d be easy to extract the private-key….

October 24, 2011 at 20:14 #1351
avatar
Sverre Lunøe-Nielsen

chrome runs a verification pass on the binary executable (.nexe) and checks that it conforms to a certain set of rules before executing it. So in principle you can use whatever compiler you want to generate that .nexe.

Viewing 5 posts - 16 through 20 (of 20 total)

You must be logged in to reply to this topic.