Interesting ideas. I think that anytime you pass data between code bases, you're going to end up converting it to/from json, xml, or some other intermediate format. It's a cost that I don't think we can avoid.<p>If you think outside the centralized server, I could fairly quickly implement my fragment of a distributed twitter. It's a matter of declaring a few objects/types, and writing code to do CRUD for my locally hosted parts, replicate those to some publicly accessible file host/web page, and them write an engine to scan all the other sites where the people I follow publish their data.<p>Two things that can't be replicated:<p><pre><code> 1> blocking of users. Once data is public, you don't get it back.
2> anonymous comments or replies. This would require scanning all replies, even of people you don't follow. It's possible this could be a service from a 3rd party aggregator.
</code></pre>
What I'm seeing most of all is a glimmer of what is possible if you don't have to worry about security, and just solve problems. The walled gardens are a result of security issues, the network effects are a result of the small number of walled gardens. <i>If</i> you can tell your computer to do function X with data Y, <i>and</i> there is NO possible way it could get hijacked or confused into doing Z, then this could work.
The closest thing we've had might be Lisp Machines, but that didn't work out.<p>That's why Emacs is still great: users can do whatever they want with it, and they do.<p>To a lower degree, we can sort of do that with workflow engines on the cloud (ex: Azure Logic Apps), or locally (ex: iOS Shortcuts).<p>As a user, I like being able to do that, but I do not like having to maintain my partially working thing, nor do I want to spend time ensuring it works as I expect (aka doing QA) outside of what I use it for today.
This reminds me of Microsoft ActiveX - all sorts of programs could embed each other, talk to each other, they had (some) compatible types and easy to use IDE (Visual Basic)<p>But even then, it did not get picked up. Sure, you could do a lot with MS Excel, but non-Ms software often had spotty or missing ActiveX support.
I often wonder if there is a better way when passing data between systems and needing to map trivial differences in data to satisfy the receiver of the data