Revisiting 50 million Nokia Symbian^3 devices and fragmentation post

My last week’s post about how Nokia’s plans to ship 50 million Symbian^3 devices can lead to a major fragmentation among Nokia devices, running 5 different OS flavors at the same time, sparked quite a discussion. A lot of Nokia experts and fans chimed in, to tell that there’s one major thing I missed, that will put all my fragmentation fears to naught.

That thing is  QT – a cross-platform application and UI framework, as Nokia calls it. According to Nokia watchers – QT is that magic sauce, that will bring all those fragmented Symbian^1-Symbian^4 and Meego platforms together. The best explanation of what QT is, and how it is supposed to work, was given in the comment area of the original post by Marcus Christopher McFann from Symbian Freak and Maemo Freak. Here are the relevant parts of his comments:

______________________

To understand how Qt will work, you must understand what it is. Every OS has APIs, or interfaces to access certain functions and hardware, like a location API or camera API. This is the way developers connect to the device via software. While OSes are different, the API list of advanced systems are usually similar and work in similar ways, just without compatibility between each other. To explain it generally in my informed but certainly non-developer way, Qt is like a universal translation layer that can be made to connect to ANY APIs of ANY OS to which it is ported to. It connects to the native code in a way that causes no major loss to system resources.

So right now, Qt is just on Symbian and MeeGo officially, and has community provided unofficial ports to WebOS as well. So any application written in Qt can be packaged for the OS (as a .deb, .rep, .sisx, exe. or other compatible file type) and work the same as if it were written using native code.

This is nothing new. Remember, on desktops, we already have Qt, Flash, Adobe AIR, Java, and other types of apps that work on any major OS. We know Windows APIs and OSX APIs aren’t alike, but similar. So obviously, these technologies are proven years ahead of today’s foray into mobile, and Qt’s cross platform is able to translate multiple different “languages”, or code ecosystems, with success. Just as Java works on all desktops and most basic mobiles, so the same for Qt devices, only Qt isn’t actually a runtime, but a translation layer to native code. So instead of writing complex Symbian C++ code, just write simple Qt code, and it connects to the native runtimes for you, regardless of OS.

Now the problem I had with your article was fragmentation. The reason why is because it is a fallacy. S60 5th, S60 3rd, S^1, S^3, S^4, and MeeGo are akin to Windows XP, Vista and Windows 7. There are slight UI differences, but the core of the OS is the same, and most of the APIs are the same. And all Adobe AIR, Flash, Java, and Qt apps work the same, don’t they? Skype works the same. Google Earth, same thing. VLC is a mainstay on them all, and the same version. Are those OSes fragmented? Of course not.

All the Nokia supported OSes support the current implementation of Qt. As long as they do, these OSes remain a UNIFIED ecosystem using the same toolkit to make the apps. Instead of heavily relying on Symbian SDKs and MeeGo SDKs, you use it as a reference mostly, and rely on the Qt SDK. Qt is the centerpiece, not the OSes. Any OS or device supporting Qt will run apps designed with it. That simple.

Since graphical scaling is at the heart of Qt, there is little worry of aspect ratios and resolutions. And since it can be ported to other OSes, it can also be maintained for those OSes to stay on the latest version, extending the life of the past OSes. This was Nokia’s plan all along. Remember, they went from 2nd Edition to 3rd Edition with a full code break, and abandoned all of theprevious apps, and zero apps for the new version of Symbian at that time.

A good example of how it’ll work is shown in the Java based Limewire Gnutella P2P client, as well as Tweetdeck. When these apps are created, updated, etc., ALL OSes benefit. From Windows 98 onward, all using the same install package, we can see that with proper support of the Java and Adobe AIR systems/frameworks, we eliminate developer fragmentation, not create it.

The reason applications haven’t been as prevalent as we’d like is up until now, the only way to get the Qt support on a device was to load the libraries yourself. If you coded an app, you could include the necessary Qt libraries needed in your install package, but it would create a large install file, something not quite optimal for various reasons.

Also, Qt was still in beta for the longest, and just recently became hardened. It is now in final form and ready to be part of the OS, not just installable libraries like Python in the past.

