Developer perspective on tradeoffs… #ATProto architecture is more centralized.
-
Developer perspective on tradeoffs… #ATProto architecture is more centralized. #ActivityPub has JSON-LD.
️ So much pain and confusion, so little benefit and the Fedi Father refuses to consider JSON-LD alternatives because replacing the “feature” that almost no one actually uses with something useful will apparently break the Fediverse.“This is why we can’t have nice things.”
#fedidevs -
Developer perspective on tradeoffs… #ATProto architecture is more centralized. #ActivityPub has JSON-LD.
️ So much pain and confusion, so little benefit and the Fedi Father refuses to consider JSON-LD alternatives because replacing the “feature” that almost no one actually uses with something useful will apparently break the Fediverse.“This is why we can’t have nice things.”
#fedidevs@eyeinthesky indeed.
There's a parallel thread on the merits of linked data, that I just gave a couple follow-ups to..
🫧 socialcoding.. (@smallcircles@social.coop)
@reiver@mastodon.social @thisismissem@activitypub.space @mfru@mastodon.social I made a diagram yesterday that contrasts #ActivityPub and #SolidProject that is I think interesting to consider. In the past I've been very active on the Solid forum, and tried to get a collab going with #SocialHub community. A number of points that existed then, are still issues today I think. Like, though anyone could participate in the standards process via chat, the Solid team and Inrupt were not really interested in their community, hardly giving attention while people were building interesting stuff there. Also at the time basically all available code was Javascript, making Solid uninteresting or hard to access for other language devs. But I think biggest issue was that Solid didn't know what it was. It was positioned as 'personal data vault' on the landing page then (but not using this term), but was 'secretly' TBL's desire to reboot the #SemanticWeb. The new web would be all 'Solid apps'. But the adoption strategy for that didn't exist.
social.coop (social.coop)
-
@eyeinthesky indeed.
There's a parallel thread on the merits of linked data, that I just gave a couple follow-ups to..
🫧 socialcoding.. (@smallcircles@social.coop)
@reiver@mastodon.social @thisismissem@activitypub.space @mfru@mastodon.social I made a diagram yesterday that contrasts #ActivityPub and #SolidProject that is I think interesting to consider. In the past I've been very active on the Solid forum, and tried to get a collab going with #SocialHub community. A number of points that existed then, are still issues today I think. Like, though anyone could participate in the standards process via chat, the Solid team and Inrupt were not really interested in their community, hardly giving attention while people were building interesting stuff there. Also at the time basically all available code was Javascript, making Solid uninteresting or hard to access for other language devs. But I think biggest issue was that Solid didn't know what it was. It was positioned as 'personal data vault' on the landing page then (but not using this term), but was 'secretly' TBL's desire to reboot the #SemanticWeb. The new web would be all 'Solid apps'. But the adoption strategy for that didn't exist.
social.coop (social.coop)
I think a problem is more that instead of "ActivityPub has JSON-LD" you might also say that AP delegates to.. or even 'handwaves' to linked data.
#ActivityPub is linked data -->
Extensibility mechanism DONE"Which is either..
- By far not the case, if you consider the promise and power of ActivityPub
- May perhaps be true, if you have a very particular notion on what the fediverse is and isn't.
That last bit remained unspoken, so what AP vs. fediverse is, is really in the eye of the beholder. There exists no shared (technology) vision. https://discuss.coding.social/t/major-challenges-for-the-fediverse/67
With the extensibility mechanism unclear, there is no clear separation either to what is protocol and what is solution space, and there's continuous confusion around this.
I replied to @evan yesterday, as his remark would entail that all post-facto interoperability introduced on-the-fly by app impls would have to be honored now in the standards. What standards process does that give?
🫧 socialcoding.. (@smallcircles@social.coop)
@evan@cosocial.ca @kopper@not-brain.d.on-t.work @gugurumbe@mastouille.fr I do note that you argue for backwards "Fediverse-compatibility" here, and I wonder how that equates with backwards #ActivityPub compatibiity.
social.coop (social.coop)
-
I think a problem is more that instead of "ActivityPub has JSON-LD" you might also say that AP delegates to.. or even 'handwaves' to linked data.
#ActivityPub is linked data -->
Extensibility mechanism DONE"Which is either..
- By far not the case, if you consider the promise and power of ActivityPub
- May perhaps be true, if you have a very particular notion on what the fediverse is and isn't.
That last bit remained unspoken, so what AP vs. fediverse is, is really in the eye of the beholder. There exists no shared (technology) vision. https://discuss.coding.social/t/major-challenges-for-the-fediverse/67
With the extensibility mechanism unclear, there is no clear separation either to what is protocol and what is solution space, and there's continuous confusion around this.
I replied to @evan yesterday, as his remark would entail that all post-facto interoperability introduced on-the-fly by app impls would have to be honored now in the standards. What standards process does that give?
🫧 socialcoding.. (@smallcircles@social.coop)
@evan@cosocial.ca @kopper@not-brain.d.on-t.work @gugurumbe@mastouille.fr I do note that you argue for backwards "Fediverse-compatibility" here, and I wonder how that equates with backwards #ActivityPub compatibiity.
social.coop (social.coop)
@smallcircles It's even crazier than that. I saw the thread a few days ago where @cwebber apologized for JSON-LD in AP and @evan defended it (but for backwards-compat, not because AP is linked data). The "extensibility" claim is technical gaslighting since that's only true if you use JSON-LD processing of AP data (practically no one does and there's no requirement to do it). 🤪 Even then it's a weak form of protocol extensibility.
-
@smallcircles It's even crazier than that. I saw the thread a few days ago where @cwebber apologized for JSON-LD in AP and @evan defended it (but for backwards-compat, not because AP is linked data). The "extensibility" claim is technical gaslighting since that's only true if you use JSON-LD processing of AP data (practically no one does and there's no requirement to do it). 🤪 Even then it's a weak form of protocol extensibility.
Yes. The ad-hoc interoperability approach means that every developer is free to introduce any extension on the fly that exposes some functionality from their app on the fedi wire. They don't have to wait for anyone, or for standards to catch up. Suppose they designed it well, and now some new functionality is available for others to integrate with.
Should others do so, they have to include the app's namespace. This is saying: I accept you are leading in the specs here. It is taking an upstream dependency and not much different than what you do in JS/TS NPM and node_modules dependency hell world.
Peertube was the first to expand as:Video (not LD compliant then, dunno now) and if they have popular uptake, a newcomer in vid-related domain has a 3-fold choice for extensions:
1. accept PT de-facto standard
2. introduce my own
3. mix'n matchWhen choosing 3, the vid app that comes next can now mix'n match 2 vid platforms extensions. Good luck, future fedi..

-
@eyeinthesky @cwebber @evan @deadsuperhero
There are a couple of really great #IETF documents on protocol design and maintenance. You often see me mentioning protocol decay, which is only a paragraph in the splendid #RFC9413 Maintaining Robust Protocols.
The next section for instance is on detrimental ecosystem effects if you are either too stricly enforcing standards or are too laissez faire about them.
RFC 9413: Maintaining Robust Protocols
The main goal of the networking standards process is to enable the long-term interoperability of protocols. This document describes active protocol maintenance, a means to accomplish that goal. By evolving specifications and implementations, it is possible to reduce ambiguity over time and create a healthy ecosystem. The robustness principle, often phrased as "be conservative in what you send, and liberal in what you accept", has long guided the design and implementation of Internet protocols. However, it has been interpreted in a variety of ways. While some interpretations help ensure the health of the Internet, others can negatively affect interoperability over time. When a protocol is actively maintained, protocol designers and implementers can avoid these pitfalls.
(www.rfc-editor.org)
-
@eyeinthesky @cwebber @evan @deadsuperhero
There are a couple of really great #IETF documents on protocol design and maintenance. You often see me mentioning protocol decay, which is only a paragraph in the splendid #RFC9413 Maintaining Robust Protocols.
The next section for instance is on detrimental ecosystem effects if you are either too stricly enforcing standards or are too laissez faire about them.
RFC 9413: Maintaining Robust Protocols
The main goal of the networking standards process is to enable the long-term interoperability of protocols. This document describes active protocol maintenance, a means to accomplish that goal. By evolving specifications and implementations, it is possible to reduce ambiguity over time and create a healthy ecosystem. The robustness principle, often phrased as "be conservative in what you send, and liberal in what you accept", has long guided the design and implementation of Internet protocols. However, it has been interpreted in a variety of ways. While some interpretations help ensure the health of the Internet, others can negatively affect interoperability over time. When a protocol is actively maintained, protocol designers and implementers can avoid these pitfalls.
(www.rfc-editor.org)
@smallcircles “an interpretation that advocates for tolerating unexpected inputs is no longer considered best practice in all scenarios.” Somebody didn’t get the memo. lol
-
@smallcircles It's even crazier than that. I saw the thread a few days ago where @cwebber apologized for JSON-LD in AP and @evan defended it (but for backwards-compat, not because AP is linked data). The "extensibility" claim is technical gaslighting since that's only true if you use JSON-LD processing of AP data (practically no one does and there's no requirement to do it). 🤪 Even then it's a weak form of protocol extensibility.
@eyeinthesky @smallcircles @evan To be clear, I think json-ld has a lot of great ideas in it, and it's the extensibility and linked data compatibility (which was a strong group requirement) story we had at the time.
"JSON-LD is bad" doesn't really capture my views. "JSON-LD turned out to be too complicated for the majority of the ecosystem to work with, particularly when we gave the view that you could ignore it, except it creates a rift of interoperability between those who ignore it and those who don't and puts a burden on the latter who are doing their best to behave well" does match my views.
There are paths out of the situation, but I'm not confident in the discourse around them right now, and hesitant about how much I want to engage with it.
-
R relay@relay.an.exchange shared this topic