I'm a predominantly Python dev on Linux but when we needed a Windows 8 presence, I built a Metro app. I was pleasantly surprised at how easy it was using the HTML5/JS setup. The MSDN docs are pretty crap, mostly because the relevant information to get anything done is spread between 3 separate areas of the site for any given thing. However, the overall process of using visual studio and packaging the final product was pretty painless.
Some good things: localization is stupidly simple, the grid and list layouts are very well implemented, lots of caching and paging optimizations with no extra code required.
Some stupid things: Excessive HTML generated by using WinJS.UI stuff, pretty much any JS error crashes the whole application, sometimes I want something to be synchronous but I don't have that option, when doing a file upload (using the Windows.Networking.BackgroundTransfer module) you can get at the headers of the server response, but not the body (seriously... I did a major wtf when I was told that).
The solution of this problem is trivial and is left as an exercise for the reader.