Now that devices are shipping having all of the libraries installed, and those devices are mass market targeted devices, developers can be assured that the Qt commitment is solid. Expect to see other OSes adopt Qt to connect with their native platforms, especially those with paltry runtime support, which is everyone but Symbian and MeeGo.

The only one I expect WON’T adopt any technologies to make development easier across multiple OSes is iOS. Android likely will support Qt, since they already embrace XCode and other cross platform technologies. RIM’s main toolkit is based on outdated and inefficient Java technologies, and may benefit from a native platform for developers based on C++ or another technology, and Qt could accelerate app development should they do so. WebOS’ developer community has already done an unofficial port of Qt for its environment. Microsoft supported Qt in WinMo/WinCE, and could add it again down the road in WP7, but that is just speculation on my part.

With all of these OSes supporting cross platform technologies, and Qt being the only one that crosses mobile and desktop OSes and x86 and ARM platforms, it has to intrigue any developer looking to reach a mass market. 100% of all addressable markets and device architectures is a good start. What can iOS and Android get you? Not there, that’s where.

I forgot that Adobe AIR is also a cross platform framework/runtime that crosses mobile and desktops, and both architectures, which is true. But AIR isn’t as resource efficient as Qt, nor is it a free open source toolkit, but run entirely by Adobe. But both are good tools. I’m for supporting as many tools as possible, since devs have preferences, and prefer to not have to relearn how to code for a platform. Supporting common tools that all devs know is Nokia’s forte.

____________________

I agree with most of the above – QT can become the tool that overcomes Nokia device fragmentation and offers developers a great working environment to create their apps in. My problem and fears are with Nokia’s execution. I’ve been hearing about how QT will change things for Nokia for 2 years now. QT has been shipping on  Nokia Symbian^1 and Maemo devices for more then half a year. And I’m still waiting for any big interest or enthusiasm towards QT from any significant number of developers. And all I see for now is skepticism and enthusiastic embrace of other platforms.

Also, those comparisons to unified development environments/runtimes on desktop are not at all encouraging.  The may have obviously been “proven years ahead of today’s foray into mobile“… But, despite the unified “write once run anywhere” application development nirvana promised by Qt, Flash, Adobe AIR, Java- for years –  for some mysterious reasons, most of available software applications today are still written natively. Flexibility of development and hardware limitations come to mind as one of possible reasons. And they are much worse in mobile today.

The history of cross platform development tools on desktop tells us, that the hope that QT will become the development tool of choice on all the competing platforms, will remain an elusive dream for a long time yet. The best we can hope for the foreseeable future, is that Nokia will finally make it work across all of it’s own platform and devices for real. And that that once written, QT app will work across all Nokia devices that have necessary hardware, only with minor tweaks.

Yes, as Symbian Foundation’s Brendan Donegan told me, there  is some evidence that QT is already there and is useful now – try (Symbian^1 apps written in QT) Shazam, Wikitude, Skype, AccuWeather, WordPress, and that’s just to start with… And then, with N8 and other Symbian^3 devices on the way, any developer working on a new Symbian app will not be too wise doing that with the old tools. So more and more developers should start switching to QT real soon now.

Those are  the hopeful signs. Against the years of milling around, empty promises and botched execution. I hope that this time, things are coming together for Nokia, and the company will finally start it’s long awaited turnaround.

Well, we know one way or another within the next 6-12 months, anyway.

Author: Stasys Bielinis

While I like to play with the latest gadgets, I am even more interested in broad technology trends. With mobile now taking over the world - following the latest technology news, looking for insights, sharing and discussing them with passionate audience - it's hard to imagine a better place for me to be. You can find me on Twitter as @UVStaska'

