Okay, so, while it is a generally good thing to be able to run the software for yourself, and for that software to be free software, I need to clarify, again, that this is not saying “they’re all like Meta”. What I am saying is that “they’re all trying to build platforms”.
By “platform”, I mean in the sense of “a place for exchanges of information to occur between producers and consumers”, or “a base from which a service is provided”, or in a larger sense, “the computing substrate that determines which software can be run”.
The prevailing worldview among the list of partners is that the fediverse itself is a “platform”. I am countering with the belief that the Web itself should be the “platform”. Which is to say: instead of “building for the fediverse”, we ought to be “building for the Web”. It’s a matter of targeting. Do you see the fediverse as a sort of digital service which people connect to in order to make and read posts on the fediverse? Or would you rather see people publishing and browsing resources on the Web?
I don’t think that at all. What I have instead said several times now is that “implementing enough of the core AP spec to have some level of interop with other software that does the same” doesn’t describe the fediverse at all. You could implement the entirety of ActivityPub and not be able to talk to a single person. Yes, even after you take into account the WebFinger and HTTP Signatures reports. The problem with “the core AP spec” is that the “minimal as possible” base that it provides is not enough for meaningful interop. All you can do is Follow, Like, and Announce… and even those are assumptions rather than guarantees. (How many softwares check for the presence of a followers
, likes
, or shares
collection before sending a Follow, Like, or Announce? How many softwares even provide the presence of those collections consistently?)
Taking the XMPP Core spec as a comparison point, as you did: RFC 6120 defines stanzas for “message”, “presence”, and “information query”, as well as errors. ActivityPub only defines limited side effects for certain types of activities, including Create
, which has “surprisingly few side effects”. Now look at the fediverse. Can you seriously say that sending a Create activity to any of those softwares will have “few side effects”? I can think of a pretty big one – that the object of my Create
will be converted into a “status”, persisted in their database, and cached forever unless I explicitly send a Delete
.
I think that “minimal core + extension FEPs” is an okay model for things, but right now the core is too minimal (we have no specified way to let a follower know that they’ve been removed!) and the extensions haven’t been written (as FEPs or otherwise).
It’s not only “not optimal”, but it is also actively harmful, and the Social Web Foundation seems to be taking the position that it is not harmful. Or at least, that’s what all their partners generally seem to think – that the “de facto platform” ought to be built upon and developed for, instead of the Web being the platform.