W3bbo said:
rhm said:
*snip*

That's because native Win32 code isn't a pleasure to develop in.

 

I disagree with your "outside of games development" because you overlook iPhone/iPad and OS X development where the Cocoa API and ObjC environment present a modern OOP platform to build on with a strong class library to boot.

I considered mentioning Apple but thought we were talking about Windows. But since you did, have you done any development for MacOS or iOS? MacOS is the last holdout of people who enjoy writing GUI desktop applications in native code. iOS apps are written in native code mostly with high reluctance by people who grew up with Java (or in many cases Javascript) and had never written a line of C before they got attracted by dollar signs.

 

I think you're overstating what you get from Cocoa. The way they API gives you objects for windows/views and distributed messages isn't very different to the way ATL wraps window handles to give you objects. Of course you have the Core Animation system on iOS which is what gives the UI most of it's zing, but it's still much closer to a traditional windowing system than WPF/Silverlight is. For example, when it comes to actually drawing in a view you are still writing procedural drawing code no different to GDI. Many of the subsidiary frameworks are either C or behave like C and don't have much object-orientedness about them. And then there's the language that is Objective C. It's clearly a lot better than trying to write OO code in plain old C, but it combines the slow compilation of C/C++ with the lack of compile-time type checking of Javascript.

 

When I went to learn iPhone development I decided that I'd go in with the right attitude and learn the 'proper' way to do everything there. Having done that my opinion is that the APIs are OK, but boy do I wish I could program it in C# instead. Which is one of the reasons I was so disappointed the new app store rules forbid that (along with the fact that telling a programmer what languages they can use is as offensive as a government telling imigrants that they must speak English at all times).