10 July 2008 2:32 PM (gnome | choices | direct action)
All the time we are presented with options. Should I get my vegetables from the greengrocer's, the supermarket, or the farmer's market? Should I buy a PC or a Mac? Should I start my new project in Ruby or C#? All of these options are equivalent: they're just vegetables, they're just computers, they're just languages. So how to choose?
Some people make choices on technical grounds: for example, "I'm going to buy a Mac because it has a video editor." This is rational, but its rationality degrades over time. The next time you go to buy a computer, you just buy a Mac because it's what you got last time.
To take another example that Robert Collins mentioned on Monday, if you choose bzr over subversion because bzr does merges, what happens in a few months when subversion finally gets merge support? So you make your decision for a reason that turns out not to mean anything. If people go massively for git because of git's workflow and in-place branching, you can be sure that bzr will get the same workflow in the future, and in fact has some of it now.
What I would suggest is that we should make choices not on strictly technical bounds. Instead we should make a choice based on culture. When you choose something to be a part of your future, it affects your culture, the world around you. You invite a tool, a set of people, a set of social relations into your life and into your future.
Technical considerations form a part of culture. Anyone who knows something about Silverlight and Mozilla knows that the technical differences in the projects reflect different values. These values translate into different futures: a world where technology flows from Microsoft, out to the world, or a world in which hackers collaborate in the open to shape their own destiny, our own destiny.
It is especially important not to make decisions about perceived market share, perceived uptake, or the like. For one, these perceptions are easily manipulated. This is the task of the propaganda industry, euphemistically referred to as "public relations". For another, when we choose to invite e.g. GNU into our lives, we affect the future, and especially that part of the future that is in our immediate surroundings.
So in conclusion, and for the GNOME audience, we as hackers build the structures that we are going to live in for a long time. When we make decisions about technology, we begin relationships with people, and to some degree take their values on as our own. We should make sure that we recognize this, and that the values of the technologies we choose mesh with our own, as individuals and as a community.
(For another take on "what makes us the same are not technical similarities, but cultural similarities", and especially in relation to a possible GUADEC / aKademy joint event, see Lambda, the ultimate political party.)