Microsoft now has, IMO, the most interesting design language of any of the big tech players. I guess it remains to be seen if there will be any reward for them in the market for this but, as a developer, I find this a lot more appealing than anything Google or Apple are doing and C# kicks the shit out of Java or Obj-C.
I totally agree about the design language. I work on a Mac most of the day and love my iPhone, but damn does Metro look nice. And it's great seeing that come across with their other products as well.
I fell in love with Metro the minute I saw it. I bought a Lumia 800 on day one. I'm all for chromeless interfaces. But I'm starting to think I was mistaken.
1. They followed design principles too well. Strong constraints: check. Simplicity: check. But Metro is too constrained, too systematical. App designers are left with too few breathing space. Apps look all the same and feel too cold. I want my gradients back.
2. It doesn't look that good on big screens. For instance, launch screens of Windows 8 apps : it's too minimalistic to have big white icons on a flat monochrome background.
I think the Design is good on first sight but doesn't carry over with time. It is the excitement in graphics but little in design philosophy. Compare to Android 4.0 and Apple.
I don't think that's a fair comparison though. Metro as a design language is very new. Compare iOS 5 with iOS 1. Or Android 4 with the pre-iPhone version. Or Mac OS X Lion with that pinstriped abomination that OS X used to be.
I think Metro has a lot of growing to do, but it seems like a language that could be very interesting down the road.
What do you mean by "design language"? A programming language, a programming language used for design (like HTML, CSS), a the style of language used in their websites (e.g. Lorem Ipsum), or something else?
From wikipedia: A design language or design vocabulary is an overarching scheme or style that guides the design of a complement of products.
In microsofts case it's the "metro" style, with lots of bright (almost cartoony) colors, big blocks filled with lots of light-weight, sans-serif fonts.
It's not full featured. It's a pretty small subset. The most powerful things in the .Net platform are the big chunks of code which take on large business cases and make them go away.
For example the following either don't exist or are half-baked:
WCF (WsHttpBinding in particular), WWF (entirely which we use for WCF correlation), EF (not a biggy but would be nice), WPF (the best part of .Net), MEF (buggy and missing bits).
I do agree with you : mono is a subset of .NET,
Cross platform compatibility is not the main reason for using Mono. I really like the C# and the .NET ecosystem.
I use a native UI for each platform, but the core code is the same. I'm not a big fan of those generic UI toolkit ...