Sunday, April 7, 2013

War is Peace, Diversity is Fragmentation, Versatile is Difficult

by Dr. Roy Schestowitz

Companies that are crazy about control wish to own everything from software down to hardware. Apple could not tolerate BSD code without closing it and Microsoft just couldn't stand the idea of companies creating their own Windows shells -- a subject of antitrust litigation almost two decades ago.

Linux, as a kernel with a lot of development activity, has become the Swiss army knife for many who wish to rapidly create operating systems. Android is probably the most ubiquitous among those, depending on the assessed criteria. GNU is the Swiss army knife further up in the software stack and Apache is extremely popular in page-serving devices. All of those are Free/Open Source software (FOSS).

The flexibility of this software is hard to compete with. Corporations and/or large communities surround those projects. Due to the old tricks of newspeak, propaganda, spin and FUD we have become accustomed to hearing words like 'fragmentation' wherever FOSS goes. Recently, a lot of this has been said about Android. The other day a notable Linux advocate, SJVN, addressed the Android "fragmentation" FUD by writing a tongue-in-cheek report about Windows:

The transition from XP to Vista, to Windows 7 and most recently, both iterations of the newest version of Windows, 8 and RT, as well as all patch iterations and dot versions in between, has left a scattered landscape of PCs in various states of OS upgrade version malaise. (Cough) This has created problems for Windows developers when coding applications, and when they test against different versions of the OS and different target devices. (Oh my!) The introduction of multiple versions of PCs, as well as Windows virtual machines and emulators running in Mac OS X and Linux, has further complicated this situation by creating additional "forks" of Windows, which have their own unique application issues that developers need to address. (The horror! The horror!)

This puts in perspective one aspect of the FUD's shortcomings. Because Windows also supports nearly as much hardware as Linux does, the 'fragmentation' may relate to hardware too. Let's face it. A power which is diversity -- something that Apple actively discourages -- should not be portrayed as a weakness. Linux and GNU are very compatible with UNIX owing to POSIX. GTK applications are quite compatible with applications that use Qt, and vice versa (narrowed down to two options just for the sake of concision). This took a while to achieve, but we are there now. Diversity is secured in the compatibility/standards sense, owing in part to compartmentalisation. People who chastise GNU/Linux over 'fragmentation' are either dishonest or have not kept up with GNU/Linux for nearly a decade. To say that GNU/Linux is 'hard' because it facilitates advanced features is also to overlook the progress made in the past half a decade in KDE and GNOME. But that's a subject for another day...

- Dr. Roy Schestowitz
Enhanced by Zemanta


  1. "Apple could not tolerate BSD code without closing it"

    Apple did not close BSD code. They used BSD code according to the license.

    You speak well of Apache. Apple is the company that has, in all probability, put the Apache code in the hands of more consumers than any other company.

    I am not saying all things Apple are good (far from it!), but please let us keep the facts straight here.

    Also: you speak of FUD in terms of "fragmentation". It is not FUD to note that fragmentation causes problems (it also offers benefits).

    Elsewhere you speak of GTK and Qt applications being compatible - and if you consider just the lower level of compatibility this is true, but not if you are looking at the over use experience, something which both the KDE and Gnome teams both speak of as being important (and many other open source groups, etc.).

    As I wrote in my recent article, diversity and choice are good things - in that I think we strongly agree. But for you to call those of us who recognize not just the good but also the bad of the fragmentation on Android and desktop Linux as being dishonest is disingenuous of you. You might be blind to the down sides but that does not mean others have to be as well.

  2. So they *did not* close the BSD code, eh?

    I wonder what the rest of your comment's like.

  3. Correct. You can still get the same BSD licensed code Apple has used. It is open source. Apple could not "close" it if they wanted to... not without going against the license anyway (and even then how would they presumably "get back" the code that is already in the hands of so many?)

    The BSD license does allow for Apple to use the code more freely than the GPL does. And they have, as far as I know, used the BSD license correctly. If you have any contrary information I would like to see it - and if Apple really has somehow stopped others from using the same BSD licensed code they used they should be prosecuted for going against the license.

    Apple did, from what I recall, briefly go against the GPL in the early days of WebKit... something about not releasing the code for (I think) four months after they were supposed to do so based on the license terms. That is just based on memory, though - I am sure you or I or others can look it up if they want the details.

  4. I do not know enough about Apple's code base to disagree with you however, the BSD licence DOES allow entities to hide their version of the code. The ONLY requirement asserted by the BSD licence is that entities MUST keep the BSD accreditations.

    For your future reference "open" != public in the case of BSD licensed code. Sure, you can still see the original BSD code, but that is not the code with Apple's alterations. Those bits are kept hidden.

    Put in another way, the BSD licence does not compel entities to make alterations to the code public. Whereas GPL code compels alterations to be given back and made public.

    This is why it is so important to make the distinction between "FREE" as in GPLd code and "Open" as in BSDd code.

  5. Apple may very well keep private their *own* code they base off the open (and free) BSD code. This is not the same, though, as closing the BSD code - which is what Roy alleged. The code is still open and free for anyone to use. Apple cannot legally stop that (and even if they wanted to the technical hurdles in doing so would be immense).

    As far as the BSD License allowing users of the code greater freedom to do with it as they please, I do not think that is in dispute. I suspect most reader here know the GPL has more restrictions on it. As for my view: I think the GPL is a great license (or, really, set of licenses) and that those who wish to hold others to such restrictions have every right to do so... I am not trying to push the greater freedom of the BSD license as being a sign it is a better license than the GPL.

    I am for choice and freedom and think developers should be able to decide how to protect their code: with a BSD style license, a GPL style one, or others - both more and less restrictive. Choice is good.

  6. I think we agree;)

    Though just one thing. It is important to be mindful of the control factor.

    If Apple or any other entity are the driving force behind the development of an important open software project, and they hide their alterations (as they can with BSDd code) then forking the project, without access to those changes, puts the fork at a major disadvantage. Therefore, its important to stop any single corporation from driving development of any important Free or open source software project assuming they keep their alterations hidden.

    I love the freedom a BSD licence offers, but i'm mindful that people must actively know how corporations might move to control a code base.

  7. I have no problem with Apple or MS or Google or any other company keeping their private alterations to their own code private - as long as they are doing so within the license of any code they use from others. If a developer wants to prevent such then they should use the a GPL version or something similar.

    With that said, I also appreciate it when people and companies go above and beyond what is required of them and give back to the community more than the license states they have to. I respect that and can understand pressuring Apple and others to do so. If enough people push them they may very well do so. In other words, i can certainly understand Roy's feelings of wanting Apple to share more than they are required to. What I do not agree with is his claim that Apple closed the BSD code. It might come across as a nit but I think it is an important distinction to note that he is incorrect in this - but to understand the difference you have to have at least a moderately good understanding of what the GPL and BSD licenses are, and most people do not. I think Roy's comments were poorly worded. Maybe he will jump in and clarify what he meant.