Random musings on mobile software development...
Sorcery-ltd | 14 April, 2008 22:30
I'd like to get some feedback from the developer community on something I've been thinking about lately. This post is going to be quite long so please bear with me...
What I like about open source software
A lot of people have written about the benefits of open source software. If you haven't read it, "The Cathedral and the Bazaar" by Eric Raymond is a real classic (he's also expanded it to a book). Much more open development models with more direct and continuous user engagement can only help make better products. Software systems are becoming more and more complex and I don't think it makes much sense for a number of companies to put enourmous resources into developing completely separate competing versions. However, as I think Microsoft have proved - it isn't good for anyone (except the bank balances of a few!) if one company has a near monopoly on a certain type of system. Also, business models need to evolve for digital products that cost almost nothing to reproduce and distribute. I believe the open source model is taking us in the right direction.
What I don't like about Free Software and the GPL
The problem with Free Software is it's free. I know the intention is that it's free as in speech, not as in beer. The trouble is it almost invariably ends up being free as in beer as well (yes I know there are exceptions). This assigns zero monetary value to something which could well be extremely valuable. The main problem with this is that it strongly discourages investment in open source development. Surely open source development would be even more widespread and successful if it had both freedom and more money?
I imagine giant corporations like Nokia (who have always added a lot of value to their products with their software) embracing open source like a small child embracing an elderly female relative - part of them loves the thought and is thinking of the sweets (or cost savings and benefits) while another part is scared of big sloppy kisses (or losing competitive advantages).
For a corporation like FIC semiconductor, with their OpenMoko platform, I can completely see the motivation for investing in free software. Much more than half of the complexity of a mobile phone is in the software - however, if the software is free then all the value for the product goes to the hardware. FIC aren't too great at software but they're really good at making cheap hardware. Free software is perfect for them. I don't feel that the industry converging on a battle to produce the lowest cost hardware is going to be the best thing for users (or the planet) in the long run, although I expect some will disagree.
In a recent speech at OSiM, Ari Jaaksi has fairly openly said that the open source community will need to compromise if they want Nokia to invest in their development and put their code in it's products. Now I'm something of a pragmatist and think there's room for some compromise. I know some will disagree and that is how it should be. Indeed there are many prominent members of the free software community who I would regard as anarchists - I don't think they'd be offended by that either. I'm also not saying it's a bad thing. We need a bit of anarchy to balance the excesses of capitalism (capitalism for running the world is like exams for testing learning & understanding - we know it's not a good way of doing things we just haven't come up with anything that isn't worse yet!).
A Compromise
Now I've laid out my philosophical position (you can wake up now) I'll make my suggestion for a compromise. Do we need an Open Mobile Software Foundation (OMSF) - an independent non-profit organisation created to own the intellectual property generated by open source mobile developers? If all contributors to an open source project assign their copyright to the OMSF then it can use a multi-licensing strategy to both keep the software open AND generate income to pay for testing/signing expenses & most importantly, further open source development. I expect many great developers aren't just in it for the money but rather their interest in the technology and would love to be paid to develop open source software.
The compromise is that not everyone has to open all their source code but those that don't have to pay for the development of more open code. For middleware I think this would work with the GPL and a commercial license. To make it work for applications too though I'd suggest another compromise on the four freedoms. If you don't allow people to distribute OMSF owned applications in source or binary form FOR PROFIT without paying for a commercial license then they can be sold (cheaply) by the OMSF to generate income.
I see this situation not just benefitting open source developers but also innovative independent software vendors with a closed source model. They would get a stable and maintained set of middleware and applications with very reasonable licensing fees that they can use and customise to add value. Hopefully that reduces the up-front investment required to create a product and lowers the risk - encouraging more investment in mobile application development in general. Another potential beneficiary are the networks who get a larger catalogue of applications (which they could also license and sell if they think they can add value through marketing and easier download/installation) and greater uptake of data services.
The general idea would be that anyone could license the software below the cost of developing it themselves and the cost of licensing would depend on the license required (are they going to contribute changes back to the community?) and also the contribution the licensee makes to the community (businesses that contribute code or sponsorship get cheaper licenses).
It would hope that device vendors and networks would see the potential benefits and even sponsor such an initiative. Then again I may just be dreaming...
I've had some early feedback on this idea to say that a foundation model needs a large community but I think that's a bit of a chicken and egg situation (which did come first?). I'd see the foundation as an enabler for the community.
What do you think? Anyone interested in setting such a thing up? Who'd like to work for such an organisation? I'd love some feedback - I've opened a thread on the discussion boards in case there's a lot of debate.
Thanks for reading!
Mark
Sorcery-ltd | 15/04/2008, 11:47
Very important question - end users. I would hope this sort of organisation gets them more, good, cheap software for their phones. Not "free" (I wish they wouldn't use that term) software but sensibly priced.
In my opinion OpenOffice is not quite as good as Microsoft Office but if I personally had to pay full price for one or the other I know which I'd choose!
What I'm suggesting is just another option and I'd expect it to encourage more closed source development, not less. It's really about sharing the development of the common bits and letting people innovate with the cutting edge stuff (not that some of the new innovative projects can't be open too).
I agree that Fring is great. I use it occasionally to access Skype from my mobile over WiFi. This is just the beginning of Fring though, what's their business model, how are they going to make money? (you can bet they plan to one day!)
I prefer this sort of thing to be open. Skype started out very cheap and then when they'd sucked in enough users they started cranking up the rates for SkypeIn.
Kazaa was good and free but turned out to be full of adware/spyware - not so good after all. That leaves me equally dubious about the eventual fate of Joost.
I would hope the compromises in "freedom" that I'm proposing keep the zealots away. The public license I'm suggesting breaks part of one of the "four freedoms" (to sell your modifications without paying a royalty) and as such wouldn't be approved by the Open Source Initiative. I'm also suggesting we provide commercial licenses to anyone who wants one and they don't have to open their source, just pay for the privelege.
I think we probably have similar views on this - the vast majority of end users won't care about the "Freedom" that the Free Software movement is trying to give them. The "Freedom" is really only there for people who have the ability to understand and modify the code. That's a very small minority.
However, if the core components are open it allows the possibility of open alternatives to the adware/spyware or other more honest advertising supported channels. Or the build a monoply for free and then exploit it type of business model.
At the end of the day, it's just a suggestion though and how well it works in practice would be entirely determined by the people involved.
nigel.brown | 29/04/2008, 14:44
Well it would be a “nice idea” to get everything sorted out and running smoothly. One thing would be to start converging on languages. You could use something like assembler/C++ for the lower levels where bits and bytes matter and something like Java (or even some dodgy 4th generation language) for the presentation…
It is always a “pain” that the same app written on two handsets with the same OS have to be basically re-written. (I am talking UIQ and S60 here. I know you can have a common engine, I do this, but unless you are doing some serious number crunching this doesn’t often gain you a lot. It still seems that most of the time is spent on the UI and your app logic comes second.) If we can’t get two handsets running the same OS to converge, what are the chances for the whole industry?
The world of software could definitely be reordered to make sense to the rest of us. However, I remember the discussions when the Symbian OS was originally split into its different DFRDs. The handset manufacturers didn’t want things to look the same. They didn’t want convergence, they wanted differentiation. They wanted the user to be able to tell a Nokia handset from an Ericsson one. The model seems to have served them well.
“nice idea” and “pain” are in quotes above because the situation you are trying to remedy reminds me of something a wizened old programmer once said:
PFC! == profit from chaos!
So, I will be glad to help you sort out the world, just as soon as the mortgage is paid off.
(Oh, by the way, I really liked your article, and contrary to what I just wrote, I like the order you propose. The internet with its RFCs is the finest example of cooperation/robustness and engineering I have seen and this followed the model you proposed. ish.)
Sorcery-ltd | 29/04/2008, 15:40
Thanks Nigel, it's nice to get more than one comment after writing all of that!
Yes - sorting out languages is something I've been thinking about a bit too. At the moment I'd pretty much discount Java completely as it takes so long to standardise everything in the JCP that it's always behind the times.
If I have to pick from the current crop of available run-time environments I'd go for Flash Lite for the UI, Python for the application logic and C++/assembler for the bits that need performance or access to system APIs that aren't already available to the other run-times.
I can completely understand manufacturers wanting differentiation but getting that with separate UI frameworks seems like complete overkill to me. It should be perfectly possible for one framework to support two completely different appearances. The interface to a window or widget doesn't have to influence what it looks like.
As you point out, it isn't really in many of the player's interests to make a completely common application framework. It makes another step in the direction of comoditising the handsets.
I'll keep working on reducing the chaos but judging by the level of response to this post I think you'll be long retired before it's sorted out, let alone paying off the mortgage.
Mobile and embedded software developer. Loves technology and loves to help people.
RDF Facets:
qfnZtopicQUqfnBlogTopicZgeneralQ
qfnZtypeQUqfnTypeZBlogContentQ
qfnZtypeQUqfnTypeZBlogE45ntryQ
qfnZtypeQUqfnTypeZCommunityContentQ
qfnZtypeQUqfnTypeZWebpageQ
qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX
Nice but
dcrocha | 15/04/2008, 01:07
Nice post, really well thought, will certainly spark some debate. I have a question though where are the end users in this equation?
Is open source software necessarily good for them? How? Why? Is OpenOffice.org really superior to Microsoft Office just because it's open source? Is Linux better than Mac OS X for the same reason?
Apple, Nokia, Microsoft, and plenty of other companies offer high quality software (many times for free or cheap) with whatever model they want to use.
At the end of the day, users only care about having a good product at a good price.
Fring for S60 is great, and free, do users care whether it's open source? No.
Quickoffice is great, costs money, do users care whether it's open source? No. They will pay the just value for good software.
Same with Mac OS X, same with Windows, same with everything else. A product being open source does not mean it's better than a closed source one; the other way around is also false.
All that matters is the end user. If s/he likes a product, free or not, open or closed source, anarchist or capitalist, s/he will buy it, use it and love it.
Therefore my opinion is no, we don't need another foundation to make things even more complicated and attract even more zealots who don't have business models for anything besides selling themselves as FREEDOM GURUS, and charging for people who want to take pics with them :)
Mandatory Disclaimer: Opinions stated here reflect my own personal opinions, not necessarily those of the company I work for.