In two words: C++ and Open GL. Right now, the Windows Phone SDK only handles C#, which is great, but is not really used by Android and iOS developers. On the contrary, both iOS and Android support C++, so it is possible to transfer code from one platform to the other without a complete rewrite. That is especially true for the “core” app code, which is not OS-specific.
According to Karthik Ragubathy, Microsoft has mentioned that C++ development would come in the “next release”, although the Microsoft employees did not say the next release of “what” (Windows Phone or Microsoft Visual Studio). In any case, it seems more likely that it is the next release of Windows Phone that would gain C++ support as Visual Studio has had it forever.
If this is confirmed at Mobile World Congress, this would mean that a huge amount of C++ apps could be ported with minimal efforts to Windows Phone. I’m thinking about all the online services, photo apps, and 2D games…
Which brings me to the second point: OpenGL. Even with C++ support, developers would still love to have a working OpenGL ES 2.0 to port their games. Obviously, they can do without, and with additional work, they could simply do what they have done on PC/Mac for years: write a rendering abstraction layer and use XNA/DirectX on Windows Phone. That said, Microsoft should definitely provide support for OpenGL, for Microsoft’s own sake…
Again, I’m sure that the official answer is going to be: “we don’t have infinite resources”, but if Microsoft takes mobile seriously, and if they truly believe that apps are key to having a healthy eco-system, we should never hear that for C++ and Open GL support. Both are a critical elements if Windows Phone is to get apps. Clearly, re-writing an app in C# to address a relatively small market is no-one’s first option.