Diaspora Dissent = "Stupid + Ugly"

Why Diaspora* is not a democracy. And therefore why it's so cool.

"Stupid & Ugly" is Linus Torvalds' moniker for advocates of centralised Version Control Systems. His own VCS, "Git", is completely decentralised - it also happens to be the VCS Diaspora chose to manage their code. And it gives us a fabulous example of why the Diaspora paradigm is so free, open and unique.

Recently, there's been a lot of hoohaa at Diaspora from members who are pissed that their feature requests don't necessarily make it to the codebase, regardless of the popularity of the given idea. Somehow people have got it into their heads that membership of the Diaspora community equals an inalienable right to vote on software development decisions and are very unhappy and disillusioned when they get ignored. They call the developers names, the project a "dictatorship", and otherwise get very upset about a detraction from certain democratic ideals they had believed to be key to the project's ethos - a heavily extrapolated, irrelevant version of Diaspora's ideals that they've in fact made up themselves.

Diaspora is soooo much cooler than that, and people seem to be missing it. Here's an attempt at picking apart the confusion.

Differences between "closed", "open", and "open + decentralised"

In a closed-source community application, e.g. Facebook, petitioning the core team is the one and only option open to those who wish to influence its development. And so people do; whether or not they feel they have a right to be heard is by the by. It's closed - they don't.

In an open-source community project, petitioning the core team is the first option. It may not work, even if your idea is very popular; it is utterly unthinkable that you run a free software project like a comedy improv where the audience choose the plot and you don't (screw that! If it doesn't work for commercial projects, it certainly won't for free ones), so generally software projects use feedback to make informed decisions, rather than holding constant referendums. The second option is to develop your own branch, with your chosen features built-in (though in the past this wouldn't have worked if the software were designed to host a single community, it worked fine for most apps). If successful, this may merge into the core project in the future. FOSS means autonomy, not democracy - this means personal responsibility, not bossing people around.

In an open, decentralised project like Diaspora, petitioning is again the first thing you might do. But you will, ideally, have more than one team to choose from. Since Diaspora is completely decentralised, that means anyone and everyone can download the code, modify it, and providing the core API remains intact then they will still be able to use it as a Diaspora pod (server). The version control system Git positively encourages this behaviour (Linus certainly does - he hates the very suggestion of using the centralised model - see link below); so you may download your Diaspora codebase from absolutely anyone you wish, provided of course you trust them. So now, anytime anyone wants a non-standard feature, they simply make it themselves, host it, and users of that pod can use it. Users will be free to move their profile from pod to pod, so if your idea is really popular then more and more pod hosts may decide to merge your changes into their codebase - maybe the original Diaspora team, even - but it doesn't matter if they do or not, cos you already have what you want.

This is the freedom and autonomy that Diaspora offers. You do not have a say how the original Diaspora team steer their version of the project, because you already have total control over how the overall project develops.

So, pretty please, with sugar on top, stop calling people names. Cos if you don't, you're "Stupid And Ugly".

Oh, and here's a great talk by Linus Torvalds on Git: http://www.youtube.com/watch?v=4XpnKHJAok8