@deadsuperheroSean Tilley

Right now extensibility of shapes up as custom app-by-app app-centric development where individual devs just pragmatically throw new stuff on the wire, and when their app gains any popularity or other apps to integrate in a similarish application, things are bolted onto that in random ways. That whole story really constitutes a Big Ball of Mud anti-pattern that only introduces protocol decay, tech debt, and whack-a-mole programming, that is very hard to get rid of once there exists an installed base.

The reason that we do things that way is very understandable. It works in a grassroots environment where indivualist devs find it very hard and not valuable to collaborate at scale in what amounts to a kind of design-by-consensus process. But it comes at a high cost, where interoperability is basically out the door and any app has to be shaped as a pretzel and adopt all the quirks introduced by predecessors in a particular app domain to fit itself on the wire.

@deadsuperheroSean Tilley

It does not need to be that way. I am quite happy after all (after being initially frustrated) by how has disrupted things, and opened the eyes of devs in the ecosystem that we must act or lose out (stay niche, which may be fine too) to the Atmoshpere and how it enables devs to focus on service and product delivery instead of low-level wire plumbing and continuous breakages.

ATProto also shows the way that we can now follow on the to catch up again: cocreate a similar robust basis for people to build on. had the advantage of a greenfield start and dedicated team unburdened by past decisions. And they build this whole Lexicon system and ways to introspect functionality.

We can do that too, solve the conundrum, and create an extensibility mechanism that allows devs to focus on service modeling. The more introspection this mechanism allows for, the less design-by-consensus is required, easing expansion to new domains.

0

If you have a fediverse account, you can quote this note from your own instance. Search https://social.coop/users/smallcircles/statuses/116096678450589882 on your instance and quote it. (Note that quoting is not supported in Mastodon.)