App.net and federated, decentralized networks
I've been Tweeting a lot about App.net lately. A response from Arne:
@honging If twitter is the problem shouldn't the solution be decentralized and federated instead of another centralized platform?
— Arne Claassen (@sdether) July 26, 2012
The idealist in me totally agrees. A totally decentralized and federated platform would be best - a system where everybody hosts their own service (or they pay somebody else to host for them) would be the best solution. You're in complete control of your data; the creation, consumption, and privacy are all on you. But the realist in me doesn't think this can happen - and even worse, I think it's shielding us from the bigger problems of today: open data.
. . .
The pitfalls for federated, decentralized social networks aren't hard to understand, but I'll recap a couple of them:
The technical know-how to be involved is too high for most users. From a time perspective, nobody wants to maintain their own servers. Even the geekiest of my friends have retired personal sites (I retired mine a few weeks ago). When was the last time you were on a personal site that wasn't hosted on some third-party service? Amazon's microinstance costs $15/month. Would you really pay $15 - $30/month to maintain a personal presence online?
WordPress, which has done a fantastic job in simplifying installs, is still beyond the skillset of most users. Diaspora (and others) have introduced community "pods" - which are mini-Facebooks that host individual communities. While these remove the techniclal lift of joining this new social network, they have data integrity issues.
Having run a mini-social network on my own, I would NOT trust my life data with smaller providers. Automating backups and maintaining data integrity is a hard problem - look, any time there's any $ attached to any product, hackers will attack. Is pushing that responsibility out to community pods really better? Look, for everything you can criticize FB/Twitter for - they have smart, well-paid people protecting that data.
. . .
People want new and shiny things. Pushing new features into a distributed, federated product like that would be insanely slow. New features in social networks usually involve two people - if they are on different servers, that means updating the code in two places. So do I not get this feature until everybody updates? Does it only work for people who update? What is the incentive for updating anyways? Fragmentation is a bitch.
There is simplicity in a closed system's ability to innovate. That's why being Cloud-enabled is such a huge strategic advantage - you can push out new features to your customers quickly. Have you tried supporting a single product on every different flavor of Linux? Yeah, it's a mess. If we equate product development with the way IETF pushes out standards, you'd get a product release every what - 3 years? 5 years?
. . .
My last reason is the simplest one: Product development is hard. Even in a closed system, only a few companies do it well. Look at Apple with Ping. They have smart people, deep pockets, an existing user base... and Ping failed horribly.
Forget the technical issues with a distributed social network - can anybody even define from a purely product perspective the advantages of a federated, distributed social network? What are the killer features that are enabled in this use case that a closed system can't achieve?
I've had trouble answering that question. That's why I eventually decided that a closed system that enables open data is the best approach.
. . .
If you accept open data as a "good enough" solution, then it's easy to look at the advertisement-driven sites of today (FB, Twitter) and realize that the incentives of those companies are NOT inline with user's. The goal of ad-driven sites is going to be to capture as much data as possible and lock-it in. In an ad-driven world, the goal will be to keep users in their walled gardens as long as possible. To me, data ownership is a bigger concern. Can I export my data out of Twitter if I want?
That's why App.net is so important to me - it's the first step to admitting that these social networking services are critical and valuable, but creating a future foundation that is directly in line with users and developers. To me, the lack of standards support, or the centralized nature does not bother me, since they are emphasizing their support of open data: the data is mine, and I can have it back at any time. Even better: other people, whom I grant access to, can help present my own data back to me in useful ways. This is where FB and Twitter are falling off the cliff.
Products don't have a long shelf-life. In a lot of way, I look at them like movies - very ephemeral. They are brought into existence, they serve a purpose, and then they die. Look at how we discovered content on the web: Yahoo!, Altavista, Google... now Twitter. There's an evolution. Facebook from today looks drastically different from the one two years ago, and two years before that. I shudder to think what it'll look two years from now. Products don't last to me. Data, and by relation, platforms, do.
To me, building a platform with a business model that (theoretically) doesn't conflict with users will last. For a long time. And that's worth investing in - something that'll last.
And while there are MANY technical questions about App.net... I do believe that the business model and vision Dalton's put together is the best shots at creating a user-oriented platform that will serve us, the users.
Comment with Facebook
Want to comment with Tabulas?. Please login.
Your first argument that federated means everyone has to run their own site, is one implementation, but just like RSS or XMPP is federated, neither requires you to run your own instead of going with one of many service providers that has built on those subsystems.
The following argument against pods and their adoption is a valid criticism of existing federated systems. It is true that a lot of what's federated out there is specific platforms that support nodes, but even when the platform is open source, it is still a restrictive framework that limits its adoption. Usually the primary limitation is that people attach open source and non-profit requirements to those platforms, preventing anyone from trying to build a business on top of the outlined infrastructure.
As you say your concern is open data, and just as you would not choose a blog host that couldn't export your blog, you shouldn't choose a federated provider of status that does not give you that option. But that is a function of one implementation in the ecosystem and does not require a single benevolent overlord to accomplish.
Next up: Features, which goes to the nature of standards. And I'm personally against premature standardization. Much like HTML was defined early on by browser vendors by supporting the minimum spec and then innovating on top, a federated system could easily let each vendor innovate features that are ignored by consuming nodes that have not implemented them and pick them up once there is traction.
As for product development, this again assumes that the federated system must be made up of a homogeneous platform, which is the death knell for so many projects. The key for federation to succeed, is the ability for any implementation to innovate and try to attract users by the features of their product without requiring the whole to support their additions.
The keys is that for a decentralized, federated status network to work, it cannot be a platform but must be simple composable subsystems that vendors can choose to implement or ignore depending on what level they want to support. Dencentralized doesn't just mean that nodes can run on their own, but also that they also are not beholden to a central design authority.
Still writing up my spec, but I am hopeful from what I have in my head that I can address all your concerns and make it attractive to developers, users and entrepreneurs as a foundation on which a status network can be built without robbing any party of their ability to act in a way that creates value for them