FOSS: How much freedom do developers grant users? Part 1

In my article titled «Proprietary software and user enslavement«, I explained some of the reasons why the use of  proprietary (closed source) software enslaves the users. Richard Matthew Stallman started the GNU Project and the Free Software Foundation (FSF for short) as an opposing force and an alternative to the monopolistic tactics of the major software houses; on a similar wavelength is the course of action of the (originating from the FSF) Open Source Initiative (OSI for short) One would expect that, by definition, FOSS would, despite the ideological differences between the FSF and the OSI  (here is Richard Stallman’s position on these differences), ensure the users’ freedom. Right?

The answer is not that simple. Even in the realm of FOSS, there are products that have such a dominating position in the «ecosystem» that it could easily be considered a monopoly of some sort – especially if these projects don’t have communities of collaborating users and developers, but companies and foundations instead. Depending on the mentality of the management of the «mother» company or the foundation, there is a serious risk that the project leaders might turn it to a direction entirely opposite from what the users would like. Even worse, I have observed the absolutely unacceptable phenomenon in which a ring of courtiers and self-appointed praetorians forms around the project leaders and the main developers, attacking fiercely and with vulgar characterizations any user «insolent» enough to disagree with the primadonnaproject leader and his cliquedirect partners.

I’ll mention two recent examples:

  2. GNOME

Today, I’ll examine the first case – In the second part, we’ll see what happened with the GNOME desktop. OpenOffice/OOo started out as the StarOffice suite, a product of the German company StarDivision. In 1998, StarDivision started distributing it free of charge (thus offering many Linux users an alternative to the costly WordPerfect) and in 1999 the company was acquired by Sun Microsystems, which wanted to stop paying license fees to Microsoft for Microsoft Office – besides, Sun wanted to complete with Microsoft in the office suite market. In 2000, Sun Microsystems open sourced  StarOffice, renaming it as in the process. The aim was the creation of a strong community for the further development of the suite. After Sun was acquired by Oracle in 2010,  development work on OpenOffice all but ceased. Any improvements introduced to the code of the (now heavy and slow) suite by the developers simply did not get incorporated in later versoins – the talking (but completely empty) heads in charge at Oracle turned these lines of code into comments, making them have no effect on the functionality of the suite. Why? Because they simply didn’t give a damn. The people at Oracle never believed in FOSS, they don’t believe in it and they never will. As for their «Unbreakable Linux», it’s a bad copy of Red Hat Enterprise Linux (by the way, I’m still waiting to receive that «free CD» of «Unbreakable Linux» – it’s been five years now), it’s not so unbreakable, if I’m to believe professional sysadmins that use it at work.

As a result, The Document Foundation (backed by Novell, Red Hat, Canonical, Google and other companies) was founded, which forked OpenOffice – and there was LibreOffice, which is now under rapid, active development, and with the developers actually paying close attention to the opinion of the users, in stark contrast with what was happening in the Oracle days. Oracle started some drama, but eventually had to admit defeat and donated the source to the FOSS orphanage officially known as the Apache Foundation (although a more fitting name would be «the Graveyard Foundation»). At any rate, LibreOffice is doing fine, whereas’s future is uncertain.


What freedoms does (and should) FOSS offer its users? Well, according to the definition of Free Software (BTW, we’re talking about Free as in Free Speech, not Free as in Free Beer), we have four basic freedoms:

  • Freedom 0: The freedom to run the program for any purpose.
  • Freedom 1: The freedom to study how the program works, and change it to make it do what you wish. This usually requires access to the source code.
  • Freedom 2: The freedom to redistribute copies so you can help your neighbor.
  • Freedom 3: The freedom to improve the program, and release your improvements (and modified versions in general) to the public, so that the whole community benefits. This requires Freedom 1 to be exercised and usually requires access to the source code.

