So, if I understand correctly, Matrix's serialization is such a mess because of its history synchronization?
I get not keeping message blobs around (easiest way to send things portably) because lol storage, but instead solving the issue of recreating messages by standardizing yet another version of JSON to guarantee the ordering...
Couldn't you just keep a map of ordinal numbers to fields in the object and use that instead to guide signature verification?
That'd require much less code.
Or I guess ordinal to path, if you decided to have yet more layers of embedded objects instead of one flat layer.
Why do I consider requiring less code/logic a positive?
Less opportunity for errors to sneak in.
> less code/logic a positive
Less code is very positive, also for other reasons than errors sneaking in: simplicity is needed to allow anyone to understand and work with the code at all.
Taking it to the extreme for the sake of argument: if code gets infinitely complicated, then we lose the whole point of having access to the source code, because we cannot do anything with the source code as we cannot understand it.
Making things complicated means undermining software freedom.
@lispi314 yes!
Then there is also the aspect of where power lies: a simple tool can be useful for everyone, including individuals, also individuals who are not experts.
Making the previously simple tool more complicated means that it is no longer useful for individuals, moving towards a scenario where only a large organization can really benefit from it.
1/2
@lispi314
In this way, large companies have an incentive to make things complicated, because in that way they are moving power away from individuals, to those companies. "Open source" does not protect us from this threat.
If our interest is the public good, then we should strive for simplicity and we should not expect huge companies to lead the way because it is not in their interest.
2/2