Free Software Misunderstood

This post is in response to two things that I've observed recently:

1. A Misinformed Critique of the Debian Project

2. The largely unfair dismissal of free software/open source/hackers on the grounds of purported zealotry.


Debian, Critiqued

The above linked article, presents a number of critiques, leveled at the Debian project. While these complaints with user experience are valid, I was left with a serious, as we say on the Internet "WTF" moment. Read the article if you haven't already before you get to my response, if you're so inclined.

Also I'd like to challenge the Editors of that website to exercise a little more digression in what they publish in the future.

My response:

1. Stable releases of Debian are for the most part not intended to be run as desktop operating systems. The software in Debian Lenny is, at this moment nearly two years old. That's fine (and even desirable) for a server, but most users want things that are a little more up to date than that. This is why we have distributions like Ubuntu, which manages to walk a much better line between stable (and benefits from the efforts of Debian) and current.

2. It's possible to install Debian packages that aren't contained in the repository, or provided in older versions of the operating system. Download the package with wget and then use dpkg -i    [package-file].deb. There may be GUI tools that support this. While we might like to have Linux systems for "new comers" to the platform that don't require using the command line, Debian stable isn't one of these operating systems.

3. Installing fonts on most systems is usually as simple as putting the files in /usr/share/fonts or $HOME/.fonts and and running fc-cache -f. The complainer focuses a great deal on the absence of a familiar font management program (which appears to be a command line tool that exists in Ubuntu 9.04 which is a "newer" system than Lenny).

I still don't see how "contempt" is the right word, to describe the fact that a massive project that is the result of a loose organization of hundreds of people, failed the address a few specific needs of a user using the system in a non-standard/non-recommended pattern qualifies as "contempt for users."

As it stands it sort of feels like the author is attempting to stir up controversy by attacking a historical weak spot, and stretching the bounds of reasonable criticism in the process. I think editors of any publication should be above this sort of thing. thumbs down.

Dismissal of Free Software on the Grounds of Zealotry

We see this a lot, and I'm kind of sick of it.

I've seen a lot of people--who actually agree with almost every tenant of the most "ideologically pure" free software advocates--dismiss version 3 of the GPL, or RMS, or the FSF for being "too radical," or obsessive, or "communist," which is both intensely interesting and intensely troubling. It's often in the form of "I wouldn't say that like RMS," or some such.

For starters, I think its interesting to note the prevalence with which "communist" is used as a dismissal of the "Free Software" movement, particularly because while there is a very vague "anti-corporations" and "anti-trust" vein in the free software world, in point of fact the biggest "big picture political" ideology around is a very ad hoc libertarianism. The "communist" jab is, probably more at the sort of heavy-handed ideological positionally of the "copy left" movement. Furthermore, I think it's probably clear that Free software as we know it today wouldn't be possible without commercial interests, input and, energies, and resources.

And yet. Free software/open-source, gets red baited. Interesting. And disappointing.

free and open terminology

As, I'm sure many of you know, language and "what we call things" in the free software/open source world is a huge thing. Some people will probably get mad for my use of the slash in the previous sentence. This post, is mostly for my own good, as an experiment (and for future reference) to see where I stand on various word-choice questions in this area. I'm going to organize the post as a series of (brief) reflections a couple of key words.

Free Software

I think free software, addresses and represents the core of what this whole mess is about. Free software--as an idea--addresses the communities, the "hacking spirit," the ideological goals, the political and philosophical elements of the community.

It's also horribly confusing in English, and no matter how often we say "free as in speech" or "free as in freedom," it's not really going to get better. I think, also, "libre" is a poor use of the English language, and I cringe a lot when I read it. I've taken, when possible to refer to "ideas about software freedom" and "the movement for software freedom," which works as long as you don't need to refer to a specific piece of software.

