2 ms·
Part of me wonders if this is a fatal flaw in the very concept of distributed systems. It seems to me that as soon as a protocol or technology loses its single
by SulfurHexaFluri 6y ago
Part of me wonders if this is a fatal flaw in the very concept of distributed systems. It seems to me that as soon as a protocol or technology loses its single authority (multiple companies write implementations) it becomes feature frozen since it would be impossible for multiple companies to come to an agreement on what the new features should be or getting them all to implement them.
If matrix actually does succeed and continue to change I think it will result in having only 1-2 server implementations and 1 client per platform. A hobby dev can't possibly keep up with all the features being implemented by a whole team working on the main client.
- Arathorn 6y agoit doesn’t have to be a fatal flaw. you “just” have to layer the protocol to give decent abstractions to allow diversity on top of each layer, so as each layer matures you just keep innovating upwards - like the ethernet/ip/tcp/http stack for instance.
- SulfurHexaFluri 6y agoThe problem I see is every time you drop an extra layer of innovation, you fragment the final product. For example, Apple adds person to person payments in imessage and it suddenly just works for every single imessage user. If someone did that as a feature on top of matrix you now have a situation where some clients support it and some don't so the feature never really gets used as its too unreliable. Maybe over time the feature rolls out to more clients but there will always be some devs who think "No I don't like this feature, I won't ever add it" I guess things are a little simpler here since it might be possible to implement new features without server changes as they may just work on top of the standard matrix spec.
- Arathorn 6y agoThis is a great example. Matrix has the concept of widgets which let you embed little webapps, which can be used as a compatibility layer for stuff like payments. For instance video conferencing is done in Matrix as a widget (Jitsi) for clients who just support widgets... but clients with native jitsi support (Element iOS and Android) integrate it natively rather than using a widget.