when win8 was annouced, it came with promise to run on both x86 processors & ARM processors. and somewhere along that promise it also said that apps writen specificaly for win8 would able to run both on x86-based win8 & ARM-based win8. http://www.withinwindows.com/2011/06/03/d9s-odd-windows-8-video-unofficial-transcript/ so, how can that be? considering the fact of vast differences between x86 vs ARM archictectures... some begin to speculates that MS will adopt the classic xBase/Clipper p-codes apporach, or JavaVM bytecodes apporach, or something like Flash ActionScript p-codes. Therefore new apps designed for win8 will not in binary form that natives to CPU instructions anymore, but rather in binary intermediate-codes, that will be interpreted (or JiT/AoT compiled) by win8. One could said what win8 is an OS scale javaVM-like or and OS Scale flash player. Then, developer preview arrives. Those who spout above theories immediately recognized the WinRT as the intermediate-codes, after all WinRT have no other purpose, benefit, nor any other justified reasons of being there. Somewhere in the development MS probably realized for winRT to works, it need unified/consistent environment (or ecology as MS term) that can exist both in x86 systems or ARM system. And thats where Metro comes in, to force the unified environment to any Windows 8 users, regarless wether the Metro actually mets windows users needs or not.