Share This Post On
  • Marcus Christopher McFann

    Staska, thanks for revisiting this for your readers. This is always a great resource, and to do what you've done will help to quell alot of confusion.

    I think I understand the confusion's basis now. I'll explain:

    ” I’ve been hearing about how QT will change things for Nokia for 2 years now. QT has been shipping on Nokia Symbian^1 and Maemo devices for more then half a year.”

    Qt has NOT been shipping in any devices, as it just left beta status. It required the user to install the Qt 4.x beta software, which was always changing. If a dev wanted to make a Qt app, he had to include the necessary Qt libraries in the installation package, which would be bad on data plans, and take lots of server space. And unless users installed the libraries themselves, their device wasn't compatible, and only geeks were self installing the Qt libraries.

    The last 2 years, this has been how things worked, and only a few commercial studios put out Qt apps, with included libraries. Now, the N8 will be the first device with Qt preinstalled, and the final version, not the beta. So will all subsequent Symbian and MeeGo devices. So now there will be a targetable, mass market Qt ecosystem. This is the revolution of S^3, along with its faster graphics architecture. Developers have been waiting on this very thing: an officially supported, preinstalled Qt compatible device. The N8 and future Nokia/Symbian/MeeGo devices will bring that.

    “And I’m still waiting for any big interest or enthusiasm towards QT from any significant number of developers. And all I see for now is skepticism and enthusiastic embrace of other platforms.”

    Qt development is already big, just not in the mobile space quite yet. But the way it is designed, Qt apps will have a separate UI layer, so all of the Qt apps on our PCs willl work, and just need a reworked UI for mobiles. This means powerful Qt apps form the desktop world, such as VLC Media Player, Google Earth, Amarok, Skype, KOffice Suite, Adobe Photoshop Album, Avogadro, Walt Disney Animation Studios, and other high end software programs can be ported to mobile and other interface paradigms by merely adjusting the UI for the target device while retaining the rest of the underlying code. This is a time saver that will see the Qt mobile app catalogs rise exponentially now that officially supported Qt devices are now shipping with libraries installed at the factory.

    “But, despite the unified “write once run anywhere” application development nirvana promised by Qt, Flash, Adobe AIR, Java- for years – for some mysterious reasons, most of available software applications today are still written natively. Flexibility of development and hardware limitations come to mind as one of possible reasons. And they are much worse in mobile today”

    Sure about that, Staska? Tell me this. Which is your favorite media player on your desktop? Maybe VLC Media Player, or maybe Amarok? Both are made with Qt. What about your favorite P2P file sharing client? Limewire, or is it Frostwire? Both made using Java. You like Twitter? I'm sure you've heard of the popular Tweetdeck, a famous Adobe Air application. Unless you are in the Microsoft world, you probably use KOffice. KOffice is a Qt application.

    “The history of cross platform development tools on desktop tells us, that the hope that QT will become the development tool of choice on all the competing platforms, will remain an elusive dream for a long time yet. The best we can hope for the foreseeable future, is that Nokia will finally make it work across all of it’s own platform and devices for real. And that that once written, QT app will work across all Nokia devices that have necessary hardware, only with minor tweaks.”

    I think a majority of software development today, especially on the desktop, is done using some sort of cross platform tools. It is also big in mobile, with xcode allowing Apple and Android to share in development to an extent. This is the future, and how apps will be made sooner than later. No developer can support every OS. Why use proprietary toolkits when you can address the entire globe using just Qt, AIR, Flash, Silverlight, and Xcode? If you just use Qt, you can address 45% of the mobile ecosystem, and 100% of the desktops. AIR is about 15% of the mobile world, 100% of the desktop. Flash is about 50% of the mobile world, and 100% desktkop. Silverlight is about 40% of the mobiles and 100% of the desktop. Xcode is about 30% mobiles, 0% desktop.

    You can see that cross platform toolkits offer an intriguing opportunity, and any good commercial developer would be a fool to ignore them, especially Qt, AIR, and maybe Silverlight.

    Its daunting to imagine, but not for developers. You're gonna have to trust me on this one, and just watch and see. This development is why most are down on Apple and iOS, as they are totally against cross platform technology. Too bad for them, as their painting themselves into a niche, just as they always do.

    Nice talking, as usual. If you're not already on Facebook, sign up and add me. http://www.facebook.com/profile.php?id=1358767397

    Chris aka christexaport
    Symbian-Freak.com

  • Dkarageo

    Qt is fine and may work out for Nokia to enable them to unify their Symbian and Meego platform.

    Except you guys are also looking at this from an engineering standpoint, and forgetting about the consumer (not to mention the ultra-critical user experience. The first two minutes, when a customer picks up a device and plays with it is insanely important in how it sells. Lags, a kludgy ui, and 'memory out' errors are a no-no).

    Apple is currently unrivaled in producing, and then brilliantly marketing, dare I say it, 'sexy' devices that consumers fall over themselves to buy and show off to anyone and everyone.

    The problem at Nokia is that, aside from the beautiful E71, everything else coming out of Espoo looks like it fell out of the fugly tree and hit every branch on the way down. Including the N8. If anything, it resembles an iPhone enfolded in a bulky metal case.

  • http://www.staska.net Staska

    Yep. I really hope it's a revolution coming. With S^3. You may be right, Still, do read my second reply to your second post in comments, and that's why I'm still doubtful.

    That discussion beyond promise of QT, and Nokia OVI and stuff… Well, just read it

  • Marcus Christopher McFann

    Dkarageo,

    Qt is proven technology. It was popular and well recieved long before Nokia bought it. It is so powerful, it is the foundation of KDE, a popular graphics system used on some Linux distros. If it can do that, and is the engine of many gaming titles on various platforms, only a non-developer would doubt.

    I should reiterate, I'm NOT a developer NOR an engineer. I'm a user advocate and technology evangelist, and I support technologies that I believe in, and am paid by no one for doing it. My specialty is power usership and end user technology and accessiblility. Basically, I want our phones and devices to have the most capabilities possible, with as few sacrifices as possible.

    As for user experience, I'm totally all over that. Qt plays the biggest part there, as it is a low to nearly no overhead technology designed for graphics. So the Qt UI toolkit used for S^4 and MeeGo will allow you to design any UI as you wish. If Qt were ported to iPhone and Android today, they could use the toolkit to recreate every single part of their UI's, only with more efficiency than their current solutions. Qt is originally a graphics tool, and this is its forte. Its ease of use means there could be user installable optional UIs, so users can choose that which is best for them. I suggest you guys look at the Qt Mobility example apps on Maemo, or the Harmattan demos. This is so fluid and easily made, and it was using BETA tools, not the final stuff!!

    You can blindly go into Android and iOS because of their percieved graphics/UI prowess, but realize they have to make severe sacrifices to make it work fluidly. Both have no full API access for multitasking applications, because they simply CAN'T as currently constructed. The UIs take too much resources to work when combined with their one app and maybe the background audio stream, presence connection, and download pipe.

    I should point out that Symbian^3 is just as fast now, still not using the Qt UI, and is lightning quick with FULL API access. Imagine the benefit of the low overhead Qt UI coming in winter in Symbian^4. See the MeeGo Tablet UI videos for a clue of how good Qt works with UIs. Same underpinnings as MeeGo Handheld, but a totally different UI, using the same toolkit to make it, and all the apps are still compatible. See a trend here? Where's your fragmentation?

    I don't expect consumers to pay attention to me and others first. They will likely buy the cutest, fastest looking, most popular devices available on their carrier shelves, especially neophyte US consumers that just caught the smartphone craze. But you can't keep trying to put the fastest processor in a device and removing features. Pretty soon, you'll want more, and say “Chris tried to tell me.”

    The first time I used an iPhone, it was cool, but I had an N95 in my pocket, and expected alot more than just a pretty thin case and large display. And its easy to not run out of memory if you dedicate it to one app and few tasks. But this is about computing, and as a computer, you'll expect more sooner or later. The iOS and Android have far to go to being suitable for use in PC like devices. Not so with Qt enabled devices.

    Apple has of recent been doing well in selling phones to the rich. But they only sell to 15% of the smartphone market, and less than 2% of the phone market. That is a niche that will be swallowed by the mass market. That is what Apple is good at. I grew up using Apple computers, from the Lisa to the IIe to the OSX. And they always have great commercials. But they still can't hold Window's mantle, because Microsoft goes for efficiency, cross platform technologies, and the mass market, and soon, developers consider it useless to develop for without some sort of cross platform toolkits. That is why Apple finally started letting Adobe, Qt, and other tech onboard, just to stay competitive. How'd that work for them? 80%+ >>> 10%+?? Looks like developers and users prefer Microsoft and its less than cute UI and ecosystem. Go figure.

    Apple is fine to focus on big money customers only. It allows them to keep inflated profit margins, which is good for blowing up stock price. But that is no way to become a dominant ecosystem, quite the opposite. Which is why Apple's market share has stagnated around 15%. They are running out of customers that can afford them, and facing competition from Android, the N8, and soon MeeGo and S^4. When Apple's mobile division stops growing, the investors will leave, and they'll be just like with the Mac computers. Remember, they almost folded, and were rescued by none other than Bill Gates first, then a return of Jobs.

    Nokia has a far better track record of selling high end, sexy smartphones. They invented the space, and have never not led the smartphone market. EVER. Apple is a factor on the high end, but Nokia stopped making high end hardware in 2008. Check the specs for yourself. They have been marketing low end devices with high end feature sets (but low end UI looks) as high end, and still maintained their lead for 3 full years. Wait until they start actually making devices with fast processors, oodles of RAM, and great GPUs, and you'll be easily reminded.

    If the N8 is ugly to you, fine. There's always the iPhone. But if the N8 and C7's combined sales reach iPhone levels, they've already won, and Apple will have problems. Looks isn't the best metric to judge a performance device. The Ford Probe looked sexier than the BMW M3 of its day, but what fool thought it would be first on raceday?

  • Marcus Christopher McFann

    I think I replied to it. I still think you have much to learn. This is a developer race, not a phone sales race. And there are already plenty more Qt developers than iDevs.

    Everyone talks most apps. That isn't it. Its most HIGH QUALITY apps. iOS is designed so that anyone can make a pretty, decent app that works. Most of those developers aren't skilled enough to make commercial grade software. But the best developers in the world aren't intimidated by C++, Clutter, GTK+, etc. Qt makes it so it is easy, and connects and combines with these code bases. So not only will Qt apps be simpler, they will all be more complex and capable, and ultimately, commercial grade.

    iOS development is finger painting compared to Qt/native developement. iOS stifles innovation. Qt nurtures it. You guys need to talk to some developers, most of who are NOT making much money on iOS app sales, and wanted more pro quality tools for better commercial results. Big commercial developer crews don't have time to play with single OS toolkits. They want OS agnostic tools with more power and ease of use. Qt provides it, others don't. Proprietary always loses. Why do you think Android is open source??

  • Marcus Christopher McFann

    And you keep saying Qt has been around forever, but you are wrong! Staska, Qt just got out of beta WEEKS ago!! What you've been hearing about the past few years from Qt has been betas and preview software. Maybe that was why you are confused. Perhaps you should follow the Qt blog and get your information from the horses' mouths, or talk to people that develop software for a living. They've been waiting for this for years. Qt is that popular. Skype, VLC, Google Earth, etc.? Why do you think the big boys chose Qt? Its everything they say it is.

    Try for yourself. As a writer, you have to have experience, or you become a professional speculator. Why speculate, when the evidence is long ago proven? You have to know your subject matter, or you'll find yourself looking uninformed. These posts will hopefully be forgotten in a year, but if they don't, you'll have plenty of retractions for neophyte misconceptions that show your lack of knowledge in this field. I'm was just an end user, and learned all of this by associating with my subject matter. It takes lots of investigation, but the information is there if you wish to know and not speculate.

    I read unwired view for expert opinion. I still expect it, so go out and find the truth, Staska. It is easy to prove and see. No need speculating and doubting what is fact and long ago proven. Qt Mobility 1.0 is here, and the industry will forever be different now. Remember a normal mobile user and unpaid blogger told you so.

  • Marcus Christopher McFann

    I think a big part is what you guys see as the future for tomorrow, and how far off we are.

    I think today's smartphone/converged device OSes are the defacto computing platforms of tomorrow. None of these broken down baby computers running iOS and Android will fit that bill. Symbian and MeeGo do.

    When NASA wants to make a computer for its space vehicles, they WON'T be choosing iOS for mission critical systems. They'll likely use Windows, Linux, or Unix for obvious reasons, and reject iOS and Android for those same reasons. Now Symbian could be a factor if they want to use a low power system, as it has MOST of the features of a full fledged enterprise grade system OS, save for the relatively limited runtime/framework support and lack of x86 architecture support. MeeGo is relatively equal to Windows and OSX in architecture, and may well become THE platform of favor for ALL embedded electronics because of its architecture. There are no limitations, and pretty much any program for a desktop system could be made for it.

    This isn't a phone sales race, its a platform/developer support/computer sales race. And Qt will make sure whatever devices we have available, they will likely support high end software programs and functionality, whether its your web connected TV, your car entertainment system, smartphone, netbook/desktop, or even your home appliances.

    Developers are like musicians, seeking the venue that gets their music heard by the widest audience. The Qt ecosystem provides that, and its been proven for the last few years in testing, and is now commercially available on devices starting in August. This means that in August, Qt begins its assault, not before.

    And as for Android and iOS, they will become the more expensive ecosystems to code for. Developers won't want to make an Android app, an iOS app, and a web app, then a desktop app for OSX, Windows and Linux. Not when they can code once and merely devise UIs for the specific form factors, and run them on any Qt enabled device.

    The developer game is about reach. At the time, the iOS ecosystem was the only one with a guarantee of web connectivity, and it offered devs a chance at making rich web connected apps. Now that Android is the same way, it, too, will prosper. Symbian hasn't always been llike that in all markets, but is coming along, especially with more and more US carrier support. MeeGo is the US's real treat, and it will blow away all competitors on architecture alone. The fact that the Qt ecosystem bleeds into Symbian and all of the deskop OSes makes it a no brainer.

    ASK DEVS, and not just mobile devs. Pretty soon, proprietary mobile SDKs will be obsolete

  • Marcus Christopher McFann

    Qt TIMELINE

    * 2008 Jan – Nokia buys Trolltech (makers of Qt)
    * 2008 Apr – Qt support for Maemo is announced
    * 2008 Oct – First Android handset released
    * 2008 Dec – Qt4.5 becomes available as a community edition for Maemo 4.1
    * 2009 May – Symbian^4 deprecates AVKON and carbide C++ in favor of Qt4.6 and the Nokia Qt SDK
    * 2009 Jul – Qt4.6 is announced as the base application framework of Maemo 6 (Harmattan)
    * 2009 Oct – Official Qt support (4.6 for 2010Q1) announced for Maemo 5 on the Maemo Summit, and beta made available
    * 2009 Nov – The N900 ships with the not-overly advertised community Qt4.5 version, first post-ARM11 Android 1.6 is released
    * 2010 Jan – Stable Python Qt bindings are released
    * 2010 Feb – Nokia and Intel announce MeeGo, Qt4.6.2 released with Smart Installer beta allowing install of Qt apps to existing S60 devices
    * 2010 Apr – The Nokia N8 is announced, the first Symbian^3 handset that will ship with Qt4.6 preloaded, bridging old AVKON based S60 and the future Qt based Symbian^4
    * 2010 May – After much delay, the PR1.2 firmware for the Nokia N900 is released with Qt4.6.2
    * 2010 Jun – The Nokia Qt SDK is released and Ovi store starts accepting Qt apps

    As you can see, Qt has only officially been supported since May, and only on the N900, so the target is still small. Developers are waiting on the C7 and N8 before focusing on Qt. Once the target is there, and the Ovi Store starts approving Qt apps, you'll see momentum begin to build.

  • http://twitter.com/rurikbradbury Rurik Bradbury

    I hope that Nokia gets back into the game — I love their hardware (sometimes) but the user experience sucks. That's why Apple (and the iOS knockoff, Android) is blowing away Nokia at the high end.

    It's about more than QT though. It's about creating a seamless end to end process for consumers to discover, buy and use apps. Today, Nokia has split loyalties between carriers and consumers (where Apple cares ONLY about the consumer) and its app store is an utter mess.

    If it sorts out the app store and gets QT right, it has a fighting chance though. Best case: a deal with Google to bring QT into Android and let devs develop once for both Nokia/Android, leaving Apple out in the cold.

    I'm not sure Google feels like it needs Nokia though. It is nearing 100,000 apps, has huge dev momentum (Nokia has none today) and it has the might of HTC/Motorola/Samsung/everyone else lining up behind its platform. In fact both Apple and Nokia might feel that 'Windows effect' from the 80s/90s, as their vertical stacks are wiped out by the might of a more open one.