Microsoft’s Charlie Kindel has blogged about the Windows Phone 7 development platform.
As widely leaked, the new mobile device supports Silverlight and XNA; Kindel also mentions .NET, but since both Silverlight and XNA are .NET platforms, that might not mean anything additional.
The big story is about compatibility:
To deliver what developers expect in the developer platform we’ve had to change how phone apps were written. One result of this is previous Windows mobile applications will not run on Windows Phone 7 Series.
This puts Microsoft in an awkward position. Support for custom business apps has been one of the better aspects of Windows Mobile. What Microsoft should do is to have some way of continuing to run those old apps on the new devices. Instead, Kindel adds:
To be clear, we will continue to work with our partners to deliver new devices based on Windows Mobile 6.5 and will support those products for many years to come, so it’s not as though one line ends as soon as the other begins.
I would not take much account of this. No doubt there will some devices, but demand for Windows Mobile will dive through the floor (if it has not already) once Phone 7 is available, making it an unattractive proposition for hardware partners.
The danger for Microsoft is that after this let-down, those with existing Windows Mobile apps that are now forced to choose a new development platform might choose one from a competitor.
The mitigation is that apps which use the Compact Framework will likely be easier to port to Windows Phone 7, because the language is the same. Native code apps are a different matter. Of course it will be technically possible to write native code apps for Windows Phone 7, but probably locked down and restricted to special cases, such as perhaps the Adobe Flash runtime (I am speculating here).
PS – I see that developer Thomas Amberg has articulated exactly these concerns in a comment to Kindel’s post:
Platform continuity was the single most important feature of Windows Mobile. Being able to run code from 2003 on a current phone is more important to our customers than a fancy UI (which Microsoft seems not able to get right anyway). Further, the ability to access hardware specific APIs through P/Invoke has been vital in many of our projects (e.g. to use Bluetooth in the early days). Those advantages have now gone. You just rendered useless years of development work and many thousands of lines of code.
"we will continue to work with our partners to deliver new devices based on Windows Mobile 6.5 and will support those products for many years to come"
You will, I bet. But which device manufacturer will produce such "dead-end" devices?
Time to switch to another mobile OS.
It’s interesting that MS aren’t talking about native apps anymore, however from what I can tell the underlying OS is still Windows CE6. The WP7 UI is so different there isn’t much point in pretending that existing apps will run so I don’t mind the back compatibilty break here (nor I suspect will most developers as revamping the UI to the iPhone/android era is something they would probably do anyway)
The kicker is access to the underlying OS, on windows 32 I’d guess 10% of the C# apps I’ve written needed some from of unsafe or PInvoked access. For WP7 I’d guess the likelyhood is smaller (I presume the main UI is in managed code) but suppose the managed camera API doesn’t expose a means to change the exposure then I’d be unhappy if there wasn’t a way to PInvoke out. However in that case I’d understand if my app didn’t get into the App Store or cost more to get certified.
Microsoft have a real chance here to bring back Windows Mobile from the dead and third party devs will probably forgive the back-compatibilty break. Existing WinCE OEMS (I’m thinking barcode / stock taking etc) won’t care as they’ll be using WinCE6 which underpins WP7 and usually don’t use the full windows CE experience anyway. I suspect the only market segment MS will actually piss off with this are the corporate developers and I’m not sure how many of them are using the phone portion as more than a glorified modem.
My only worry here is quite how cagey MS are being over this. I hope I’m wrong and they’re not trying to put the “authorised code” genie back onto Windows Mobile (The early XDAs were locked down IIRC). On the other hand “authorised only” phones might crash less, most of my WinMo crashes / hangups have been down to third party apps particularly on the home screen.
Peter
Thanks for the comments. Yes, it’s the corporate devs that will mind; if the phone is a big success it will have been worth it.
Tim
I don’t get it. Why would MS care about retaining existing CF/Mobile developers? Because all 100 of them might go elsewhere? (And my company has a CF app, so I do understand the pain.) In order to keep their apps, which have driven such demand for Windows phones?
MS doesn’t want to incrementally expand the Windows Mobile market; it’s dead in the water. You could say they’re gunning for the iPhone instead, but I think even that’s too small. MS would like you to use their software whenever you use a computer. They recognize that there are more phones than desktops and laptops, and that they’re becoming powerful enough to run real applications. They want a piece of that, a big one. They aren’t going to get there by trying to use Windows Mobile as a shoe in the door.
MS isn’t trying to “bring Windows Mobile back from the dead.” They’re trying to prevent the Windows brand from dying if average people start doing most of their computing on mobile devices.
@Craig
Thanks – a good summary of Microsoft’s strategy.
Tim
As a hardcore technical guy my feeling on new WM platform is that I lost flexibility. The more constraints and dictation (on choice of development language, tools etc.) from Microsoft makes me nervous. Isn’t Microsoft forcing me to learn new technology, new rules/regulations etc. to develop applications?
“Windows Phone 7 incompatibility may drive developers elsewhere”
May?
It’s certain.
2.5 years of development, now deployed on WM6.x…. and now a dead end. No P/Invoke, no DB, no run-at-time, etc.
Bad deal, MS. I’ve been fooled for the LAST time. Hello, Linux on dedicated hardware.