We do what we can because we must

A recent conversation with a friend about Twitter vs identi.ca prompted the following response, slightly edited for formatting and anonymity:

<my friend>
man.. that’s my primary annoyance with the open source movement

What is?

<my friend>
the belief that everything has to be duplicated especially for open source, or it’s invalid

<my friend>
and a version of something that already exists with a smaller community around it and a worse user experience is somehow better


<my friend>
someone creates something useful, and then a bunch of people jump on it and do a piss poor job trying to replicate it because they lack the ability to actually design (in the architectural as well as UX sense) and come up with a shit product that they think everyone should use because of some subjective moral high ground

While we were having this conversation, I was sitting in a cafe, it was a lovely sunny afternoon, the sun was beginning to set, and I was feeling very peaceful. I briefly tried a sort of rebuttal but couldn’t conjure up the energy to continue when the argument started to get heated. I replied instead that my surroundings were making me feel mellow. I wanted time instead to respond, which I will attempt to do now.

Let me first try to address the concern at hand. Twitter vs identi.ca. If Twitter exists, why should identi.ca exist? The only reason I started to curiously poke around identi.ca is that I noticed Debian people were using it, and I’ve found that I’m very like-minded with other Debian users and developers. So I trusted their judgement about the usefulness and safety of identi.ca, and I started using it. I’m not particularly defensive about either website; I still think microblogging is kinda dumb. I just wanted to see for myself it would be as captivating as everyone seems to think it is, and I was glad I found a microblogging service that my friends seemed to like.

And yes, it’s true that the fact that I have the source for the website, (it’s under the AGPLv3, which is like the GPL but activates its copyleft clauses by network interaction, e.g. a website!) gives me warm fuzzies. I like having source, and I’m a little sad that the other big websites that I use frequently for their services, bitbucket and gmail, don’t give me source. I briefly tried out gitorious because I wish I could at least submit patches for bitbucket, but then that’s git, and I still prefer hg.

At any rate, if I have two websites of approximately equal functionality, one gives me source, another one doesn’t, then I will disregard popularity and choose the one with source. It’s just what I prefer. I think this is what the attack about “high moral ground” was about, that I think a website should be used because it has source.

I would like to defend against the accusation of high moral ground or holier-than-thou attitude. I now try to never personally appear or act that way, except in very obvious jest (e.g. by speaking religiously about Emacs). I have learned that telling people, don’t use that software, don’t buy that product are extremely counterproductive, so I’m not trying to impose upon anyone any sort of rules of what software I think they can or can’t use. I wish everyone was using identi.ca instead of Twitter and that identi.ca would stay free with that burst in popularity, but the way to that goal isn’t by telling people what they should do; at best you might suggest why they should value source for its own sake, because it enables other kinds of interaction, but it’s pointless to pontificate. So if I or any of my peers in the free software movement have pontificated to you, I apologise for myself and I apologise on their behalf. Empty rhetoric is not what we want you to get out of our work.

Which brings me to the rest of the accusation, what in my friend’s words is a “shit product”… which I don’t think identi.ca is, the interface seems very polished to me (I probably shouldn’t have started off showing the interface by showing off my own identi.ca dark theme; dark themes seem to provoke very intense negative reactions in people). If my wish of everyone using identi.ca or (Octave instead of Matlab!) won’t happen with preaching, then how will it happen? By building a non-shit product, one with a good user experience, one that is architecturally sound.

Clearly being free software isn’t an impediment to being of good quality. We can find software both free and not of good and bad quality. But if there is software that already exists of good quality and it’s not free, then why bother creating a free alternative? And here I come again to Octave and why I felt a poignant need to write this blog post. I am, after all, working on a free project with which I hope to give Matlab users and other people with numerical computing needs better ways to freely collaborate. Octave does frequently receive accusations of having a bad interface (but Jacob Dawid’s Quint project in our private Octave clone may very soon fix this!), of not having enough toolboxes, of being slow, of not having a JIT compiler… all of these are complaints of varying validity. Matlab users have come to expect them, and if we are to offer Octave as an alternative that respects their freedom, we also need to address user complaints.

Here I come to what I felt was the crux of my friend’s complaint. Why bother? If there is something that already works, why recreate it freely and offer something that is a worse user experience? Well, I find this defeatist. If you had the option of software of equal functionality and quality, wouldn’t you prefer it to be free? I think you, yes, you deserve free software, so I’m trying to build it for you, with you. It may not be all that you want right now, but we can always try to make it better. Perhaps you may even help me! Or not, you’re free to do what you want, just improve it privately without even giving me your improvements. That’s fine too.

