Move over, Intel, here comes Nvidia. Not with an x86 CPU - though rumours to that effect have been rippling through the chip biz for years - but an ARM-based offering aimed at PCs, workstations and even servers. Yes, the as-yet-unnamed processor - it's codenamed 'Project Denver' - will not be pitched at mobile devices, the …
As a developer
Well, I still can't get 64-bit applications for most things on Windows. I still find it to be a pain in the rear to target x64 because there's still a lot of differences.
I've coded for ARM, MIPS, PPC, AXP etc... in the past. It's generally very little work to port from one platform to the other so long as the OS is the same. But, the tools have to exist first. If Microsoft doesn't have a full version of Visual Studio 2010 (maybe 2012) that runs natively on the platform, forget it. Microsoft and ARM make truly, wonderfully awful compilers for ARM. I mean, they're totally crap. Intel used to have a good one, but they don't maintain it anymore. LLVM and GCC are the only decent compilers for the platform. And frankly, I don't see Microsoft jumping ship to one of them.
Microsoft tried REALLY REALLY hard on x86 emulation for the Alpha and Itanium ports of Windows. They did an awful job on those. The only platform emulation system that ever seemed to work "ok" was the Rosetta Stone technology that shipped with OS X when they switched to x86. But that was because the operating system used super fat executable types that pretty much included everything twice (once for x86 and once for PPC). Also, Mac OS X was practically designed for jumping from processor to processor. Windows won't be so lucky. Of course, after doing Windows 7 and making it run 32-bit Windows on 64-bit platforms, things have improved greatly. They've sorted out most of the issues with effectively having two of everything on the system.
What I think it will really come down to is, NVidia will need to ship extremely inexpensive development platforms to people who want it. Microsoft will have to invest heavily in compiler development for ARM.
If I wanted to make this really happen, I'd set aside thousands of developer systems and seed the open source quickly. Then, send free systems to the companies that matter (WinZip, Adobe, etc...) and start offering "prizes" for "most projects ported to the new platform" and "most bugs reported in the development system". Additionally, instead of keeping it REALLY CLOSED and making everyone need to buy an MSDN subscription to get started, NVidia and Microsoft should sponser getting as many people running on the platform as possible.
Here's a developer system that will get thousands of good applications ported to the platform overnight.
1) Nvidia Tegra Tablet similar in general specs to iPad
2) 8 gigs of memory (compilers and tools are hungry and ARM isn't as optimized as x86.. yet)
3) 256gig (or better hard drive or flash)
4) docking station with VGA, HDMI, USB, Ethernet etc...
5) Windows 8 beta
6) Visual Studio 2010 (or better) running natively on the device
7) Distributed build system (such as incredibuild)
8) A compatible Visual Studio to run on x86/x64 to add processors to the compiler task. A million lines of code with spaghetti in the headers can take 15 minutes to compile on a BIG system. And porting to ARM is nearly all about changing header files.
Seed that system to 500 open source developers who "commit to porting a source forge project on the wish list" and offer a reward for doing it. Like "If you complete the port, you'll get a 1 year subscription to MSDN"
Not only will it get a lot of projects ported, but it will make a large base of loyal, experienced engineers available overnight.
The most important factor of porting an OS to a new system isn't getting it there. It's getting the developers to make their software available for it.
Oh.. another important thing.. InstallShield and Wise Installer etc... all need to support a single package installer for either platform. You should be able to double click the executable/MSI and it will work no matter what platform it works on.
The user shouldn't have to know they're on another processor. It doesn't matter to them.