But there is always going to be some kind of a speedbump when sharing between places with different policies. When you have borders between things that are genuinely different (even if they're gratuitous differences), you have border issues. Bigger social networks mean you reach more people without going over a border, which encourages growth.
Borders are everywhere. In the enterprise space, you can look at the growth of Amazon and Google Cloud. In devtools, each programming language tends to be its own domain. (Which is why we call them "foreign" functions.)
I'll grant you the first part, but sharing is actually a lot harder than it used to be, these days. Try sharing a Facebook post or comment with someone who doesn't have a Facebook account...
> In devtools, each programming language tends to be its own domain. (Which is why we call them "foreign" functions.)
True, but we also develop FFI as a way to call those foreign functions, and meta-frameworks to enable cross-language interop (WinRT being the most recent prominent example of such). Worst case, you can use standard formats and protocols to at least exchange data. Whereas "walled gardens" tend to be deliberately hard to interop with, or even to extract your existing data from.
It's almost like some kind of weird digital feudalism. You're free to come and go, and if you want, you can live in the wild and take your chances. But if you want the safety of the walls and armed defenders, that comes with a lot of strings attached. And if you ever want to move out of those walls, you leave your plot and your house, with everything valuable on them, behind.