The general impression among the community is that the code is very clean and concise, and it's well laid out like a Rails app would be expected to be. That said, there is nothing in the application that is anything special; the majority of the source code reads like a traditional CRUD application, there is nothing in there that pays any special mind to scalability, and the design / HTML templates are mostly a clone of Facebook. See http://mashable.com/2010/09/16/d... for the general impressions.
I took at look a Diaspora. Nothing made me recoil in horror, but I didn't stand up and applaud either. Translation: Meh. - @wmbenedetto
My own thoughts, the disclaimer being that I am not a Rails or Ruby expert:
- The vibe of the code leads me to believe that the creators of it put an emphasis on doing things "right". The licensing, RSpec, using of "new" technologies like Rails and MongoDB, it's very "hip".
- The technologies are too hip. Diaspora won't get the legions of PHP / MySQL semi-experts to help out with the code at all. It won't be easily installed on webhosts that only provide PHP. It's not even accessible to people who don't know how to use Git. To experienced developers, this seems like nothing, but to the majority, it's barrier after barrier that has to be crossed. We want this application to be accessible to as many people as possible.
- The code isn't designed to scale.
def self.search(query)
Person.all('$where' => "function() { return this.diaspora_handle.match(/^#{query}/i) ||
this.profile.first_name.match(/^#{query}/i) ||
this.profile.last_name.match(/^#{query}/i); }")
end
- But whatever, the code doesn't need to scale. I see the application filling the same role that Wordpress fills - it's an application that does a fairly simple thing, and it doesn't need to be efficient because it's not like your personal installation is going to get all that much traffic anyway.
- More focus needs to be put on the install process. In other words, the application needs to be dead easy to install to get any sort of traction as a social network. Wordpress has one-click installation. Diaspora requires you (in some cases) to install various applications from source - something that experts are fine with, but will alienate 95% of others.
- There is nothing "cool" in the code. It isn't something that super-hackers really want to work on. Facebook as itself isn't that interesting of a technology; it's when it gets up to scale where tough engineering challenges arise. I don't see the committers of Diaspora getting the same kind of prestige that committers of say, Apache or Rails will get.
- It's not better than Facebook. It just lacks so many features that bring people back to Facebook. This is completely understandable, mind you, I wouldn't have expected them to have created a video uploader, message inbox, chat, events, or an advanced newsfeed. Facebook will always win on features. But the only advantage Diaspora has right now is that you have complete control of the data that goes on it. I'm not sure that that's not enough of an advantage. And I'm not sure that anything they do could give them such an advantage.
Update: