I think Diaspora will fail. What is Diaspora?
The privacy aware, personally controlled, do-it-all, open source social network.
I should back up my bold statements with some arguments. First, the code quality seems to be very bad and the developers seem not to be top notch - something I assume is necessary for such an ambitious project. Steve Klabnik writes on his blog:
Basically, the code is really, really bad. I don't mean to rain on anyone's parade, but there are really, really bad security holes. And they're there due to things that any professional programmer would never dream of leaving out of their code. [...] But then, the more I read, the more bad things I found. They're going to need a complete overhaul to fix this. Go over every last piece of code. And don't even get me started on their encryption code."
Although Steve wrote the post to rise awareness and wants to help
"I'll be submitting another patch or two, but it needs much, much more than I can give."
I'm not so sure this is the right way. I think there are deeper and more fundamental problems with Diaspora.
Diasporas deeper problems
When I first heard of Diaspora, I imagined a decentralized , P2P system running on every computer. Then when the iaspora developer release was posted and I took a look at the FAQ I was astonished. It would only run on dedicated servers (or your desktop should it be a dedicated server):
We think most people will use some sort of hosting provider to host their seed. This could be a traditional web host, a cloud-based host, an ISP, or a friend.
Which is a shame, because I assume 99% of users will not have such a system accessible.
I would have imagined Diaspora as a Peer2Peer system based on software running on local computers which gets replicated and encrypted. Or is running on a phone. I was disappointed when hearing it was running Rails - which is hard to scale when you do not control the system or stack - which happens when people download the software to their own system. It also makes Diaspora available only for a very small minority of Facebook users. Some suggested using virtual images to achieve this, but from my interactions with VirtualBox and VMWare, this is way beyond most users.
Another point is interaction and communication: Inventing their own protocol could be good, because they can adapt to their usecase. But protocol design is hard, so this has a high probability of failure. Why not use XMPP? We will see how fast it can evolve and if the developers make the right decisions.
Why not use CouchDB and run a CouchApp? Store data local, replicate to your other computers. Or replicate it to phones. I'm sure phones will be powerful enough to run a P2P Diaspora version in the future when traffic costs are no longer an issue. Phone CPU power and memory haven't been an issue for quite some time now.
Perhaps I'm sounding harsh and negative, but I'm just really dissapointed. When we wrote the SnipSnap wiki software 10 years ago we envisioned a completely decentralized P2P version running server less on every computer. We were not bold enough to implement the vision, and tools weren't ready. So perhaps I envisioned Diaspora fulfilling this, which it doesn't.
Taken together I'm dissapointed and do not think Diaspora will succeed. There was so much potential, a Rails application does not fulfill it. Identi.ca has the same fate - it might be a sucess as a niche communication system for some users and the creators, it failed as a Twitter replacement. Also on a note: Why did Appleseed not succeed? Is Diaspora better than nothing? I'm not sure. For now I'll stay on Facebook.