www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - NaCl stable ABI

reply bearophile <bearophileHUGS lycos.com> writes:
Google has recently set the ABI for their NaCl:
http://www.reddit.com/r/programming/comments/j46sz/google_native_client_05_released_with_stable_abi/

When a language becomes usable online it gets much more visibility. I don't
know if NaCl will have success (maybe not. I think Mozilla devs don't like
NaCl), but it looks like one of the few (best, only?) ways to use D in
browsers. Fast games are one possible purposes for D in NaCl, like a D port of
this unfinished game:
https://github.com/emezeske/digbuild

Someone is planning of a Mono support for NaCl:
http://www.mono-project.com/Release_Notes_Mono_2.10#Google_Native_Client_Support

I think some person is willing to install the NaCl plug-in if it allows to run
nice enough games in the browser. D is an acceptably good language to write
fast games.

Bye,
bearophile
Aug 01 2011
next sibling parent =?ISO-8859-1?Q?Alex_R=F8nne_Petersen?= <xtzgzorex gmail.com> writes:
On 01-08-2011 18:58, bearophile wrote:
 Google has recently set the ABI for their NaCl:
 http://www.reddit.com/r/programming/comments/j46sz/google_native_client_05_released_with_stable_abi/

 When a language becomes usable online it gets much more visibility. I don't
know if NaCl will have success (maybe not. I think Mozilla devs don't like
NaCl), but it looks like one of the few (best, only?) ways to use D in
browsers. Fast games are one possible purposes for D in NaCl, like a D port of
this unfinished game:
 https://github.com/emezeske/digbuild

 Someone is planning of a Mono support for NaCl:
 http://www.mono-project.com/Release_Notes_Mono_2.10#Google_Native_Client_Support

 I think some person is willing to install the NaCl plug-in if it allows to run
nice enough games in the browser. D is an acceptably good language to write
fast games.

 Bye,
 bearophile

I agree; it would be a great idea to have NaCl support in D. With Mono having support too, the interoperability possibilities would be fantastic. - Alex
Aug 01 2011
prev sibling next sibling parent bearophile <bearophileHUGS lycos.com> writes:
This was for the digitalmars.D newsgroup, of course. It's the new bug in the
web interface.

Bye,
bearophile
Aug 01 2011
prev sibling parent reply Adam D. Ruppe <destructionator gmail.com> writes:
This still sounds as utterly useless as it always has been.
Aug 01 2011
next sibling parent reply "Nick Sabalausky" <a a.a> writes:
"Adam D. Ruppe" <destructionator gmail.com> wrote in message 
news:j170it$1bib$1 digitalmars.com...
 This still sounds as utterly useless as it always has been.

Client-side scripting that throws away that god-awful JS crap being utterly useless?
Aug 01 2011
parent reply Adam Ruppe <destructionator gmail.com> writes:
Nick Sabalausky wrote:
 Client-side scripting that throws away that god-awful JS crap being
 utterly useless?

