>>1
You can still program Metro Apps in native C++ via COM, they've added some language extensions to make interfacing with COM programming more natural.
Doing it HTML+Javascript is only one way of targeting the Metro desktop. Articles written that only emphasize HTML+Javascript are written by people who don't like native or .NET development. In fact, Microsoft itself recommends to seasoned developers and companies to use native C++ for WinRT/Metro development for maximum execution efficiency as it doesn't rely on slow garbage collection and has less startup overhead as there is no VM or JITing. Plus all of the features of Metro are accessible in C++, all of the other languages just get half-assed language bindings for most but not all features.
http://en.wikipedia.org/wiki/Windows_Runtime#C.2B.2B_.28WRL.2C_Component_Extensions.29
Native C++ is a first-class citizen of the WinRT-platform. To use WinRT from C++ two supported options are available: WRL—an ATL-style template library—and C++/CX (C++ with Component Extensions) which resembles C++/CLI.[12] Because of the internal consumption requirements at Microsoft, WRL is exception-free, meaning its return-value discipline is HRESULT-based just like that of COM.[13] C++/CX on the other hand wraps-up calls to WinRT with code that does error checking and throws exceptions as appropriate.