In those cases, I often cave and say "open source software" because it open source is a more clear adjective. I also think that open source describes "the thing" and the "process" more clearly, and that's an advantage. I dislike that open source, means "not scary to big businesses," and disregards the fact that this (free/open source) software is better/more valuable than proprietary/closed software because it is free and open source not simply because it happens to be better in quality.

GNU/Linux

I tend to say GNU/Linux, because--at least in my use cases--the kernel isn't nearly as important to how I think about my operating system as all the tools that surround them, and if the next big thing in the Unix-like (open source) operating system was a Debian or Arch-like system with GNU parts around the FreeBSD kernel or the Solaris kernel, I'm there.

I switched from OS X to GNU/Linux mostly because I wanted: better package management and (oddly enough) to be able to run an X11 desktop. The truth was, I was basically running a GNU(ish) system around Darwin (OS X's kernel), anyway.

Open Source Userland

Free software and open source users/developers are a sort of evangelical bunch. I think a lot of this is because hackers what other people to use the software that they spend their time working on, and of course some of this is because of the ethical systems that pervade the free software movement. And of course we want to both expand the user base of certain pieces of software within the open source world (eg. getting vim users to use emacs) as well as getting people using proprietary systems (like Windows/OS X/Microsoft Office) to use free/open systems (like Linux/BSD/emacs).

The biggest challenge in the second project is usability, and I think both prospective users and developers (and people like me) often wonder "Is open source usable for non-technical users?" This is a question that I don't have an answer for. On the one hand, yes, GNOME--for instance--is really usable. I don't think it's particularly innovative software, nor is it clever in the way that OS X sometimes is, but it is on the whole very functional.

Very often open source, in its entirety, is judged on the basis of its usability, which strikes me as pretty ironic, as I'd wager most open source projects--and without a doubt the most influential ones--are not "user applications." In terms of importance, the kernels, the programing languages, the libraries, the servers, and the frameworks are way more successful, powerful, and robust than programs like "Open Office," or "GNOME," or even--frankly--"Firefox."

I suspect this is the case because lower level stuff is either to get right, and because hackers end up working with computers on a very low level, so it makes sense that the itches they're scratching with open source would work on a lower level. And the "cause of free software," is more directly served by these lower level projects: open source depends on users recognizing the value of hacking on code, which is more likely to be realized in low level projects.

Which makes the project of evangelizing non-technical users more difficult, because the argument isn't exactly "switch programs to (potentially) better ones," but rather "become more involved the technology you use," which is a much different argument. And I think the "usability" question often serves as point of mystification in this much different argument.


My original intent with this post to explore how some of the biggest open source user-applications were in fact sponsored by really big companies (in whole or in part). Novell puts some considerable resources into GNOME and KDE; Sun obviously backs Open Office; Firefox and Mozilla grew out of Netscape/AOL and get a lot of money from Google.

More than anything, I wonder what to make of this. Certainly there is also backing for lower level projects: Sun and Java/mySQL; countless companies and kernel development; 37 Signals and Ruby-on-Rails; and so forth, but it feels more substantial for user applications, somehow.

I wouldn't go so far as to suggest that corporations are attempting to re-mystify technology in open source. I think it's much more likely that business know that having viable desktop environments will be advantageous to them in the long run, and that since hackers are less likely (on the whole) to work in the user-application space key contributions of corporate-backed developers are more noticeable.

But maybe there's something else there too. I'm not sure, isn't the world grand?

Onward and Upward!

Open Source Work

So I may have my beef with with the software as freedom, [1] none the less I think we can learn some pretty interesting things about freedom and politics from thinking about what open source means. In this vein recently, I've been thinking more about the economics of open source, and as I'm prone to an interest in creative business models that find interesting ways to generate income in unique and special ways. Here's some thoughts on the "politics/economy of work in open source."

On some deep level open source software resists the traditional scarcity economic model. There is no property, intellectual or otherwise, that you can exchange for money in a way resembling the normal way. With that option off of the table the open source community has to come up with other ways of doing business, and because scarcity (in another sense) is the mother of creativity, what folks in the open source world do to make a living is pretty interesting.

There are a few of major ways that people in the open source community make money:

1. Software-as-Service: Rather than sell people software, companies sell service agreements. This is nifty, because it lets groups of people get support for open source, it's cheaper for users than buying software and service contracts, and also it means that service based businesses are smaller, because it's more efficient to run a smaller company, and because anyone with the right skills can provide the services and not just the copyright holder for the OS. So customers get a more tailored experiences. The con, is that the better software is, the less people need support for it.

2. Custom programing. Basically individual programers consult with users to develop custom solutions around people's needs, using open source tools. Ideally some of what people write gets contributed back into the repositories (as libraries/tools), and this is particularly suited to very modular/adpatable projects like drupal or debian

3. Certification. A company/programer reviews the components and develops an independent release of an open source product that they've certified. The best example of this is the RedHat certified linux versus Fedora Core. Which is mostly useful in the "enterprise world."

4. Service Software. This is a mashup of other models, and I think it better to lead with examples: Wikimedia/Wikipedia/Wikia and DabbleDB andsmalltalk/seaside. Basically, a company uses an open source product to develop a service which generates income via subscriptions, advertising, and donations, which supports developers who contribute to the core project.

The most interesting effect that all of these models (but most clearly in the first two) have is that money isn't being exchanged for "a thing," but rather for work.

Which when you think about it, after we remove a few layers of mystification around "intellectual property," the only thing that's truly scarce is labor. Folks in the open source movement have had to realize this, and I think the ripple effect of this could be really profound. More important than even the "open access" to source code.

Twenty years ago (or more) having open source code was really rather important, but even then and more so now, open source code wasn't a great benefit to most users. The number of linux users who've ever looked at the kernel source is probably pretty small. Thus I think it's not a stretch to say that the ideology of open source (as opposed to free software) is as much about pushing further a different way of thinking about work and "ownership," as it is about "freedom" or some more specific technological goal.

Thoughts? Reactions?

[1]My father neatly summarized my critique as one against "lifestyle politics," which is apt. I think the problem in this case--like many--is one where personal beliefs and actions are in themselves thought to have a concrete impact on a larger political/economic situation, when I think politics happens at the next stage where you take your personal experiences and situations and work to influence/empower others. That is, if you just use free software (and refuse to use non-free software), you will do nothing to undermine the commercialized software industry, but if you use free software and you contribute back to the projects, and you help other people use free software, and you use free software to contribute to other efforts/projects things that is (potentially) a powerful political act. Potentially.

You Can't Hack your Way to Freedom

Subtitle: Or, Why Open Source isn't about Freedom.

There is a major segment of the open source/free software movement that believes that open source is important because having non-proprietary software is a key to individual liberation and freedom.

While this "camp" has done a lot for the open source movement, and in some respects they're right: an educated user can deal with his own bugs, tweak the code, and verify that the software is secure. Also free software makes it possible for everyone, not just the very wealthy, from using very powerful tools. Money is still an issue around hardware, but free software helps. These features of free software are indeed powerful and likely make the undertaking worthwhile in its own right. So I don't want to dismiss the political importance of this idea or faction but I'd like to offer another theory of why open source is so powerful and important.

The marker of a successful proprietary piece of software and a successful open source program are completely different.

Proprietary software is successful if people [1] buy it. And when people buy anything really, for the most part they do a cost-benefit analysis, usually between features and cost. Does this do what I need it to? Will I have to buy something else to finish the task at hand? In this environment the most successful programs will be the best programs that do the most for the least amount of money.

So I guess I'm being an armchair economist in this, but I think that it makes a lot of sense for both developers and purchasers to keep the overall number of discrete programs down. Why develop and support (and buy on the other end) an address book program, a mail reading program, a mail composing program, a calendar program, a task manager when you could just get Outlook? Hell, why buy business/office software a la carte when you can get it as a suite?

Open source doesn't need to operate like that, [2] especially historically a good piece of open source software did one thing well. There are a lot of reasons for this. Unix works best when everything is a modular widget widgets, but getting a bunch of hackers to agree on how to accomplish more than one thing is sufficiently non-trivial to have had a great impact on the methods of the movement. Perhaps most importantly, there's no need for any single piece of software to do everything because open source software doesn't exist in a vacuum.

And this is the strength of the model. You could never market on or sell application on a large that did one thing really well, but if you asked it to do something else related, the developer would say "not my problem."

The classic example is mutt, and email client that just reads email, while recently (after much "not my job" protesting,) mutt has added support for connecting to the servers that send and receive email, it historically hasn't and I suspect most users still don't use these features. Imagine if Outlook said "nope, sending email is someone else's problem, I'm just a mail reader." Mutt succeeds because it's really good at reading email, but also because there are a lot of really great tools for doing other email related tasks. Fetchmail is a great and reliable program, but it only downloads email, and for sending email I've never had a problem with MSMTP, but I think there are a number of popular mail-sending options.

So you get that open source makes a more widget or ecosystem based computing environment viable and stable, but are still wondering why this is a good thing? Because it sounds that this kind of open source just makes things more complex? Right. Here's why I think the ecosystem is the way to go:

  • It's easier to build programs that only do one thing. A program either is really good at downloading your email or it isn't, and it's pretty easy to tell if that's the case. More complex programs, can't be as reliable as consistent.
  • This system is more responsive to technological development. If there's a new revolution in email downloading, it's easy enough to take fetchmail out of the picture and put some other widget in place that works better. Non-modular systems put you at the whim of someone else.
  • Your data is (more likely) to be accessible and open. The real reason that open source hackers are interested in open standards and formats is, if we rely on an ecosystem of widgets our data has to be readable by all of the different widgets. The only way to ensure that this is the case is to use open and standard data formats. This is good for the user and good for the programer as a creative constraint.
  • This model more closely reflects the way we actually think. Our minds are made up of a bunch of smaller abilities. The ability to recognize written words, the ability to parse those words for sounds and meaning, the ability to take what we read and relate it to things that we've seen and read in other contexts. In both the software and cognition the really cool things happen with novel collections of different ideas and tools.

But wait you say, OpenOffice and Ubuntu Linux aren't widgets and they have very high feature counts. This is very true, and to be honest projects like GNOME/KDE and open office mystify me because they fail so amazingly, they're too disjointed to really compete with desktop environments from proprietary makers and try to do too many things to really work ideally on their own. [3]

In the case of Ubuntu--like all linux distributions--the "product," is a specific and tailored collection of widgets. And this is a pretty good open source business model: take a bunch of tools, customize them, make sure they install and work together, and then package them as some sort of suite. While I think that this software ecosystem thing is pretty cool, it's not easy to get started with, and unless users really know what they're doing it requires more than a bit of fidgeting. Distributions solve this problem and make a space for individuals and groups to monetize this "free" software. Which is of course good for (almost) everyone involved.

Anyway, I've been going on for way too long. I'm not--by a long shot--done thinking (and writing) about these issues, so expect a continuation of this soon.

Onward and Upward!

[1]In the case of software, I think people should be understood as cooperate IT devisions, more than individuals
[2]There are clearly a lot of exceptions, particularly in this particularly moment, where we're seeing projects that in this respect look more like proprietary software. This is I think in part intentional as a means of competing with proprietary software. And I'm building to the other "in part." So lets wait for it, shall we?
[3]Clearly this is just my opinion. Every so often I want to try and like GNOME, but I always find it to be a less then pleasurable experience. The GUIs don't make a lot of sense unless you know what the shell commands that they're wrapping are, to say nothing of the really poor use of space (that's tangential, but probably my largest gripe with GNOME). Interestingly I started using a different window manager (awesome), which accesses gtk, and I was very surprised to find that some of the gnome apps were actually pretty decent. Who knew!