Sometimes, I find myself feeling burnt out about the #Fediverse. There’s a huge amount of promise, but lots of turmoil, struggle, and infighting. Sometimes, I worry about how sustainable this thing is.
Some people may see this as a feature and not a bug, but the fact that very few people have figured out how to make a living from building for the network is concerning.
Instances are largely funded out of pocket by people doing free labor for years and years on end, and the rise of corporate services and mega-instances leads me to worry that we’ll ultimately end up with a few providers making money, while everybody else is left to panhandle.
There are also open questions about whether #ActivityPub really is the future for this network. People have done some amazing things to make it all work, but I’ve seen people talk about some of the painful, intractable problems with how the network and the platforms on it currently work.
Fediverse Enhancement Proposals have done a lot of incredible work, but it all feels like a band-aid on a deep wound.
@deadsuperhero I'm looking for answers why a new protocol was created when we already had the Activity Pub protocol.
I got some interesting answers from the creator of this protocol, I just shared some of them earlier today.
If you have some thoughts on technical problems of the Activity Pub, it would be nice to read them. Why a band-aid? May you elaborate about it?
Here are some links shared with me
http://evanp.me/2023/10/06/activitypu
https://swicg.github.io/activitypub-data-portability/lola
@everton137 I’ll try to address your points one at a time.
A good starting point for reading about the pain of implementing ActivityPub are these threads by @hrefna, who has been doing deep explanations of why it’s so painful:
https://hachyderm.io/@hrefna/113126061500475122
https://hachyderm.io/@hrefna/113150060613189074
https://hachyderm.io/@hrefna/113150226092014420
https://hachyderm.io/@hrefna/113026799619036926
https://hachyderm.io/@hrefna/113051992061436003
https://hachyderm.io/@hrefna/113125991459225119
Regarding why Bluesky made their own protocol, rather than building on AP, it boils down to wanting to implement their own approaches from first principles. ATProto ties heavily back to the identity layer, and you could make the argument that its design is heavily influenced by Secure Scuttlebutt, Solid, and Nostr.
There is nothing wrong with wanting to roll your own thing. Paul Frazee, the protocol dev, was heavily involved with Secure Scuttlebutt and Beaker Browser, so of course his understanding of distributed systems informed some of the decisions he’s made with ATProto today.
@everton137 To broadly summarize some of the pain points, a lot of it comes down to how the standard is put together, as well as how it is used.
Most ActivityPub implementations initially looked to Mastodon for examples on how to implement the protocol themselves. However, Mastodon took a number of liberties as First Implementor to declare how things should work, such as: using Webfinger for pulling in remote content, using a field for content warnings that other systems were using for summaries, and not implementing the Client-to-Server portion of the spec.
Part of the problem is that some parts of the AP spec are under-defined, to the point that it’s not totally clear how things are supposed to work by default, as presented in the spec. Most ActivityPub implementations are a revision of what Mastodon first did, and most of these implementations were built against Mastodon for compatibility, rather than a standards-compliant target where everybody could be compatible with everybody else.
This has actually caused a lot of long-term growing pains, as developers have to play whack-a-mole in trying to be compatible with one another. I’ve heard that some aspects of the protocol cannot be easily abstracted into a library in a matter that’s both comprehensive and standards-comformant, and there are a lot of open questions on what a “proper” standard implementation should be for any given ActivityStreams Verb. Most of that stuff is loosely defined, at best.