| ▲ | mangecoeur a day ago | |||||||||||||||||||||||||||||||||||||||||||||||||
This is not true. In my company I decided we would not depend on Microsoft products. We use kSuite that offers everything MS does, ~90% cheaper. The one real problem we run into is PowerPoint decks that look different or get corrupted when used across different Office suites, including ones that are focused on Microsoft compatibility like OnlyOffice. Proprietary formats are a clear lock-in tool, because the cost of dealing with incompatibility is higher than the cost of paying the piper. (Although me being stubborn I made claude rewrite the OOXML to behave, but that's an absurd thing to need to do!) If open formats were the standard and could be reliably exchanged, it would remove a big reason to ever use Office products. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | inigyou a day ago | parent [-] | |||||||||||||||||||||||||||||||||||||||||||||||||
They are a lock-in tool but they are also completely natural and available to everyone. Have you ever written any software that saves files? Is its file format proprietary? Some are more complicated than others, but I'd bet dollars to donuts you didn't make your format an ISO standard. At best you wrote some Markdown explaining it broadly (and some of your code has drifted so that is incorrect now), at worst maybe your code isn't even commentated. And even when the basic format is documented, the important details rarely are. If you're making an Office competitor you have to render fonts pixel-perfect to how Microsoft renders them, or you'll wrap lines at different places and the cascading differences will inevitably put some element like a floating image in a different location than it's meant to be, messing up the document. And yet, does Microsoft document how they render fonts in so much detail that you can code it identically? No they don't - the only detailed enough spec for that is the code itself. Once I wrote a custom Minecraft server from scratch. The client-to-server protocol was well documented. It was straightforward to make a grid of blocks and let the player place and destroy blocks. But as soon as anything detailed enters the picture, it's game over for accuracy. When you break a block in Minecraft it turns into a "dropped item" entity, which you can pick up. The dropped item has physics. The client predicts the physics. If I didn't precisely emulate the client's physics, then the entity would glitch up and down as the client predicts it falling down and the server says it's still in its original spot, or fell down a different amount. The only detailed enough reference is the code itself. One time I tried to write Doom for a platform, from scratch. I got the 3D BSP renderer working and could move around a space with walls. I was looking for reference for how to implement the rest of the game and didn't find it. I didn't realize you're supposed to port Doom to a platform by starting from the original Doom code and not by writing it from scratch, because the only detailed enough reference is the code itself. One time I tried to write an N64 emulator. I downloaded all the documentation I could find and got writing. My emulator ran a large portion of Mario's startup code and then I got stuck without enough information to proceed. I didn't realize that most N64 and later emulators are ports of existing emulators because they've been battle-tested and - say it with me - the only detailed enough reference is the code itself (or a real N64 which I didn't have). Basically working code is working code and you can never replicate it precisely without either years of work or actual copy-pasting. Even protocols designed to be reimplemented many times have inconsistency problems. Look up HTTP Request Smuggling if you haven't already. More benignly, see the controversy on JSON comments. The innovation of PDF was that it precisely specifies the font and layout of every element of the document, trying to leave nothing to chance. There are still differences between PDFs in different viewers but they are much less important than the differences in a Word document because the PDF specifies the exact placement of every character, because Adobe knew it wouldn't be possible to rely on word-wrap algorithms being identical. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||