Personally, I believe that part of Freedom 1 and Freedom 3 can be satisfied even without the user studying and/or modifying an application’s source code. An application can be partly adapted to the user’s needs without the user needing to study the source code and without any requirement for the user to have any significant programming skills. For instance, if the application has an easy to use, effective and well-documented (i.e. with properly-written instructions) setup, adjustment and customization system, the user will be able to bring the application closer to his needs and requirements. It’s clear to every human being that has a brain (with the obvious exception of the FOSS divas and their hooligan fanboys) that, if we want a user who is not a «power user» or a die-hard programmer to be able to tailor an application to his needs, we are morally and essentially obliged to offer the user appropriate tools for this task, otherwise the promise of «freedom of the user to adapt the application to his needs» becomes void for the vast majority of the users, except maybe for those who have (a) the skills, (b) the desire, (b) the time to study the source code, experiment and risk part of their productivity. It’s obvious that if, in the name of some hare-brained «vision» the project leaders may have. Για παράδειγμα, αν η εφαρμογή έχει ένα εύχρηστο, αποτελεσματικό και με επαρκή τεκμηρίωση (δηλαδή οδηγίες) σύστημα ρύθμισης και παραμετροποίησης, ο χρήστης θα μπορέσει να φέρει την εφαρμογή πιο κοντά στις απαιτήσεις και στις ανάγκες του. Είναι σαφές σε κάθε νουνεχή άνθρωπο (εκτός από τις ντίβες του ΕΛ/ΛΑΚ και τα χουλιγκάνια τους) ότι, αν θέλουμε ένας χρήστης που δεν είναι «power user» ή προγραμματιστής να μπορεί να φέρνει την εκάστοτε εφαρμογή στα μέτρα του, είμαστε ηθικά και ουσιαστικά υποχρεωμένοι να παρέχουμε τέτοια εργαλεία στο χρήστη, αλλιώς η υπόσχεση περί «ελευθερίας προσαρμογής της εφαρμογής στις ανάγκες του χρήστη» καθίσταται κενό γράμμα για τη συντριπτική πλειοψηφία των χρηστών, εκτός ίσως από αυτούς που έχουν (α) τη γνώση, (β) την όρεξη και (γ) το χρόνο να μελετήσουν τον πηγαίο κώδικα, να πειραματιστούν και να ρισκάρουν να χάσουν μέρος της παραγωγικότητάς τους. Είναι προφανές μάλιστα πως, αν, εν ονόματι κάποιου «οράματος» των project leaders, customization capabilities are taken away from the end user, who rarely has any real programming skills and/or time to study the inner workings of the application, 90% of the users are forced to kiss Freedom 1 bye-bye.

Furthermore, Freedoms 1 and 3 are violated in their spirit by «project leaders» who refuse to incorporate the upstream contributions of the community’s developers. Open-sourcing the code so that you can «crowdsource» (i.e. – let’s be blunt here – gain access to cheap or gratis work by volunteers, students, researchers and hobbyists just because you’re too much of a cheapskate to pay professionals who will be working full-time) and then say «I refuse to accept your improvements» because you’re scared they’ll overshadow your own non-existent contribution (which is exactly what happened with Oracle and the ruling idiots at Oracle were sitting on their collective posteriors and the community developers who did all the hard work decided they’d had enough and decided to do something that would, under other circumstances, be risky and potentially undesirable: fork the application; turns out they did the right thing).

Let’s be honest here: Putting a GPLv2 or GPLv3 or LGPL on your software does not guarantee that you are giving real freedom to your users. OK, as far as the letter of the licenses is concerned (i.e. on paper), you may be covered. But to really comply to their spirit, you must always keep the user’s need on your mind and act withcomplete respectnot only towards the users (who, whether you like it or not, even if the project is something you do for fun, are the ones who will judge whether it’s worth using or not), but the other volunteers who will offer their work, skills, time and man-hours to help your application become better. If you don’t understand that and hide behind the lame and idiotic excuse «it’s free, so shut up and stop complaining» (like we said, Free Software means «free as in free speech», not «free as in free beer», as Stallman himself, whom you keep invoking to cover your ass without even knowing what he has said and what he stands for, has said numerous times), then you ain’t worth anything and you should rid the developers’ gene pool of your pathetic presence.

Grumpy Open Source Guy