I saw a blog post today saying
“You Already Are A Windows Phone 7 Programmer”
Implying that if you know Silverlight, you can develop for Windows Phone.
Those who think they can write a Windows Phone application the same way they can write a Silverlight app are in for a rude awakening.
I’ve written Windows CE and Windows Mobile applications for close to 15 years now. I’ve even written a book about it. I’ve heard this line before. First it was “Windows CE uses the same Win32 API as the desktop, so you’re already an Embedded Programmer!” Then there was “.NET Compact Framework is the just like desktop .NET so you’re already a Windows CE/Windows Mobile developer!” Now this one… It’s all Big Lie #3, “This time it’s different!”
Windows Phone devices are fundamentally slower both in graphics and general CPU power than the desktop machine that runs a standard Silverlight application. This isn’t the fault of Microsoft or the hardware OEMs, this is by design. The slower hardware allows the phone to last a day in your pocket while a powerful radio receiver waits for the next phone call. (Not to mention the WiFi and GPS receivers.) This makes trivial things like garbage collection events distractingly noticeable to the user. The low speed system drive fundamentally different application architectures.
In addition, the user interface is fundamentally different. The phone has a much smaller screen 480 x 800 with a different user input paradigm (touch/gestures) compared to the much larger desktop monitors and classic keyboard / mouse input. This causes you do design a fundamentally different user interface.
Finally, there is the user. Silverlight applications are used by people seated, at a desk or table, and are stationary. The users of a Windows Phone application are (here’s a word the WP folks hate to say…) “Mobile”. Users are walking, or worse, driving while using your application. This makes performance, as in how quickly screens respond to input, as a safety issue. Users who spend time waiting on a screen to change tend to walk in things. I’ve actually seen this happen by “crackberry” and other PDA addicts at the airport.
I’m not saying that you shouldn’t write a Windows Phone application. In fact, I encourage it. However, the concept that you already know what you need to know to write a WP app is worrisome. It sets too the expectations far too high. This isn’t good for Windows Phone.
I’m also not saying that the WP folks at Microsoft are being deliberately deceptive. The marketing folks are just trying to get a large audience to check out the platform. Still, its a tune I’ve heard before.
So, when I hear that Windows Phone development is just like the desktop I just smile. As a friend of mine said, “Just because it compiles doesn’t mean its right.