Shifty Geezer said:
If XNA provides hardware access libraries, surely the code is CPU independant to some extent? As long as you don't hit the hardware but go through the libraries, just as DirectX works on diffrent cards with the same software interface regardless of the hardware implementation, portability should be okay. Depends what MS have in mind, but Allard has certainly sounded keen on this idea in interviews I've read.
Libraries do not in any way make code CPU independant. They make it easier to *port* code over, or to compile for different targets. Once you compile in a library, or actually produce CPU code of any type at all, any portability is lost. DirectX's hardware independance works by having a driver layer between you and the gfx card. It's the drivers (and the manufacturers all sticking to the same standards thus exposing a standard API to all) which make it so useful.
What you're talking about it to introduce a driver layer between the code and the CPU it's running on...
Essentially that would be a virtual machine - like Java. Code would have to be interpreted, or JIT compiled. It'd be a performance nightmare, and many optimisations would be out of the window.
If MS do anything like that for next-gen (and I know the flirt with VM's on PC) then Sony will be laughing all the way to the bank.
You've got more chance running an XB2 game on a Mac than on a PC.