Manage Your Code with Philosophy

I had this idea for a diagram from maco, we were talking about Religion and got to discussing this. I wanted to explain it and I was being casual. But take a look at my diagram and you’ll see there is a very strong pattern which is used for both resolving idealogical conflicts and resolving code/patch conflicts.

And just as we as programmers need access to lots of good and bad code to build our skills and patterns of how to program in the best way. We as human beings need to experience lots of thoughts, feelings, cultures and conflicts in order to build wisdom and insight in our human problem solving.

What are your thoughts?

Red vs Blue is not Purple

There is something that really gets up my nose, it’s not people who love and support proprietary software, it’s not idealogical capitalists, it’s not even the religious far right; it’s people who avoid conflict.

What do I mean by this? Well first lets separate out conflict from a flaming row. An emotional display of bickering, personal attacks and inflammatory chest beating is not what I mean when I say conflict. What I mean is the dialectic philosophy that there are ideas and by extension ideals which naturally fall into conflict with other ideas.

The reason why people who avoid conflict get up my nose so much is simply because they refuse to address problems, they supplement working out ideas and rigorous peer review with the adult to child like arguments: “because I said so” or “because it is”.

The old story is of course of a brother and sister who are fighting, the brother likes the colour blue and the sister likes the colour red. So there they sit arguing with each other:

“Red is the colour of roses and I like roses.”
“But it’s also the colour of warnings and blood, but blue is cool.”
“But blue is so boring, it’s not exciting at all…”
And so it continued.

Later after this exchange had gone on for a few minutes their mother appeared, she’d been half listening in as she prepared their dinner. “Look dinner’s ready, why don’t you both compromise, if you like blue and you like red, why don’t you both like purple instead?”. At which point the children just scoff at the suggestion and continue to argue.

The problem isn’t the attempt at solving the conflict, the problem is the naive assumption that problems can be fixed by picking what ever apparently looks like the middle ground. This is what people do when they look at the Free Software and Proprietary Software ideals, they say things like “Ah well as long as people have a choice, what does it matter” and “So long as the program does what you need it to do.” whilst not understanding that they are completely missing the point of the conflict and get no points for avoiding the problem.

I believe the more mature argue a great deal and accept conflict as a part of working things out. Going inside and out of every argument, looking at every possible compromise and what is trying to be achieved by these ideals. Even looking at the way the world is, how we think it should be and conflict about how to get it closer to our ideal. These conflicts are not bad, only the form and skill with which the participants handle them are and I know Jeff S. could probably run you off a list of instances where I’ve handled conflict badly, unskilled, letting emotion and pride get in the way of a decent argument, we’re all human.

Then consider the people who I would love to have a decent conversation with about FLOSS are people like Cory Doctorow or Benjamin Mako Hill. It certainly wouldn’t be Richard Stallman or Linus Torvalds, the former because he’s a narrow focus idealog and the latter because he rejects the notion of conflicting ideals being a useful topic of conversation. This is why for me I would not see progress, new ideas, new approaches coming from either of these two luminaries of the FLOSS landscape, perhaps because they’re gotten old and weary of conflict.

That’s the other thing to consider, you don’t have to shove an argument down someone’s throat if they are weary of the conflict. Either because they’re engaged in poor arguments in the past or because they’ve hit upon their one true faith and have no need to discuss it further. Perhaps it’s worth leaving these people alone, after all we do want progress from our conflict.

Dialectics says that the new ideas generated from conflicts and other ideas may not even be obvious, or make any sense unless you’ve gone through the process of working out the conflict. This is why bringing someone into an argument late in the game normally mandates that the arguments have to be hashed over again and again, although if your response is to just say “Well we’ve talked about this before” then your pretty much guaranteed to have someone who doesn’t understand why you’ve come to a certain conclusion and is a great way to make sour non-contributors.

Anyway, I’d love to hear your thoughts, in regards to FLOSS communities or general the philosophy of social ideas, memes etc.

Note: If these feels familiar to you, it’s probably because I’ve written about this before, but I’m still fleshing out all the ideas.