> There is nothing special about what social networks like Facebook do, the biggest challenge is probably serving so many requests and storing lots of data with high availability.
The difficulty with decentralising is that these are the biggest challenge to centralised systems like Facebook; they're problems which are very nice to have ("oh no, we have a billion users!").
The biggest challenge for decentralised systems is getting momentum behind an agreed-upon protocol.
Email was born when there were few people who needed to agree, and their major concern was being able to send/receive messages. As the Internet expanded, the momentum behind email ensured that it could ride that wave as well.
These days the Internet, and hence the number of people who need to agree on the protocols, is huge. Think about, for example, HTTP2; how many organisations and individuals were involved in its definition and publication? How many more have been involved in implementing it for various browsers, servers, crawlers, libraries, etc? How many more have been installing updates, editing config files, etc. to use it?
Another change is the concerns of the stakeholders; if all we cared about were sending/receiving messages, then we could use something like telnet, HTTP, email, etc. Instead, the concerns are more fuzzy (e.g. "presence", "likes", etc.) and more political (silos vs federation vs p2p, expectations of privacy, encryption, archiving, searchability, etc.). Reaching agreement on such things is very difficult, as everyone wants different things.
The results either:
- Have buy-in from too-few people (e.g. diaspora, pump.io, gnusocial)
- Are so general as to be inappropriate for most particular tasks (e.g. RDF; an interesting example considering that RSS is a stripped-down subset of RDF, and is/was widely adopted; also compare to ATOM, which took that subset, threw away the ties to RDF, and became more interoperable!)
- Only offer tiny featuresets (e.g. the various microformats)