Will we ever win? Will Octave ever be the de-facto numerical computing environment instead of Matlab like our brothers-in-GNU with the R project are for statistical computing? Will identi.ca receive Twitter refugees when the company takes an irredeemably evil turn in the future? Who knows. But we must not lose heart. We have the capacity to build something better, and because we all deserve something better, we must keep trying. It’s our duty to ourselves, as a community. It’s not a holier-than-thou attitude; it’s thou-art-just-as-holy-as-everyone-else attitude. These are worthwhile windmills to tilt at, we have the steed, we have the lance, so tilt we must.

2 thoughts on “We do what we can because we must

  1. I should have been more clear about my beef, which is with open source consumer products. As a developer, I use, rely on, and appreciate many open source tools, and I dislike using products without that community. As a developer. But most of the things we make as developers are not for other developers – they’re for everyone, including the large number of people who wouldn’t know what to do with the source if they did have it.
    What offended me about identi.ca wasn’t so much the design as the arrogance. Twitter is a hugely popular service and, while it’s not open source, their developers participate very actively in the communities of the open source technologies they use. Your assertion that identi.ca has more features is exactly the reason I have little faith in open source consumer products: more features very rarely results in a more usable product, especially when you consider open source’s historic tendency to discount the UX that would keep an interface from feeling bloated. Beyond UX, more features are at some point going to infringe on speed and maintainability, making a product less usable in ways that aren’t aesthetic.
    Design by committee is an anti-pattern. And when you tell a bunch of developers that their primary deliverable is not a universally appealing product but something that fits their personal vision of how a thing ought to work and what people ought to want, design by committee is what you get.
    The reason I develop on a MBP instead of a linux box is that someone put their foot down and very clearly defined what the Mac OS would and would not be. They created a cohesive and usable product that gets the hell out of my way and lets me do my work. I know very few developers who make their own clothes. Like most people, they want something they can pull on in the morning without thinking too much about it so that they don’t get arrested walking around in public. It would be arrogant if people who can sew insinuated that everyone should prefer to buy patterns and fabric and make things themselves to buying things off the rack, because not everyone has the skill to do that and most people just don’t give a shit.
    It’s arrogant to look at a problem that’s been elegantly solved and – with none of the design and hard decision making that led to that product’s success – assume that something better can be produced just by letting everyone hack on it. And I do find it offensive that open source devs have created their own Twitter rather than joining in the conversations everyone else is having on actual Twitter, as though there could be no value in using a product that didn’t meet that single arbitrary standard which has fuck-all to do with the value of a communication tool.
    If we’re going to begin having successful consumer open source products, we have to stop using the fact that something is open source as a justification for its other failings. Quality software is not defined by how it’s licensed, but by what it actually does.

  2. I don’t think identi.ca is necessarily better. In fact, I think they are both kinda dumb, because I don’t get microblogging. ;-)

    And I don’t think if the software is free or not is any guarantee of its quality. You bring that up a number of times, about how open source is a design philosophy that if more people work on it, it will be better. That’s a distinctive characterisation of open source, because they wanted to sweep under the carpet the issues that free software is about, about how we relate socially and ethically to our software. Open source talks about better quality as a development method, which is not necessarily true. I don’t think identi.ca exists in order to create something that is better quality. As I see it, it exists for a different niche of people.

    You picked the clothing example. Matter of fact, I do make my own clothes sometimes; I knit ;D

    But seriously, I’m not saying everyone should write their own software either or make their own clothes. There is an important difference between software and clothes: it would be awesome if I could knit something for myself and copy it infinitely at essentially zero cost for anyone who could want to use it. And as a matter of principle, I do like the idea of solving a problem once and solving it well for everyone, which is what I want to do with free software. I use other people’s solutions to problems and I try to provide my own.

    Of course in the meantime we might not solve the problem well. And perhaps we never will. But that’s no reason not to try, if the problem is worth solving well for absolutely everyone. And so we try. Maybe it’s arrogant to think that Octave will ever exceed Matlab in quality and features, but it’s not impossible, the GNU R programming language has met that goal for statistical computing, so why not attempt for numerical computing as well?

Leave a Reply

Your email address will not be published. Required fields are marked *