Skip to comments.Nokia Simplifies the Mobile Landscape ( A view from a Developer )
Posted on 02/17/2011 8:04:22 AM PST by Ernest_at_the_Beach
On Friday, Nokia announced that they were adopting WP7 as their operating system. Although some open source advocates might see this as a set-back for Linux, Android is already the best-selling Linux OS of all times. Meanwhile, as a Ben Zander student, all I see is possibility and the the world of opportunities that this opens to developers.
Although they will continue shipping Symbian for a while, they are effectively sun-setting it. Just like you can still purchase Itanium systems from HP, nobody really develops for those anymore.
Nokia had this chart to offer on Friday:
This is fascinating turn of events for C# developers as Nokia will make WP7 more relevant in the marketplace, making C# the lingua-franca of all major mobile operating systems. This astute chart explains why I am basking in joy:
C# and the ECMA CLI everywhere!
Now, certainly lots of developer houses can afford to build their software once for each platform. This is fine if your VC has a mandate to "spend that cash quickly" or if you have a surplus of interns at your disposal.
Now, if trollcats have taught us one thing is that users like the UI of their apps to be as native as possible. That is, mind-blowingly beautiful on iOS and try to match the carpet on the others.
Other snake oil vendors will tell you that you can use the same code across all platforms and still deliver an emotional experience to your users. I agree, you can deliver the same emotion of disgust when using a cross platform toolkit.
With Mono we have taken a different approach, based on our own failures from the past. We give developers access to all of the native APIs in the platform to create the best possible user experience, and exploit every single last bit of functionality available on the platform.
We advise our users to split their user interface code from the engine, or their business logic. Developers should create a native experience for their mobile apps: one per platform. For example, consider Angry Birds on iOS and Angry Birds on Blackberry. Each version adapts to provide the best user experience available on the platform.
This is a grand time to be a mobile developer. This chart illustrates the elegant balance of native experience and code sharing available to C# developers:
Update: As much as I have enjoyed responding to the comments on this blog post, the comments are now closed. I will make an exception with anyone that wants to follow up on an existing discussion. For everyone else, if you have something to share, write it on your blog.
Does this leave RIM out of the race?
The most important issue facing mobile platforms, their hardware and software systems, is the lack of an excellent write-once-run-everywhere platform. A .Net platform is an excellent choice for this. Microsoft has missed the boat bigtime by not offering .Net on all mobile platforms. Having to move from iOS to Android to Win7 is painful and all the dev platform are lacking in basic development features. Apple is coming out with their new development platform, and it is excellent, but it only supports iOS and only on a Mac. So, again, there is no cross platform development environment worth a damn out there.
What am I missing?
Code is written in C#...??
Yes, he is, but Mono is an Open Source project whose purpose is to provide .Net where Microsoft hasn’t, which is so far everywhere but Windows. Microsoft should be putting up .Net instead.