Random musings on mobile software development...
Sorcery-ltd | 18 July, 2008 14:53
It's been a few weeks since the big announcement and I think I've finally digested it.
My fellow champion Gabor Torok has already collected a lot of interesting analysis but there are a couple of more recent links with inside perspectives that are worth a read. There's an interview with Nokia's chief development officer where the practicalities of opening the source and the motivation for the change are discussed. It's stated that as part of the move to becoming an internet company, Nokia wants to get out of the "plumbing business". I assume that means they want to reduce the engineering effort they put into integrating phone software rather than stop making devices all together one day...? There is also a conversation with a Nokia employee who has a rather less rose-tinted view of the move...
"S60 is costing us a load of money, since we have to essentially carry it on our own shoulders. Pretty much the only community around S60 is the community we pay to be there (a few lone, strong, awesome warriors notwithstanding)."
"I doubt that open sourcing Symbian is going to help in the community building though. There are two kinds of OSS developers: the guys who do things for fun, and the guys who do OSS because they are paid to do so. In order for an open source project to really flourish and take over the world, you need both."
Which is a concern that I share, although I am perhaps a little more optimistic about it. I'm not sure Symbian + S60 really needs to flourish and take over the world - it's already in the top spot, staying there is a slightly different game. I'll come back to that when I discuss licensing issues later. I thought this comment on the future Symbian Foundation code base was amusing (if a little harsh) but it also highlights one of the benefits of going open source, even if the only participants are paid by various network operators and device manufacturers...
"Spreading the manure out in the field where everyone can step on it does not necessarily make it better than keeping it in your closet. It does, however, make new things grow better. Still, I think this is a smart move. Open source improves quality by using the embarrassment factor. People suddenly sharpen up in their coding when they know their work could be inspected potentially by millions of people - even if nobody ever bothers to do so. And that, while it sounds insignificant, does actually go a long way."
One of the most important things in open source is the license...
I've been doing some of my own thinking too and one of the interesting things for me is the choice of license (EPL) for the foundation code. A quick check reveals that the EPL is incompatible with the GPL, that is, combinations of code licensed under the two schemes cannot legally be distributed. You'll be able to develop free software (GPL) applications against a Symbian Foundation SDK (as you can now with closed source Symbian) because there is a "system library" exception clause in the GPL. I think (although I'm no software copyright law specialist) that you'll also be able to develop GPL'd plug-ins for Symbian Frameworks under the same exception, but that is a bit of a grey area and you certainly couldn't distribute them as part of a foundation release. In fact the foundation releases will not be able to take GPL'd code from the rest of the open source world at all (although they can use code licensed under the LGPL). Similarly, GPL'd code bases like the various mobile Linux variants probably won't be able to use anything from the foundation code. This is where I wonder how many of the current open source crowd will convert... I suspect not many. There is always the potential to attract new developers to a newly open platform though, particularly with the prospect of getting your contributions onto several hundred million devices... and the one saving grace is Qt (which will be in an interesting position for licensing itself, currently dual licensed - GPL and proprietary). Qt (with a Symbian port) has the potential to be the first truly cross platform native mobile development environment. Definitely something to take an interest in if you're a mobile developer. Maybe that will entice some of the open source community to start new projects?
Reference platforms?
If we're going to have a level playing field in the Symbian Foundation, rather than all the other manufacturers hanging on to Nokia's coat tails, then we're going to need reference platforms. When S60 is closed source they can choose a device model internally from the upcoming Nokia range and use it as a reference to help determine whether bugs exist in the platform code or only on a specific device or hardware platform. If there is a wider range of manufacturers with an even wider range of hardware designs there there will be a strong need to have a common test platform (or possibly a few) for this purpose. Who will produce them? One obvious choice are the silicon vendors, but there is a lot of software work involved in getting the reference working that they currently don't have the in-house expertise for. Another option would be to choose an recently released product and run the newer version of the foundation code on that - the danger there is always having out of date hardware. I'd be interested to see some plans for this area made public fairly soon because now would be a fairly good time for OEMs wanting to target the first foundation release to start looking at component selection and hardware designs - a first product will probably take at least 18 months because of the learning curve. With experience it should be possible to halve that.
Optimism
When I wrote on this blog about an Open Mobile Software Foundation in April, I was hoping for something like the Symbian Foundation but not expecting anything near this scale. I really think open source is the only sensible way to go for software projects of this scale and complexity. Even if the "community" consists almost entirely of commercial developers rather than enthusiasts hacking in their spare time, I think there are a lot of benefits to be gained from a a truly open platform for both the device manufacturers and developers of add on applications and services. With a common, open code base, as well as standard programming environments provided by the likes of Open C/C++ and implementations of various industry standards, along with a vastly improved UI toolkit in the form of Qt, the fragmentation and lack of documentation that have plagued mobile development from the start may finally be coming to an end. (Disclaimer: I'm a bit of an optimist these days and my views should be interpreted accordingly).
Thanks for reading, your comments are encouraged!
Mark
Sorcery-ltd | 14 July, 2008 13:41
New developer resources that is. These are just some that I've looked at recently but here are my recommendations...
The Good:
This book is designed as a 2 week self-study course for Symbian C++. There's a section to get your development environment set up and working and then the basics of Symbian C++ are all covered in the first 75 pages. After that you can work through, or pick and choose from a number of 'recipes' - which are code examples like you'd get on the wiki here but with more explanation. The recipies cover File Handling, Contacts & Calendar, Networking, Messaging, Graphics & Drawing, 3D Graphics Using OpenGL ES, Multimedia, Telephony, Connectivity and Location-Based Services. Some of the material was contributed by fellow Champion Antony Pranata and other parts by FN's own Jukka Silvennoinen (the amazing symbianyucca on the DiBo). I've been lucky enough to get an advanced copy but you should be able to buy yours very soon! If you like to take a hands-on approach to your learning then this is the book for you.
The Bad:
A new developer booklet from Symbian - although I've linked it above, don't read it! You'll probably end up more confused about platform security than you were before. The diagram on the front cover is a classic example, it's just wrong. The key that goes with it inside (page 8) compounds the original sin of PlatSec - the secure core that is trusted with all capabilities and the capability that allows the creation of executables and granting of other capabilities have the same name (TCB) when they are different things - this diagram makes the difference less clear, not more. The other big problem with this diagram is that it shows the capabilities in a heirarchy, when they are supposed to be orthogonal (i.e. separate, not layered on top of one another). Anyway, enough ranting, I'll just say that spreading mis-information about a security system doesn't make it more secure and Symbian should withdraw this booklet.
The Ugly:
Finally, the most unappealing book to buy on Symbian OS (it's not as bad as the PlatSec booklet above, but that's not for sale) is the recent UIQ 3 book. There are a number of reasons for this, not all related to the quality of the material (some of it's good, some bad - note that despite having their name stamped on it, it's not an offical Symbian Press title). An important one is that most/all of the content is being made available on-line as a wiki. The other, is that, following the recent Symbian Foundation announcement, UIQ is as good as dead. Unfortunate timing for the release of the book. There will still be some UIQ phones around for a while but the volumes are not that high. I'm sorry to say for UIQ device owners - investing in UIQ software development is likely to be a waste of money. Develop for S60 and port to UIQ only if there is a real demand from end users.
There are of course many other great books and booklets on Symbian development - this is just my attempt to help you use your reading time wisely.
Mark
Mobile and embedded software developer. Loves technology and loves to help people.
RDF Facets:
qfnZtypeQUqfnTypeZBlogContentQ
qfnZtypeQUqfnTypeZCommunityContentQ
qfnZtypeQUqfnTypeZWebpageQ
qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX