▲ | unscaled 3 days ago | |
This may be nitpicking, but the complexity in OOXML is not "necessary", at least not in the sense of what Fred Brooks would call essential complexity. As OP clearly demonstrate, the complexity in OOXML is not artificial: there was never some grand conspiracy by Microsoft to create a format that competitors will find it hard to implement. But very little of this complexity is necessary for a standard interoperable document file format. The background was that the EU started pushing for a standardized document exchange format, and several governments started implementing regulations requiring the use of this format — Microsoft now had some very big customers which urgently needed a feature: a standard document file format. Microsoft _could_ have implemented and submitted a new format that doesn't include slavishly reflect their in-memory object graph and legacy issues. Or they even could have just adopted ODF (shudder). But they've chosen the easy way, because, frankly, they probably just didn't have the time. They took the accidental complexity which was the hot mess Microsoft Office internals (like a buggy date format) and serialized it to disk. It was never an ideal solution, but this was quick to implement. That's just a classic case of technical debt: Microsoft needed to deliver a feature fast, and they were willing to make compromises. The crazy political shenanigans Microsoft had executed to standardize their technical debt are ironically just another form of accidental complexity. | ||
▲ | simoncion 2 days ago | parent [-] | |
> [T]here was never some grand conspiracy by Microsoft to create a format that competitors will find it hard to implement. No, it's just an ordinary conspiracy. Everywhere in the spec you see shit that says "Do it like Word95 does" or "Do it like Word97 does" is an intentional aspect of the standard that makes it unreasonably difficult for anyone who wishes to faithfully read or write documents in this format to do so. It is inappropriate for an open standard to define behavior in terms of an undocumented proprietary black box. The primary reason for an open standard to exist is to permit interoperability. Anyone who has read nontrivial portions the standard would argue that ISO shouldn't have standardized OOXML as it was. It's a damn shame that Microsoft acted in bad faith to exploit ISO's rules [0] in order to ram a very poorly-specified standard through. It's always sad when people and organizations that should be acting pro-socially choose to do the opposite. [0] By paying money to stack the organization with a bunch of entities whose only interest was to vote "yes" for the ratification of this standard, natch. IIRC, ISO had to modify their rules again after the OOXML vote because they couldn't get quorum due to those one-issue voters refusing to show up for future business. |