This document focuses on some reasons why users haven't yet adopted Diaspora. There are several barriers that can prevent a person from migrating to a different social network, as such they are divided up into different sections.
Switching is inconvenient
Although many users voice complaints over their existing social networks of choice, a majority of users are comfortable in being right where they are. Google+ alone is a testament to the reality that building a feature-for-feature clone of Facebook doesn't automatically give users a reason to switch.
All of my friends are on Social Network X
Another common convenience of large networks such as Twitter or Facebook are that they are ubiquitous. Many people use those networks, and therefore they can entrench themselves in active social circles of friends. Moving to a new service leaves those friends behind, and effectively cuts off communication.
Social Network X has more features than Social Network Y
Facebook is a prime example of this situation in that it is laden with features. Facebook alone has the following features:
- status updates
- photo albums
- authentication for websites
- image previews and styling for links
- the ability to like comments
- Private messages that also double as instant messages.
- video chat for Windows, MacOS, and mobile platforms
- user profiles
- timeline (semantic social web objects intertwined with user posts)
- many more features
The point is, a platform such has Facebook has a relatively high list of features that users of the service may expect, and leaving Facebook may seem comparable to sacrificing some features that a user may enjoy.
All of my posts are on Network X
Some users value their social content, and are frustrated with the idea that moving to a new network is effectively "starting over".
Arguments Specific to Decentralized Social Networks
Difficult to Install
Diaspora runs on Ruby on Rails. and as such is a little trickier than, say, setting up your own Wordpress blog on a server. Rails apps operate outside the traditional LAMP stack that some people are familiar with using for setting up websites. However, the rise in PAAS (Platform as a Service) has allowed users to host applications through places such as OpenShift and Heroku in lieu of traditional hosting. That being said, it is still totally possible to host a Rails application either locally, or on a server. Check out our Installation guides for specific operating systems and configurations.
Finding friends can be something of a daunting task when you're part of a decentralized social network. Sure, finding anyone that's opted into the public pod search is easy, but finding friends from Facebook is compounded on due to the possibility that the friends you are looking for may have in fact signed up on different pods than you. A pod can't automatically know about people that aren't on it, instead a webfinger request must be made to your friend's Diaspora handle for user discovery to happen.
Difficult to Maintain
As it stands, Diaspora has no auto-update feature that is commonly seen in applications such as Wordpress or Drupal, in which admins are notified immediately of the latest release and given an "easy button" to upgrade. Diaspora instead must be updated manually. Incidentally, there are also technically two admin interfaces, one being Rails Admin, the other being the built-in admin panel.
Decentralized Social Networks are hard to use
For some, the nature of Diaspora and other projects such as Friendica may make use of some unfamiliar nuances in how users connect to one another. Every user has a handle, and handles are treated like email addresses, but for social. This can be different than being on a social network like Facebook in which searching by a person's name almost always guarantees that you'll find the person you're looking for, in decentralized systems it isn't that simple. For pods, the directory pretty much only searches for those that are on the pod, plus the content of people you follow. If you follow lots of people from different pods, any of the hashtags you follow will also be affected because those users are now tagging those indexes.
Lack of understanding around concepts of decentralization
For many, the very idea of a decentralized social network is not fully understood. It can be defined as an idea about how social networking should work. Instead of having everyone on one gigantic server, users could instead host their own social site for themselves or a group of people, and other people on similar sites could interact with that user. Maybe they could subscribe to the user, read their posts, like their photos, and send messages to one another. There wouldn't be a need for a giant social server, users can add each other simply by adding one another's addresses.
Further explanations of the importance of decentralized social networking can be read about here.
Lack of standard protocol
Diaspora is built largely on pieces of OStatus, although it does not use a full implementation. Friendica makes use of the Zot protocol, and Tent applications such as TentStatus make use of a different protocol entirely. Some apps, such as Buddycloud make use of ActivityStreams and XMPP
The point is, there are a number of standards and implementations in the works to choose from in the future. Some applications like Friendica try to maintain multiple connectors for social networks that don't make use of Zot, so that users can communicate seamlessly from different applications. Many of these projects exist as active experiments on ideas of how best decentralized social networking can be done, but as a side effect, there is no "official" standard for decentralized social applications to use across the board. The rapid nature of the development of some standards can make feature development for federation a little tricky, as changes in standards can affect how future versions of social applications need to work.
Pod Downtime caveat
If a pod goes down, when it comes back up again, it will miss posts that weren't received while it was down. This can be a cause for lost posts, comments, and messages between pods.