Remix.run Logo
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.

quotemstr 2 days ago | parent [-]

Are you suggesting that a document format should be a monolithic controlled by one organization and is actually more open than one that allows multiple entities to contribute to an artifact without permission or coordination? You can think that if you want, but you have to actually argue for it, not just assert it, because to me, that's closed, not open.

Or is it that you just really hate UUIDs? Me too, man. Should have gone with reverse DNS. It's a technical and aesthetic quibble though.