As far as I can tell, it doesn't actually throw away JS! I've never actually used Google Native Client, but looking through the docs, I can't find any way to set event handlers or otherwise interact with the html. You still need to use Javascript to actually enhance the web page. (if you are writing an app that isn't a web page, for the love of God, please don't force it into the browser.) Maybe this will change as it matures, but that's the *first* thing I would have focused on (and indeed did in my weekend browser, although it's a different story I guess because mine is more like an html widget than plugin.) Also, I can't find a Firefox plugin or any other browser support. It looks like the Google thing is Google-only, and opt in by the individual users at that. In other words, utterly useless on real world websites because it won't actually work for 99% of users. The networking api looks pathetic too, and I doubt that will change, since web browser security is supposed to be maintained here. They added audio and video, so it might be usable for writing bad games, but even that is poor - they don't let you access the operating system. It's just not a really compelling offering, even if it were ubiquitious, which, again it isn't. It is apparently only available on the worst browser on the market. Then, add on my belief that javascript is fairly rare in a good site anyway (do most your work on the server and you have a more useful environment and it degrades more easily), and I say: useless.
Aug 01 2011
next sibling parent reply bearophile <bearophileHUGS lycos.com> writes:
It allows to run code efficiently (in my tests something like 5-10% slower than
native code), and it's supposed to be (or to become) safe. There are plans for
usage of the 3D GPU and audio. It looks a good idea for games, and more.

Bye,
bearophile
Aug 01 2011
parent "Nick Sabalausky" <a a.a> writes:
"bearophile" <bearophileHUGS lycos.com> wrote in message 
news:j17g6i$2a63$1 digitalmars.com...
 It allows to run code efficiently (in my tests something like 5-10% slower 
 than native code), and it's supposed to be (or to become) safe. There are 
 plans for usage of the 3D GPU and audio. It looks a good idea for games, 
 and more.

There's no such thing as "good idea for in-browser games". The whole premise of in-browser multimeda is nothing short of pure idiocy, no matter how fast it is.
Aug 01 2011
prev sibling parent reply "Nick Sabalausky" <a a.a> writes:
"Adam Ruppe" <destructionator gmail.com> wrote in message 
news:j17fi9$280r$1 digitalmars.com...
 Nick Sabalausky wrote:
 Client-side scripting that throws away that god-awful JS crap being
 utterly useless?

As far as I can tell, it doesn't actually throw away JS! I've never actually used Google Native Client, but looking through the docs, I can't find any way to set event handlers or otherwise interact with the html.

Really? So what the hell *does* it do? Blow cycles just for the fuck of it?
 You still need to use Javascript to actually enhance the web page.
 (if you are writing an app that isn't a web page, for the love of
 God, please don't force it into the browser.) Maybe this will change
 as it matures, but that's the *first* thing I would have focused on
 (and indeed did in my weekend browser, although it's a different
 story I guess because mine is more like an html widget than plugin.)


 Also, I can't find a Firefox plugin or any other browser support.
 It looks like the Google thing is Google-only, and opt in by the
 individual users at that. In other words, utterly useless on real
 world websites because it won't actually work for 99% of users.

 The networking api looks pathetic too, and I doubt that will change,
 since web browser security is supposed to be maintained here.

 They added audio and video, so it might be usable for writing bad
 games, but even that is poor - they don't let you access the operating
 system.



 It's just not a really compelling offering, even if it were ubiquitious, 
 which,
 again it isn't. It is apparently only available
 on the worst browser on the market. Then, add on my belief
 that javascript is fairly rare in a good site anyway (do most your
 work on the server and you have a more useful environment and it
 degrades more easily), and I say: useless.

I see.
Aug 01 2011
parent reply Adam Ruppe <destructionator gmail.com> writes:
From what I can tell, it's Google's alternative to Flash; they want
to make crappy games on it.

Consider that the first thing they ported to it, again, just like
their javascript nonsense, was Quake. (I think Google loves
Javascript too much to let it go anyway.)

The API has a lot of graphics and audio stuff too which reinforces
this.
Aug 01 2011
next sibling parent reply "Nick Sabalausky" <a a.a> writes:
"Adam Ruppe" <destructionator gmail.com> wrote in message 
news:j17jkf$2hm0$1 digitalmars.com...
 From what I can tell, it's Google's alternative to Flash; they want
 to make crappy games on it.

 Consider that the first thing they ported to it, again, just like
 their javascript nonsense, was Quake. (I think Google loves
 Javascript too much to let it go anyway.)

 The API has a lot of graphics and audio stuff too which reinforces
 this.

Hmm, it does also fit into Google's crusade to get people to pretend Chrome is an OS.
Aug 01 2011
parent =?ISO-8859-1?Q?Alex_R=F8nne_Petersen?= <xtzgzorex gmail.com> writes:
On 02-08-2011 05:20, Andrej Mitrovic wrote:
 Maybe it's a framework for Farmville on Google Plus. :p

Then we must support it! - Alex
Aug 02 2011
prev sibling parent reply Peter Alexander <peter.alexander.au gmail.com> writes:
On 2/08/11 2:24 AM, Adam Ruppe wrote:
  From what I can tell, it's Google's alternative to Flash; they want
 to make crappy games on it.

 Consider that the first thing they ported to it, again, just like
 their javascript nonsense, was Quake. (I think Google loves
 Javascript too much to let it go anyway.)

 The API has a lot of graphics and audio stuff too which reinforces
 this.

The games industry has been crying out for something like NaCl for a long time. It is exactly what we want: - Ability to launch games within browser without a plugin download - Platform independent ABI - No f*cking Javascript (performance will never match C++) - Safe (no need for end users to worry) JavaScript for high-quality games is a non-starter. It's too slow. You simply cannot do high performance numeric code in Javascript (http://chadaustin.me/2011/01/digging-into-javascript-performance/). Writing C++ code to run outside of the browser is a pain, and inconvenient for the user. First, you have to write your code to handle all the different platforms, which is a huge burden. Once you've done that, you need to convince users to download and install your game. It would be much more convenient to just have users go a website and be done with it. If D were usable in NaCl that would be a huge selling point for the language.
Aug 03 2011
next sibling parent Adam Ruppe <destructionator gmail.com> writes:
Peter Alexander wrote:
 If D were usable in NaCl that would be a huge selling point for the
 language.

Well, let's set aside my personal things and see how this might be done. Based on what I've read so far, it actually sounds easy enough, codegen wise. It might be possible to drop gdc into their hacked up gcc backend and have it work with minimal effort. Or, changing dmd's backend to emit code for it might not be hard either. It looks like it'd just have to align jumps, which should be as simple as padding labels with some nops. The bigger difficulty I suspect will be porting the runtime... but, since it builds on C in a lot of places, that might be simple too. I can't find more details on what's needed to happen to the compilers, but I'm really thinking it won't be very difficult to make it happen.
Aug 03 2011
prev sibling parent reply "Nick Sabalausky" <a a.a> writes:
"Peter Alexander" <peter.alexander.au gmail.com> wrote in message 
news:j1asck$81d$1 digitalmars.com...
 The games industry has been crying out for something like NaCl for a long 
 time. It is exactly what we want:

 - Ability to launch games within browser without a plugin download
 - Platform independent ABI
 - No f*cking Javascript (performance will never match C++)
 - Safe (no need for end users to worry)


 JavaScript for high-quality games is a non-starter. It's too slow.

Browser for "high-quality" games is a non-starter. What idiot would rather play a game inside a damn browser? You could have all the speed in the world, and the browser would still be completely unsuitable for anything beyond dinky little popcap-style shit. We've had Quake playable in the browser for awhile now: and who the hell actually plays it that way? And who actually wants to? It's nothing but a "Gee whiz, look what we can do in a browser!" dick-measuring contest. The whole premise of games in a browser is idiotic. What is needed is 0install and an OS-level security model that's actually good, or something along those lines. None of this Google-mentality "pretending the browser is a platform" bullshit. The browser is a complete strawman here; cramming games into it is solving the wrong issue. It's exactly the old web-app trend all over again: People thought web-based stuff made deployment easier (in a few different ways: not all of which were actually true) and thought that it was safe/secure (which, frankly, has never really been true). So instead of *soving those issues* by putting their focus on improving deployment of *real* apps (via something like 0install) and pushing for improved OS security models (via something like selinux maybe? Seriously how much push is actualyl behind that? Not nearly enough), the morons started cramming apps into the browser (well, that and Valve's Steam abomination) and consequently fucked up computing while *still* not solving half the issues they thought they were solving anyway. If the games industry is crying out for faster in-browser computing, then what they're asking for is a faster horse. But it figures: I mean this is the stupid motherfuck industry that's spent the last ten years completely ignoring who they're *supposed* to be (***VIDEOGAME*** developers) and instead running around as a bunch of goddamn graphics-whore, "storytime", Pixar/Hollywood wannabe, IP-fellatiatng, fucking posers. Especially the absolutely disgraceful graphics-whore and "Pixar/Hollywood wannabe" parts. Those two in particular can't be over-emphasized.
Aug 03 2011
parent "Nick Sabalausky" <a a.a> writes:
"Nick Sabalausky" <a a.a> wrote in message 
news:j1cb3a$2qe7$1 digitalmars.com...
 I mean this is the stupid motherfuck industry that's spent the last ten 
 years completely ignoring who they're *supposed* to be (***VIDEOGAME*** 
 developers) and instead running around as a bunch of goddamn 
 graphics-whore, "storytime", Pixar/Hollywood wannabe, IP-fellatiatng, 
 fucking posers. Especially the absolutely disgraceful graphics-whore and 
 "Pixar/Hollywood wannabe" parts. Those two in particular can't be 
 over-emphasized.

Oh, and how could I forget the other major evidence of the industry's asinine mentality: Seriously, this indistry is holding onto DRM and closed-platforms about 10x harder than the *music* industry, for fuck's sake. And the long-hated music industry has never done region coding - another thing the so-called "videogame" industry (really the "hollywood-wannabe" industry, like I said) is keeping a deathgrip on.
Aug 03 2011
prev sibling next sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
Maybe it's a framework for Farmville on Google Plus. :p
Aug 01 2011
prev sibling next sibling parent reply Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
I liked QLive before they forced 30 second commercials on server joins
for non-subscribers. :(

It was cool being able to casually browse to other tabs, then going
back to qlive and finding a game.

UT for example had an integrated IRC client, but people preferred
using mIRC and having a ut://123.123.123.123 protocol they can just
click on to join a game. Don't forget having to minimize all the time
to chat to someone on MSN while playing a game. So there are some
benefits to having a browser based interface for a game, imo.
Aug 03 2011
parent "Nick Sabalausky" <a a.a> writes:
"Andrej Mitrovic" <andrej.mitrovich gmail.com> wrote in message 
news:mailman.2097.1312408853.14074.digitalmars-d-learn puremagic.com...
I liked QLive before they forced 30 second commercials on server joins
 for non-subscribers. :(

 It was cool being able to casually browse to other tabs, then going
 back to qlive and finding a game.

 UT for example had an integrated IRC client, but people preferred
 using mIRC and having a ut://123.123.123.123 protocol they can just
 click on to join a game. Don't forget having to minimize all the time
 to chat to someone on MSN while playing a game. So there are some
 benefits to having a browser based interface for a game, imo.

There is nothing you've mentioned that can't be (better) fixed without cramming everything into a browser.
Aug 03 2011
prev sibling next sibling parent reply Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
On 8/4/11, Nick Sabalausky <a a.a> wrote:
 There is nothing you've mentioned that can't be (better) fixed without
 cramming everything into a browser.

Where would you cram it then? Put MSN inside the game itself?
Aug 04 2011
parent "Nick Sabalausky" <a a.a> writes:
"Andrej Mitrovic" <andrej.mitrovich gmail.com> wrote in message 
news:mailman.2102.1312471399.14074.digitalmars-d-learn puremagic.com...
 On 8/4/11, Nick Sabalausky <a a.a> wrote:
 There is nothing you've mentioned that can't be (better) fixed without
 cramming everything into a browser.

Where would you cram it then? Put MSN inside the game itself?

See below:
 It was cool being able to casually browse to other tabs, then going
 back to qlive and finding a game.

It's called Alt-Tab and Taskbar/Dock. If those aren't up to the task, they can be improved. If it's the game that doesn't play well with those, then the game can be improved. If it can be done in a browser then it can obviously be done outside a broswer.
 UT for example had an integrated IRC client, but people preferred
 using mIRC and having a ut://123.123.123.123 protocol they can just
 click on to join a game.

Don't need the game to be run *in* a browser for that to work. First of all, browsers have *always* had the ability to lauch external apps upon special url protocol names. Or at least for as long as I can remember anyway. Secondly, there is no reason why dispatching on url-protocol can't be moved to the OS-level (or at least a standard non-browser library), thus bypassing the browser entirely.
 Don't forget having to minimize all the time
 to chat to someone on MSN while playing a game.

So the games can support playing in windowed mode. Problem solved. In fact, many of them already do. OT: Who the hell uses MSN?
 So there are some
 benefits to having a browser based interface for a game, imo.

Nope.
Aug 04 2011
prev sibling next sibling parent reply Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
I think we're misunderstanding each other.

I'm not saying move the game to the browser, just the part of the game
where you can browse the servers for that game. That's the part of
QLive that I liked, I don't care if the game actually runs in the
browser or not. I don't know what this NaCI business is about (btw,
NaCI? wonderful choice of a name, lol)

 OT: Who the hell uses MSN?

Millions of people? You don't need msn messenger to use the msn network. And who the hell uses internet explorer? :D
Aug 04 2011
parent reply "Nick Sabalausky" <a a.a> writes:
"Andrej Mitrovic" <andrej.mitrovich gmail.com> wrote in message 
news:mailman.2111.1312489332.14074.digitalmars-d-learn puremagic.com...
I think we're misunderstanding each other.

 I'm not saying move the game to the browser, just the part of the game
 where you can browse the servers for that game. That's the part of
 QLive that I liked, I don't care if the game actually runs in the
 browser or not. I don't know what this NaCI business is about (btw,
 NaCI? wonderful choice of a name, lol)

I see. I always preferred doing it in-game, but I don't really like multiplayer games anyway.
 OT: Who the hell uses MSN?

Millions of people? You don't need msn messenger to use the msn network. And who the hell uses internet explorer? :D

I think there's some sort of missing link here. MS made MSN, nobody ever used it, and it died a quiet lonely pathetic death in the face of AOL about ten or so years ago. (Then AOL floundered.)
Aug 04 2011
parent Adam Ruppe <destructionator gmail.com> writes:
MSN has done very well outside the United States.
Aug 04 2011
prev sibling next sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
I thought MSN had a pretty large network of users. IIRC arstechnica
recently had an article comparing the userbase of msn and skype.
Aug 04 2011
prev sibling parent Pelle <pelle.mansson gmail.com> writes:
On Thu, 04 Aug 2011 21:56:16 +0200, Nick Sabalausky <a a.a> wrote:
 OT: Who the hell uses MSN?

Almost everyone below 60 in Sweden, at least a few years ago.
Aug 05 2011