I do not think that Windows Mobile is a competitor to the iPhone. As far as I can tell, for consumer-oriented developers, there are four platforms that developers should consider right now:
- iPhone
- Blackberry (with the new App Store )
- Palm Pré (which will receive the application store)
- Android (which will receive the App Store for paid applications)
Everything else is non-essence. Symbian and Windows Mobile may once again become relevant, but today it is not. There is no healthy software market on these devices, and I don’t understand whether a significant part of the people who decide to buy Windows Mobile phones care about third-party software.
As for tools and languages, the differences are not significant. This is simply not a problem. Developers will not give up on a market such as the iPhone, simply because they do not like tools or language.
What's more, Xcode is more than enough (some prefer Visual Studio - I definitely think some of its aspects are better than their Visual Studio counterparts), and if you know Java, C ++ or C #, you will learn Objective-C within weeks maximum. These are basically two or three new concepts, a slightly different syntax and reference counting. If you already know several object-oriented languages, learning Objective-C is not a problem, and if you do not, this is a good reason to pick up some new ideas and concepts.
The real difference is in libraries, and I personally prefer Cocoa for .Net libraries, which often require you to switch to the pre-.Net APIs.
Perhaps in four years everything will be different. Perhaps Nokia fixes Symbian forever and occupies the smartphone market. Who knows? You must do what we have today :-)
So my points are:
- Until Windows Mobile actually becomes a viable platform for third-party applications, ignore it.
- Instead, look at Pré, iPhone, Blackberries, and Android phones.
- Objective-C is just a programming language. It makes no sense to even think about it too much. Any programmer can study it for a week.
- Xcode has its drawbacks, but it also has its strengths and no worse than Visual Studio.
- Cocoa is excellent [/ li>
- Four years is a long time, and no one knows what will happen by then.
Programming for the iPhone is subtle fun and you will learn a lot if you have never made up your mind outside the .Net world. Just pick up a good book, postpone the weekend, set a small goal (for example, a small game or todo app or something like that) and get the encoding. Even if you do not like Xcode, even if you do not write any iPhone applications, you will get a better programmer.
And if Symbian really wins, the experience of learning to write code for the iPhone, at least, taught you how to get up and work on the new platform :-)