Software is over coupled. Everything tries to be the platform and split the user base, so it control the tribe, the resources of the tribe and the focus of the tribe and most of the time, not intentionally.
That's a dense and well put thought. It makes me think of all those bloody systemd flamewars vs all the time I've seen here people praising unix pipes and standard unix tools as the perfect aproach to microservices.
Making things compatible without a common standard also has a cost. If everything is text optimized for appearance in a terminal, then how do you parse out the data to be used by a script?
The unix solution is offloading the complexity on the script, which makes all scripts more difficult to write.
We don't need more interchangeable standards. We need standards for different things.
The point in having standards is not to have the one ultimate standard that everyone uses, but to have a documented way to interoperate at all without interrogating the author or reverse-engineering.
Platforms does indeed split the user base...