A Free Software Manifesto For All Of Us

(historical note: I first put this online in October 2006, at digifreedom.net. In the following years, I reorganized my websites several times… until this piece went offline. I put it back at this new URL, with (almost) all the links updated, in December 2013)

In 1984 Richard Stallman, the founder of the Free Software Foundation, published the Gnu Manifesto. More than twenty years later the language of that Manifesto, while still valid in spirit, isn’t sufficient anymore in a world where almost all computers users have no interest at all in programming.

Freedom? Whose Freedom?

On March 15th, 2006, Greg Stein, chairmain of the Apache Software Foundation, said in his keynote:

"SSH (a program for secure connections over the Internet) had been developed by a corporation that changed license from GPL to proprietary. People wanted those changes, and security fixes.... So they took the free [version]... and created OpenSSH".

and also:

"(The computer desktop environment) Gnome was created in response to KDE (Qt). People wanted to extend Qt and build on it so they built their own"

Richard Stallman said in an interview on January 4, 2005:

"A non-free program systematically denies the users the freedom to cooperate"

John Maddog Hall of Linux International said in March 2006 at Linux Expo:

"When you have [software] source code you can make a business decision to invest in a solution or make it fit your business. You're the one in control."

The problem with this way of talking is that, even if the original intent were different, it turns out to be advocating freedoms and choices that in practice only exist and are relevant for a privileged elite, or at least a very restricted group of people, in the real sense of the word. “People” want to “change SSH”?? “People” want to “extend Qt” or “feel in control by having source code”?? Please go in the streets, and ask the first N people you meet, with N as big as you like, if they want that, or if they would feel more in control if you handed to them some source code.

People who don’t program have no use or interest for source code and, almost always, no desire at all to change this situation. By definition. Source code, by itself, does not make any end users, whose activity is not software development, cooperate better. Common file formats would be enough in their case.

Community? Whose Community?

Some Free Software advocates sometimes carry the “giving back to the Community” mantra to ridiculous, if not egoistic, extremes. Which Community, please? We’re all human beings, before being anything else. Fans of this kind create walls, not community, with slogans like “you have the source, you fix it yourself if you don’t like it” or “this is a community, you have to contribute to it with code, documentations, money, whatever, like everybody else”.

This attitude is ridiculous today, for two reasons. It matured in a period when, if you came asking for support, you could only be a professional or a fanatic hobbyist (not that there’s anything wrong with fanatic hobbyists, of course!). Not somebody forced to use computers for other activities, often more urgent than programming, or with a bigger, more direct impact on the interest of the “Community”.

Tuning a web server is still a specialized activity, but using an Office suite doesn’t imply (nor should it!) that you’ll ever have the skills, time or possibility of contributing something back to it in any way directly!! The same applies to any desktop application. For some “experts”, snobbing newbies is easy enough and may be the right thing to do, but this doesn’t take into account the fact that such users will stick with proprietary software, and that who controls the desktop today, eventually will control also the servers.

The second, and most irritating and dangerous problem, is the “Community” bit. What is the community which matters? Note that this would be ridiculous even if it were limited to the traditional, highly skilled FOSS community. Today a FOSS only desktop includes many wildly different tools. If one had to stop in order to contribute to them all, nobody would get anything done.

A new attitude and covenant are needed

All this would not really matter if today the quality of everybody’s life, not just that of programmers, didn’t heavily depend from which software is used around them.

Getting to the level where everybody can appreciate and practise all the Freedoms of Free Software, that is also contribute actively, sounds great, but will take some generations. It is necessary to work out a viable approach today to keep that road open, not to risk it being closed by snobbery. Both programmers and not programmers have to do their own part.

The Free Software Foundation has a vision of software development which could have revolutionary consequences, one that can be expanded to other fields of human activity, one which is necessary for a freer society. Too often, however, these principles are practiced and promoted in the field in a way which only seems to care about, and result in, software and software programmers. This narrow minded vision has almost exhausted its validity and historic function. It could be enough only for people whose life is centered on coding, in a world where only IT professionals use computers.

The rest of us (in the author’s case, that’s about 95% of all the people he personally knows) don’t want to ever see or touch the source code of the S/W they use, and there is nothing wrong with that. Ignoring or ridiculing all this means causing Free Software to become irrelevant sooner or later.

Free as in Freedom computer protocols, file formats and software (in this order), are essential for a truly Free as in Freedom society. Therefore, it is time to practice and advocate Free Software and Free Culture in a way which doesn’t deny the roots, but brings them into society today - a way really centered on all real people, not on software or programmers.

Real people don’t want to live in “a world where software doesn’t suck”. They want to live in a world where they can ignore what software is. And, while often being honest and altruistic, they just don’t care about sharing code, because they could never (be interested or forced to) produce any software worth sharing. Even if today, as discussed in the Family Guide To Digital Freedom, the way software is managed is essential for a better world, software is a mere tool for almost everybody, not an end.

The idea of software freedom of almost every person or corporation means at most, for the most expert, the possibility to switch software at will, without losing time, data and configuration settings, until they find one that they really like. It is being free also to constantly ignore what software the others are using. There is no objective or metaphysical need of Free as in Freedom source code to make this happen: only that there be truly Free as in Freedom standards for file formats and communication protocols, and policies to protect them, or mandating their use at least in some cases.

Screaming ad lib about how freedom to use and redistribute source code is beautiful and improves software quality will not convince non-programmers about it. Most of those who could understand and care for these types of arguments have already heard them by now, and have already decided which side they are on.

There is nothing necessarily evil in this attitude, it could be even more efficient. Modern society wouldn’t progress much if everybody were required to participate, directly or indirectly, to the development of every tool (from software to dresses, forks and trains) we need for life today.

The Hackers part

“Free software without freedom of choice is still no freedom. You should never let “Free Software” ideology take away your freedom of choice” (read on the Fedora users list, May 2006).

Protection and continuos availability of Free standards and software is too important to be blocked by attitude and lack of perspective. Hackers who really want to make the whole world a better place through and for Free Software should commit to practising and advocating the following things even before they do so for Free Software:

  • Live in the real world: practise patience and good manners, continuously remembering what almost all good real people are like. There is no excuse for bad manners, but no longer demand that somebody asking for help directly contributes to the development of your or any other software
  • Remember that the first Freedom to be granted, which in many practical cases includes and guarantees the four traditional ones anyway, is the one to ignore which software others are using, or was used in the past. Documents and configuration data must remain (both technically and legally) fully accessible and immediately usable by every program, no matter what its license is, or how old the files are
  • Require, create and use common Free formats and protocols, like OpenDocument, even when they allow proprietary software to continue to exist.

The End Users Part

The modern world is too dependent on digital technologies to keep ignoring them. Non programmers who want to guarantee their children education and future jobs, if not their own ones, must accept that it is time (without nobody being forced to use any specific software) to learn some basic concepts and make sure that some rules are enforced: