Interestingly, to take things beyond jut x86, Google are making use of LLVM (a bytecode compiler that spits out highly optimised binaries, developed largely by Apple for on-demand GPU shader compilation in Leopard and eventually to replace GCC outright) to create highly portable bytecode binaries in a Java / .NET fashion.
On a certain operating system that has a competing 3D graphics API, the OpenGL libraries may not always be present and this means that WebGL content will not be available to these users. To solve this Google have partnered with TransGaming (makers of the Cider compatibility layer that allows easy porting of DirectX games to Mac, so named because of its roots in Wine) to produce an open source project (BSD licence) called ANGLE (â€œAlmost Native Graphics Layer Engineâ€) to translate OpenGL ES 2.0 to DirectX.
With Apple, NaCl represents a threat to their walled app store, necessary to drive iPhone sales. If native apps can be delivered by URL, why would any developer want to put up with the insane app store restrictions where they can’t even communicate with their own customers? If lots of developers are delivering compelling content using NaCl on desktops and on non-iPhones, and Apple don’t support NaCl, then users might consider an Android phone over an iPhone. It’s one long-term possibility, certainly.
With Microsoft, ANGLE represents a threat to their single-vendor ecosystem that encourages developers to learn and use only DirectX, to drive sales of Windows, XBoxes and Windows phones. Microsoft’s plate of offerings to developers is that if they come and learn C# they can target the XBox, Windows (and Mac/Linux via Silverlight) and Windows Phone 7 Serieses using just one codebase. They promise to make developing easy if you stick to them. WebGL is not DirectX and you will not see WebGL in IE9, or any version of IE because Microsoft do not want developers learning a competing graphics API and they do not want to legitimise the use of OpenGL as the standard on the web. It would be devastating in the long term to Microsoft’s iron grip on the gaming market. If a generation of kids are growing up writing games in WebGL, they’re naturally going to be armed to write full games in OpenGL, and not DirectX.
In the end, both Apple and Microsoft have bottom lines (hardware sales) that will be compromised by certain emerging web technologies. The self-crippling they may go through trying to not compromise themselves (Intel Atom, anybody?) may lead to Google getting the upper hand. That is, if Apple and Microsoft can’t invent a technology that threatens Google’s 97% income through online advertisements.
and especially Apple for all the heavy lifting of Clang and even LLVM with major contributors: