Farm Development

How Do We Open Up The Social Web?

The release of Google Plus presents a unique opportunity to open up the social web. Why? Because it's a compelling product -- it's intuitive and fun with innovative features like circles, hangouts, sparks, etc. In many ways it's a clone of Facebook but that's just a reinforcement of what Facebook (and before that, Friendster) got right. If Plus continues to succeed then the optimist in me envisions this as a golden opportunity! Google could use Plus as a way to pioneer an open standard for interacting with your friends on the web. It's possible that Facebook would even choose to collaborate on such a standard. Seriously.

Google tried this before with OpenSocial (implemented by Orkut, Ning, MySpace, and others) but its APIs were deeply flawed. Besides, when you talk about a product that people want to use, being "open" doesn't really matter. The social web has to be fun and useful, that's all that matters to the users. So far I can find no evidence that Google Plus is attempting anything similar to Open Social but they might come around to it once the product attracts users and proves its relevance. They also have yet to announce what the API will look like.

Why does an open social web matter? Right now we have a strong social network in Facebook and a uniquely social application in Twitter. (Yes, there are many others but none have taken off at the same scale.) It's early, but Google Plus looks like it could join those ranks. Here's the annoying part: all these three services are completely incompatible with each other! You can't interact with the same people on each service, you have to choose one and copy information between the others manually or via APIs. Most importantly:

You can't have one conversation across multiple social networks.

My fear is that this isolationism will lead us into a dark time where the lack of competition stifles innovation and leaves important features (like privacy) de-prioritized. There will only be a handful of social platforms on the scene, within which outside innovators can only write an app or leech users with a Like button.

So how do we open up the social web? Actually, it might be too early to try (even though both Google and Facebook deserve credit for thinking about it). One thing that's clear to me after using Google Plus for two days is that we can't really standardize what a social graph is because there is a lot of room to redefine it (for example, circles). If we can't standardize it then it will be hard to share it between services. However, there are a few obvious things we can do :

  1. We need to own our own identities instead of trusting other services to own them. Mozilla's Verified Email Protocol is an evolving spec that aims to solve the most basic part of this, the login.
  2. We need to invent shared conversations just like we invented the hyperlink. In other words, a conversation originating on one website should be continuous across other websites. The Salmon protocol is an elegant solution to this but I can only see the pattern applied to Facebook, Google Plus, blogs, and discussion sites like Reddit, not Twitter. Nonetheless I would love to see some of the big players try out Salmon.

Those are the only two concrete answers I have. How do you share an online experience with a select group of friends or with your family independent of a central service? I don't know but it should be possible.

As an aside, I think there are some web browser innovations on the horizon that will start changing the way we interact privately with people. One is window.crypto, a way to protect data by encrypting it before sending it to a server. Another is peer-to-peer connections which would allow us to post directly to our peers without relying on servers at all.

Note: HTML tags will be stripped. Hit enter twice for a new paragraph.

Recent Projects

  • JSTestNet

    Like botnet but for JS tests in CI.

  • Nose Nicedots

    Nose plugin that prints nicer dots.

  • Fudge

    Mock objects for testing.

  • Fixture

    Loading and referencing test data.

  • NoseJS

    Nose plugin that runs JavaScript tests for a Python project.

  • Wikir

    converts reST to various Wiki formats.