Microsoft has a problem with Windows Phone 7 (WP7) that doesn't seem to be widely understood and it has placed itself into a "damned if you do, damned if you don't" situation.
Various tiny bits of news are finding their way into the wider world from a developer camp in India, among other sources. The slow announcement of new features are probably a build up to the Mobile World Congress in Barcelona in February where WP7.6 aka Tango will very likely see the light of day.
So far details that are relevant to developers have been few and far between, but one is particularly important. As well as mentioning support for another 120 international languages, it is claimed that one of the speakers mentioned C++ support. However it isn't clear if the comment related to Tango, or a future update, or even the next version of the SDK.
From the point of view of the future, the exact timing doesn't matter because C++ native app support probably means the start of the move away from Silverlight as the fundamental developer environment for Windows Phone.
That Windows Phone needs a radical system change is plain for all to deduce, yet Microsoft isn't saying anything much about it. Recently Brandon Watson, Windows Phone 7 director, tweeted a rebuttal to rumours that WP8 (codenamed Apollo) wouldn't run WP7 apps:
"Rewatch Mix11 keynote. We were pretty clear on this. Any app built today will run on next major Windows Phone version."
You could pick up on the fact that the promise only extends to the next version, and not however far into the future you want to consider, but there is a much more important problem.
The Windows 8 tablet OS will make use of WinRT/ Metro style apps. Now while Metro might look a bit like WP7, it isn't the same environment at all and it doesn't support Silverlight. Hence it doesn't support WP7.
So can Microsoft really have one OS/API for the desktop, one OS/API for the tablet and yet another for the smart phone?
Well yes it can, but developers aren't going to like having to create everything three times over. We want unity. To an extent you can forgive the desktop/WinRT split because it is mostly unreasonable to expect a desktop environment to work on a tablet - but the split between tablet and phone is less tolerable. More to the point, it doesn't exist in the Android or the iOS world. You may have screen size problems but you can write an app for Android/iOS and target both phones and tablets.
So when asked if WP8 is going to run WP7 Silverlight apps, if the answer is "yes" then, unless there is a plan to support WinRT C++ native apps as well, there will be disappointment. Put simply, programmers working on WinRT apps want to be able to run them on WP8.
On the other hand, if Microsoft says that WP8 is going to support both Silverlight and WinRT, then all of the WP7 programmers will realize at once that the future isn't Silverlight but WinRT. They may be able to run their apps on WP8 but they will be legacy apps...
It is a complicated situation but what is clear is that Microsoft can't say anything that will please everybody. In this sense dropping Silverlight from Windows 8 Metro was a really bad decision simply because it either signed the execution warrant for Silverlight on WP8 or created a very unattractive platform split.
More information will most likely be available later in February.
VB6 was once the most used programming language on the planet and then Microsoft killed it. Now that they no longer have any interest in it one way or another, and with a new commitment to open source [ ... ]