View Single Post
Benson's Avatar
Posts: 4,930 | Thanked: 2,272 times | Joined on Oct 2007
#4
No, it won't. It's a lot easier to write something meant to be open than to open something meant to be closed.

When you're coding something, open or closed, it's enough to make sure you're licensed to use each piece of code under the intended project license before you add it. If for whatever reason you can't get a compatible license (whether the code is proprietary and you can't get a license to release the source, or if it's copyleft so you can't release a closed binary), then you substitute a different component or write something yourself instead -- making any changes to adjacent components needed. Once you're sure a piece is licensed properly, you can more-or-less forget about its provenance (though it's probably better, if possible, to track provenance anyway).

Now when you go to change the license (whether to open something that's already closed (as here), to close something that's open, or simply to relicense, like GPLv2 vs. GPLv3), you have to determine the provenance of every element of the source, and for each source of code, ensure that you have the necessary rights to release it under the new license, and reimplement it if you don't.
  • Now if it were all written from scratch by Nokia coders, you're clear -- Nokia owns the copyright, so Nokia has _all_ rights, and can license it as they please.
  • But the instant they incorporate foreign code, it gets complicated.
    • First, the original licensing terms may permit relicensing accordingly -- if so, you're lucky, and you "only" spent the time to track down provenance and examine the license.
    • If not, the original source may be willing to relicense it. Add in your time requesting it (and for years-old code, it may not even be clear who to contact about it), then a long delay while they approve it.
      • Even if they want to relicense it, they're going to have to run it by legal (who one hopes aren't misinformedly spooked by open-source).
      • If they don't care, it's much easier/cheaper for them to just say no up-front.
      • And, of course, they may consider it important IP and either demand money or outright refuse.
  • Then, if you can't relicense it, or if it's too expensive to license, you're still stuck (with all that time sunk) with replacing it, either with in-house or external code. But your architecture and most of your interfaces to adjoining components are now set in stone; in theory, this shouldn't matter, but in practice, it's likely to make the rewrite even harder, even if you don't find new bugs at this stage. And you will -- nothing like a reimplementation to discover old bugs, quirks, and idiosyncracies that really should be fixed.

And what does Nokia get, in return for this huge effort and expense, to open old closed-source components?

A measure of community goodwill, from the community surrounding the old device. So opening Diablo would greatly boost Nokia's trust with all the people who won't buy the N900 because they don't want a phone/are married to an incompatible carrier/are presbyopic and need a larger screen, as well as with the old guard who did upgrade. Much less (although still some) effect for people who got in at step 4.

I suppose they may feel some moral relief about no longer providing bugfixes, but corporations don't run on morals.

OTOH, if they put the same (or perhaps even less) effort into ensuring the next iteration is open, they also pick up community goodwill, but for the community centered around the product they're selling (which will likely have a bigger impact on sales); they potentially get community patches, although it's not obvious how much they actually value these; and they ease the handover of the next version (presumably, with bigger sales, therefore bigger impact on all decisions) to community maintenance. All in all, making Meego more open seems to have much better ROI.

And I'm cautiously optimistic that that's exactly the path they're following -- Maemo 5 is certainly more open than the previous versions, and Meego is definitely shaping up to be more open yet. Given the relative difficulty of running old OSes on new hardware (if only because nobody cares to make it happen), I'd rather have a modern computer with a fully-open platform layer 2 years from now, than have a fully-open (even including applications) Maemo 5 at the same time, and be stuck running it on my N900. (Besides, with all this overclocking, who knows if it'll still run in two years? :S)
 

The Following 6 Users Say Thank You to Benson For This Useful Post: