Published 6 months ago
Yesterday I announced my intentions behind a simple yet effective protocol to enable web applications and social networks to share content and interactions, but I have been far from the only one working on this challenge. It's time to mention the other players currently pioneering open social networks.
Admirable efforts like Diaspora, Tent, and the Federated Social Web are making great progress on this problem. Everyone working on such an effort deserves great commendation, as I truly believe that this isn't just a technology issue; free communication is a human right, and thats what we are loosing, without even noticing it. All of these teams have great heart, and great intentions, and we share nearly an identical set of core values. If you haven't read Tent's Manifesto, you really should.
The wikipedia list for distributed social networks is long and complex, which shows the need for a simple list of the actual protocols which these applications can use to communicate. On this list should be OStatus and Tent. There other also lesser known protocols I have dug up like dsnp, and I even had to re-discover the Google wave federation protocol. The list of distributed networks is great for distributed projects which have their own protocol, like ampify and freenet.
It certainally seems the 'winning' protocol is OStatus, championing the most implementations across these open source projects. Tent is young, though, so it also stands a chance. I'd like to address my concerns about the direction these protocols are taking.
My greatest concern with these protocols is not what they don't define- but what they do. Both Tent and OStatus offer ways to extend the protocol. This enables companies to make proprietary extensions of OStatus and Tent, or bastardize the protocol if they have enough marketshare to command it. Even in Tent's type-creation guidelines do they write:
- Publish your type. If you have created a new type, publish it to a popular Tent community site (like this one) so other developers can add support for it into their apps.
[Do Not] Create duplicate post types Multiple post types with the same purpose will create a fragmented ecosystem. Tent was designed to avoid this problem.
[Do Not] Create proprietary post types Users and other developers expect to be able to view posts in different applications. Limiting which apps can use a post type is against the spirit of Tent.
Tent's team provides the consumers of the protocol the ability to customize it, and they warn their users and encourage them to follow un-enforcable rules. Rules that are unenforcable can never work in federated protocols. Breaking the rule just becomes part of the protocol. In the wild world web we live in today, companies and their servers will do whatever they can to get attention and control. If Tent does become the winning protocol, guidelines on their site will not prevent companies from doing whatever they want with it. Thats how open protocols work. Just look at how many people out there are abusing email for their own purposes.
I can't speak quite as confidently about the nature of OStatus. While Tent's documentation is great, much of the OStatus documentation seems to be offline or misplaced. All I can say is that OStatus seems to offer similar capabilities with extensions.
Providing easy methods for companies to make their content more proprietary and harder to read goes against the fundamental purpose of the effort. The winning protocol will not be the most extensible but the one which gets the job done with the least complexity. This is so critical I am going to repeat it in a blockquote:
The winning protocol will not be the most extensible but the one which gets the job done with the least complexity.
Extensibility will promote competition and confusion. Look at how well XHTML does against HTML5 in the modern web today. Hardly anybody uses it anymore. We need one protocol which we can all use and all share for all of our social networking purposes. It should be complete, not customizable.
The protocol we are searching for needs to be explicit and crazy simple, easy enough for any technical user to completely understand. I haven't seen that in the existing networks, and I hope the protocol I am introducing on Friday will fit the bill.
This revolution is just beginning, and you are all invited.