“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.”
These comments were made a few days ago by Janne Jalkanen of Nokia, speaking in a personal capacity. I think Janne is competely right. My own view is that the only reliable way for the Symbian Foundation software to become the most widely used software platform on the planet, is if that software also becomes the most widely liked software platform on the planet.
The two kinds of OSS developers aren’t completely distinct. Ideally the ones who are paid by their company to work on the software should also have a strong inner desire to do that work – to go the extra mile out of the sheer enjoyment and fascination they get from that software.
I’ve seen that kind of deep enthusiasm for software many times in my life. I first ventured onto online community discussion groups in the early 1990s, using the login name “dw2” on the CIX (Compulink Information eXchange) bulletin boards. The Psion devices of that time – running a 16-bit precursor to Symbian OS – could be programmed using an interpreted language called OPL. Hobbyists made increasingly creative use of the possibilities of that language, creating some highly impressive games, serviceable business applications, alternative personal information management functionality, and lots more besides. I was drawn into providing support and encouragement to this burgeoning community. Plucking an example at random from September 1992 from my archives, here’s a reply I posted to someone who had been pushing the envelope of OPL functionality:
Access to C routines from Opl
I don’t suppose it’ll cause any harm to pre-announce something that Psion will shortly make available to Series3 Opl programmers. Namely a mechanism to access functionality written in a C library, from Opl. What will be possible is as follows:
- Someone provides some C functionality in a so-called DYL library
- Opl programs can hook into this functionality by means of the LibSend operating system service (CALL ($cf)).
Psion will make some suitable DYLs available, and it will be up to third parties to provide other general or specific DYLs. For example, in a hypothetical company writing software for the S3, out of a team of say six programmers, only one would need to understand C. All routine coding could be done in Opl, with only the performance-critical parts being done in C (together with a few parts that are technically out of the reach of pure Opl).
Even before you (BobG) raised this subject, Psion were working on a specific DYL to quicksort the index of a DBF file.
That was 1992, when many enthusiasts were happy to while away their free time programming devices powered by EPOC16. Fast forward again to 2008. Janne goes on to say,
The problem with Symbian is that very, very few people touch it for fun. So I believe that while we can open source it, it is going to be very difficult to get people participate out of their own free will, unless we are prepared to make very serious refactorings to the entire system.
My first instinct is to disagree with Janne here. I’d love to list lots of people I know who do seem to enjoy developing Symbian software, “just for fun”. For example,
- Python on S60 can be a real joy to use – and supports lots of extensions. (In many ways, Python is for Symbian OS in 2008 what OPL was for EPOC16 back in the 1990s.)
- The forthcoming new Symbian graphics architecture (“ScreenPlay“) and IP networking architecture (“FreeWay“) are full of interesting software development opportunities
- The PIPS libraries hide away many of the idiosyncracies of native Symbian C++ development, and can increase the pleasure of porting certain types of applications to Symbian devices.
However, as Mike Rowehl rightly reminds all would-be Symbian blogging enthusiasts – like me! – the first duty of a blogger is to listen, rather than to speak:
I’m not saying that Nokia doesn’t have market share, I’m saying they don’t have developer mindshare and they haven’t captured the attention of new entrants. How often do you hear about people “fooling around with developing for Symbian” just for fun in their free time? I’ve attended developer focused events in a number of different areas and I’ve heard that very infrequently. Compare that to the number of times you run across people fooling around with iPhone or Android SDKs (or even Maemo for that matter). I’m filtering out all the Silicon Valley events cause we’re weird over here. But even of events in others areas – developers area paying way more attention to the other platforms. You can argue that all you want but it won’t go away, I’m just telling you what I hear. Do with it what you want. If you want to deny it though, you’ve already lost really.
And I can’t deny that, as I search through the blogosphere and developer forums, I find the number of postings that are negative about the the developer experience of Symbian and S60 kits significantly exceeds those that express heart-felt enjoyment with the experience. As much as I can find reasons to discount individual postings, I can’t discount the overall weight of comments by such a diverse group of writers.
So all I can say is the following:
- I see lots of API improvement projects inside the Symbian labs – such as the experimental forthcoming ZString class alternative to text descriptors, and the proposed RAll utility classes for simplified resource management – which should be warmly received by a wide audience
- I believe Symbian’s developer tools and documentation have improved significantly over the last few years, and are continuing to make big leaps forward (but the impressions some developers hold towards these topics is unduly negatively coloured by their past bad experiences with older tools or documentation)
- A more transparent approach to planning and experimentation inside Symbian’s development halls – as befits a switch to open source development – will generate more good ideas (and even some good will…)
- Experimentation and quick starts on Symbian development projects will become easier.
(I also believe, by the way, that developers’ enthusiasm for their experience on other platforms will decline, unless these other platforms learn to cope with some hard disciplines like binary compatibility and SDK quality control, as their market success grows. For related comments, see “The emperor’s new handset“.)
I close by making a commitment: improved developer experience will be central to the goals of the Symbian Foundation. If the number of people who develop for Symbian “just for fun” doesn’t increase substantially, the Foundation will have failed in its objectives.