▲ | quotemstr 3 days ago | |||||||
Can you explain what's wrong with the concept of a container format that allows embedding subdocuments of different types? > zero consideration given to third-party apps and segment formats The reality is the opposite. COM serialization was specifically built to allow for composing components (and serializations thereof) that didn't know about each other into a single document. That's why it leans so heavily on GUIDs for names: they avoid collisions without needing coordination. That's a laudable goal, not pointless bloat. And the COM people implemented it pretty efficiently too! > C++ data structures What gives you that idea? Yes, the OLE stream thing was a binary format, but so is DER for ASN.1. Every webpage you load goes over a binary tagged object format not too different from OLE/COM's. But due to a persistence of myths from the 90s, people still think of the Office binary format as "horrible" when it's actually quite elegant, especially considering the problems the authors had to solve and their constraints in doing so. In many ways, we've regressed. > Markup The author of the article nails it when he says ODF is meant to be a markup language and OOXML is the serialization of an object graph. So what? Do people write ODF by hand? There are countless JSON formats just as inscrutable as MSO's legacy streams. Anyway, the idea that the MSO binary format was crap because it was binary, lazy, and represented a "memory dump" is an old myth that just won't die. It wasn't a memory dump, it wasn't lazy, and it wasn't crap. Yes, there are real problems with some of the things people put inside the OLE container, but it's facile and wrong to blame the container or the OLE stream composition model for the problem. | ||||||||
▲ | tannhaeuser 2 days ago | parent [-] | |||||||
> Can you explain what's wrong with the concept of a container format that allows embedding subdocuments of different types? A system managing opaque streams with handler apps registered via GUIDs is pretty much antithetical to open formats for data exchange. | ||||||||
|