Thoughts about WP7

Now that Nokia made sure most of the energy put on Qt goes down the drain, I took a peek at Windows Phone 7 development and I was disappointed.

I posted a short comment to Future of Qt blog post and I thought I’ll write a bigger rant to make people more aware of an important issue.

The tools for WP7 are probably the best with Visual Studio and GUI editor and what else, I’m pretty sure about that, but the platform itself is disturbing: all code must be C#. You can’t use C/C++ with WP7. And when there can’t be those, there won’t be CPython nor Lua or any scripting language implemented without C# or .NET managing your code, unless you’ll find a C# port for it. And if you did, it most likely lacks in features compared to the original. And then there’s numerous other C/C++ libraries that you can’t use.

Somebody commented on my post saying this is the reason why the platform will fail and nothing except meaningless apps(fart apps,rss readers etc) will be ported. Apps with long history, existing code base and support for multiple platforms can’t be pure C#.  And I agree 100%.

Microsoft wants to avoid fragmentation, well that’s good but not with these restrictions. Lack of “unmanaged code”, as native code is called in .NET land, will be causing fragmentation, not the ability to reuse your code. It’s your code that’s fragmenting so MS doesn’t care. This is even worse than the Apple’s ban on scripting languages, which was removed a while ago. They still allowed reusing old C/C++ libraries, like physics engines in your apps.

If WP7 ever gains popularity among major app/game makers, I believe and wish they’ll make this issue clear to Microsoft as they (I assume) did to Apple. Well, first they need to gain popularity among consumers 😉

Without knowing much about the internal workings of WP7, I don’t see reason to block native libraries. Sure, it’s harder to avoid dll hell with C/C++ as the problem is well known on desktop. But if my app doesn’t use any system libraries but only its own? How many system libraries do you think a physics library might need? How many system libraries does a Lua interpreter need? I can think of one: libc for allocating and freeing memory. All those libraries do is reserve some memory and do some math and give some results back. Sure scripting languages may allow file access etc., but that’s not necessary. I just want to script some logic of the app, not the whole app. Anyhow, I don’t see the point, somebody, please enlighten me. Google & Apple can do this without getting in your way, why not Microsoft?

I have been reading discussions about Nokia-Windows deal, and only fraction seems to think that the whole Nokia-WP7 thing is a good thing. And those who do seem to be… less informed. The only good thing here is that we are finally getting rid of Symbian, but the price is too high.

So what’s the main reason that I’m worried about: to force people use .NET and me to write only C#. We have now witnessed what happened to people skilled with Symbian C++, the fear that I heard soon after Nokia started using Symbian. So don’t try to get us stuck with a single way of doing things. Sure there’s monotouch and monodroid to reuse your code on iPhone and Android. Not sure about them though, not free and they add another layer of complexity to your app. Easier to just learn the platform’s own way. I have no trouble using C#, but that’s not the point: I want to reuse my old code and the other libraries out there. Apple is good boy compared to MS.

And my opinion about C#? Nice, but Qt Quick rules. Sadly, now I can only think that it should rule. *sigh*… back to the drawing board.

6 thoughts on “Thoughts about WP7

  1. I agree with everything, except this:

    “no real apps can be pure C#”

    I despise the sudden break of compatibility from WM6.* to Windos phone 7, as much as I appreciate their boldness in trying to mantain a consistent and “pure” programming environment.

    It’ll probably fail to persuade developers to port their C and C++ codebases to only managed C#, but this doesn’t mean that -at least in theory- it could be possible to develop a real and meaningful application only in C#

    It would be like to say that you can’t do a real app that is pure Python or pure Java

  2. C# and Python has been some of my favorite languages of all time. I do agree that Qt community will curse Nokia for doing such decision, but always remember it is all for the best… Have you seen the frustration of Nokia CEO in his later to employees?


    http://www.technobits.net – Always remain technically updated.

  3. The last time I checked XNA / Silverlight / etc. do not support dynamic language part of CLR needed for IronPython support.

  4. >> “no real apps can be pure C#”

    Ok, agree that’s an overstatement. Of course one can build good apps with C#. I meant apps that are supported on multiple platforms, may even have long history and existing code base.

    >> always remember it is all for the best

    Sorry, but I don’t see getting locked in on single platform can be for the best. However, if they ever provide proper NDK, something like Android has, it would be great.

    >> Have you seen the frustration of Nokia CEO in his later to employees?

    Remember that the root of the frustration was mostly caused by old way of programming Symbian, Qt didn’t even have a change to show what it was capable of. The Qt apps were just starting to appear on Ovi.

Leave a Reply

Your email address will not be published. Required fields are marked *