Download the authoritative guide: Cloud Computing 2018: Using the Cloud to Transform Your Business
As regular as a scheduled crontab job, the articles keep appearing: Armed only with common sense, the writer is going to set the free software community straight on how it needs to improve.
Typically, the articles are a mixture of demands for hardware support or new software and rejections of the way that the Linux community operates. Essentially the articles come down to a suggestion that free software needs to lose its interest in freedom and focus on function -- in other words, to eliminate the entire reason for free software in the first place.
Whether the writers are newcomers with a keep grasp of the obvious or more experienced users with particular grievances, the tone of these articles always seem to resemble a manifesto's. They demand that free software add support immediately for certain types of hardware, such as smart phones or wireless cards. They insist that the community create -- apparently in a process resembling immaculate conception -- software such as an exact PhotoShop or MS Exchange. They call on the community to make things just work, to become less geeky and less political, and to develop a more relaxed attitude about using proprietary software
Usually, the articles use the imperative tense a lot. Just who is supposed to implement the demands is left vague, and in general the articles show that the writers are only slightly more clueful than the regular crop of CEOs who discover free software and conclude that it is ripe for exploitation.
Misapplications and Ignorance
Not that these writers are wrong about free software's weak points -- although they are just as likely as not to refer to problems that were solved several years ago, or are being solved as they write.
However, where these articles go most seriously wrong is in their lack of understanding of how free software operates. For example, although free software is full of clever bits of reverse engineering such as Samba, and ingenious hacks like ndiswrapper, many of these efforts can only go so far. Much of the knowledge needed to provide support for specific hardware or software functionality is proprietary. And without the specs, the free software efforts are inescapably a release or two behind.
When a vendor actually releases free software drivers, as Broadcom did with its wireless cards a couple of months ago, nobody welcomes the news more those who have been trying to work around the problem. To imply otherwise is an insult to the existing efforts to do exactly what the articles demand.
The same is true for software compatibility. Does anyone really think there would any serious resistance in the FOSS community if enough code and standards were publicly available to guarantee continuous compatibility with MS Exchange? Most of the time, it is not free software that needs to be lobbied for support, but the owners of such proprietary applications.
Similarly, the articles frequently reveal that the writer has not spent enough time with the software. Show me a call for a Linux release of PhotoShop or MS Word (which, again, is the responsibility of the vendor to produce, not of the free software community), and I'll show you someone who has never bothered to learn The GIMP or OpenOffice.org/LibreOffice.
Although you can find exceptions, for the most part, basic office productivity in free software is capable today of producing professional work indistinguishable from that created in its proprietary equivalents. I know, because I've produced it -- not just once, but countless times.
Origins Limit Evolution
It is hard to take critiques seriously when they are ignorant of such basic facts. But where these articles and their writers truly show their ignorance is in their lack of understanding of how free software projects operate.
Historically, free software began as a geeky phenomena. The movement is no longer entirely geeky, and, as Peter Brown of the Free Software Foundation has long maintained, its credo could easily become a part of the social activist agenda in the same way that recycling has.
Yet, just as evolution produced a thumb for the panda out of a wrist bone, so the modern movement retains obvious remnants of its geek past. Developers are listening to users to an extent that was unheard-of not too long ago, but free software projects remain oriented largely towards developers, and probably always will.
Short of a radical social mutation, the situation could hardly be otherwise, given the community's origins and purposes. In effect, insisting that the community be less geeky is demanding that it magically transform into something else. The most you can expect is more accommodation for people other than developers.
Moreover, the first free software developers were volunteers, free of the restrictions of commercial developers and often prone to questioning authority in the first place. Their preferences and predispositions made free software a highly political community, where everyone feels they have a right to critique decisions and debate processes.
Today, volunteers have been partially replaced in many projects by paid workers, but their political legacy, like the geekiness, remains. If anything, the fact that projects now consist of representatives of competing commercial interests, each advancing their company's goals while looking for common ground with everyone else, means that the modern free software project is more political than ever. To expect otherwise is about as reasonable as expecting elephants to become more aerodynamic. For evolutionary reasons, it isn't about to happen.
The Idealistic Core
However, where the free software community is most strongly bound by its origins is in members' enthusiasm for various concepts of freedom. What exactly the community means by freedom is the subject of countless articles, but can be broadly summarized as user control of computing -- in other words, software that users can use or change as they want and that has no back doors, digital locks, or other devices that intrude on privacy or limit users' control of how their computers are used. As a corollary, it also means software that users can learn to modify and configure for themselves.
Opinions are divided in the community about how best to obtain that freedom. For those who use the term "open source" to describe their beliefs, freedom is best obtained by the ability of developers to code as they want. By contrast, free software advocates express more concern for freedom for all levels of users.
Beyond that, the political distinctions get murky. For example, while some open source supporters care chiefly for developers' freedoms, others see freedom for developers as the first step towards freedom for all. At the same time, although the free software position sounds superficially more egalitarian, some interpretations of it can be as elitist as some open source positions. Still, what the two positions have in common is a belief that, like Jeffersonian democracy, free software assumes an informed and active community, and works best when it has one.
It is this concept of freedom that is the distinguishing feature of free software. Without it, the movement might find more acceptance, but, if the community ever managed to cut itself off from its roots and become less political, then it would no longer have a point. Developers would no longer have a mission to make a better world, and corporate sponsors would no longer have a more efficient and cost-effective alternative to in-house development and secrecy.
Instead, developers would become hobbyists, and users do-it-yourselfers, no different from weekend artisans who stubbornly insist on using handsaws and hammers when chainsaws and nail guns already exist. For the technically-minded, free software would continue to have a certain fascination, but, for many of those currently involved, free software would cease to have any purpose.
After all, if technology is the only concern, why not work on tools for Windows or OS X? Why go through the laborious process of catching up with proprietary software (and now, as often as not, surpassing it) if all you want is a more efficient text editor or new features on a web browser?
As a platform for technical innovation, a proprietary operating system would do as well. Perhaps it might even be better, since a proprietary operating system's shortcomings could provide greater opportunity for clever hacks. In the case of Windows, it would certainly provide a larger audience for developers attempting to establish their reputations.
If pursuit of excellence is your motivation, the pursuit can take place on any operating system. But if you ideals about user empowerment, the only place you have any hope of living them or carrying them out in any meaningful way is free software.
You might even say that free software developed into a politically-minded movement precisely because proprietary software did not. In the earliest days of the personal computer, decisions might have seen only technical. But as computers and the Internet became commonplace, the relation of those technical decisions to issues such as freedom of expression and community participation became more obvious -- and, since proprietary companies were slow to show any leadership on such issues, the free software community arose to fill the gap.
For such reasons, decrying the political nature of free software misses the fact that you cannot separate the politics from the movement. Without the idealism that would-be pundits routinely decry, free software loses its entire reason for existence, and ceases to be free software.
Observe, Then Change
None of this is to say that free software is unchangeable, or does not sometimes need rethinking. In particular, sometimes, the politics often get out of hand, which is why various projects have created codes of conduct for their members -- or why Canonical's Jono Bacon created OpenRespect.org to encourage a similar code between different parts of the community.
What I am suggesting, though, is that declarations about what free software should be are irrelevant unless they recognize where the movement began and what it has evolved into today.
Undoubtedly, the movement could be more efficient, faster acting, and more centralized in its decision-making. Yet to suggest that it change its essence is futile.
Free software has changed greatly in the twelve years that I have been observing and participating in it. But, at the end of those changes, it remains geek-centered, anarchic, and idealistic, and most of its participants wouldn't have things any other way.
If you want to change free software, you gain nothing by demanding that it change its nature. But maybe if you observe clearly what it is, then you can mitigate or reform it where necessary.