Microsoft Open XML embarrassment: spaces go missing between words
itwriting.com
itwriting.com
No, the point was to preserve a monopoly. The stuff about preserving fidelity was just a smokescreen since anyone paying attention knows that Word has a long history of changing formatting depending on which printer you have plugged into a machine. If you want that kind of archival then use the PDF/A standard.
Copyrighting the file format puts them in legal hot water: since it is a de facto standard, trying to prevent competition would likely violate anti-trust laws. This way they can appear to be open whilst being closed.
For one thing, the files office generates and consumes are significantly different from the format as specified in the ECMA and ISO standards. The schemas for ECMA-376 will specify elements as occuring in any order, while Excel will require those elements to appear in a fixed order. Tons of tiny problems like this exist everywhere, and you only need one mistake to create a malformed document. The machine-readable XML schemas provided by Microsoft will not work without massaging.
The format also makes it very difficult to make simple in-place changes. A good example of this is what you might consider the most basic information in a spreadsheet- cells. Cell tags are contained in row tags which are contained in a sheetData tag. Rows contain their row number as an attribute, while cells contain their A1 "row/column" ID. This means if you remove or reposition a row in a spreadsheet you must update every cell in every subsequent row.
How about extracting a string value from a cell? The format makes it possible to store inline strings directly in a given cell, but Excel itself never uses this functionality. Instead, the cell contains an index into the SharedStringTable, which is stored as a separate XML document. If you delete or modify a cell, it might be referencing an SST entry that is no longer used. The only way to know is to search the document globally, remembering that dozens of different elements could potentially refer to a shared string. If your goal is to avoid bloating documents with junk, you have to solve this problem for a number of cases- style references, fonts and more.
If you want to modify OOXML documents in a robust, thorough manner, you'll deal with tons of issues like this.
For instance the SharedStringTable is something that made a lot of sense when documents had to fit on floppy disks. Excel is 26 years old, a when you evolve the file format for as long, while trying to maintain backwards compatibility, you'll inevitably be stuck with a messy format.
Although - all things being equal - unused entries and the potential for bloat are undesirable, they are rarely the primary goal for a project. Considering that compression is built into the file format, outside of outlying projects it probably does not count among the chief considerations of a typical project (even if it is aesthetically unappealing). And again, garbage collection within a binary format is an even more challenging task.
This is incredibly naive.
Microsoft was starting to fill pressure because some government contracts require a ISO standards if those exist -- and OASIS gained ISO standardisation, making it all of a sudden the ONLY document format for those contracts (And OpenOffice / KOffice the contenders).
Microsoft was repeatedly invited to participate in OASIS. They wouldn't.
Microsoft rushed it through ECMA, which acted as a rubber stamp, because of its fast-tracking agreement with ISO. Microsoft than stacked the local ISO chapters in its favour (with ridiculous results such as in Sweden) in order to get it approved.
And Microsoft, in fact, didn't actually implemented the OOXML spec that they published. A spec that includes attributes like "doSpacingLikeWord95"...
You've either drank the microsoft koolaid, totally unaware of history, or willfully naive. The only raison-d'etra of OOXML is to preserve Microsoft's monopoly.
It should serve as a testimony on how hard it is to implement Office Open XML. Not even Microsoft can get it right.
Microsofts implementation is incompatible to what ISO specified, mainly because in the ISO standardization process, ISO dropped some of the byzantine stuff in OOXML. Microsoft never adjusted its implementation to that, so AFAIK today there is no implementation of the standard in existence.
Small deviations from speed limits are not particularly harmful, but small deviations from the standardisation process here or breaching insider information rules in banks make a mockery of the system. They can pass the infractions off as unavoidable incompetence, but really the system should not except these specious half-truth excuses in these circumstances and should come down much harder, sooner and more often.
This explains it better than what I can write:
OO.org/LibreOffice doesn't even conform fully to the ODF standard. See issues like http://www.zdnetasia.com/ooxml-expert-odf-standard-is-broken...
Simple and elegant = less bugs.
XML is the epitome of over engineering.
Trying to create a bug-compatible version of .doc is hard, as the sterling efforts of OpenOffice and others have shown. An attempt to create one in XML, by the very people who were best placed to just document the original format is way beyond good or bad engineering.
Come on. Implementing something you invented should be easy. I would understand if the [Open|Libre]Office folks got it wrong, but Microsoft? The same company that basically discredited ISO (and badly damaged its function afterwards) in order to standardize this monstrosity? To not even bother to implement its botched bogus standard correctly is beyond insulting.
And yes, of all things wrong in MS Office Open XML, the bugs are the least important.
And it happens in Word 2010 when I try to open the same ODT file.
Bugs happen.
But one could assume they could, at least, implement correctly something they invented.
Software is way harder than that.
I find it ludicrous that Microsoft could write the spec, find the resources to corrupt the process at ISO, discredit a valuable institution, cripple it by inflating membership with members that don't participate on any other issues in order to promote a standard that aims to be impossible to implement by third parties and be unable to command the resources required to implement it correctly in the first place.
Didn't they have a reference implementation for the standard in the first place?!
Office has code dating back to the 80s. Read more for a backstory http://www.joelonsoftware.com/items/2008/02/19.html
What's the excuse? They couldn't hire programmers to correctly implement their own spec years after it being published?
You did, in a way. By saying this:
>>I think Microsoft's view of software quality has contaminated the industry.
>They couldn't hire programmers to correctly implement their own spec years after it being published?
Throwing bodies at something doesn't make it right in software engineering. Haven't you heard of bugs and issues in Google's or Apple's products? After all, Apple is a bigger company now.
I was going to link to some Apple bugs but Apple Discussions was down (cue 'why can't a 200+ billion company keep their forums up? Can't they hire more people to fix it?' )
Unable to add beyond 100 pages to document(maybe they need to hire more people to hit 200?) http://discussions.info.apple.com/thread.jspa?threadID=26879...
http://arstechnica.com/apple/news/2010/07/apple-looking-into...
You mean you interpreted as me saying something about Netscape.
> Throwing bodies at something doesn't make it right in software engineering
Usually no, but Microsoft can throw a lot of bodies and rebuild from scratch, this time with good engineering.
> Apple is a bigger company now.
I don't think so. It's just more valuable.
Rewrites rarely make sense at all. Just see how old some of the code thats in widespread use is. Android is built on Linux that started in 1991(ignoring that Linux was based on the even older Minix and it's Unix roots). OS X/iOS are based on BSD, Darwin and Unix which are quite old.
See http://www.joelonsoftware.com/articles/fog0000000069.html
>I don't think so. It's just more valuable. The point still stands.
I think that allowing to launch better, faster, safer, leaner and stabler versions faster with less bugs and for less money, while, at the same time, uncovering and correcting bugs that have been in the codebase for decades would be a plus.
> ignoring that Linux was based on the even older Minix
That's good, because it was not. One could say it was inspired on Minix and Unix.
> OS X/iOS are based on BSD, Darwin and Unix
OSX is more closely related to NeXTStep
Your history lessons are failing you.
Did you even read the link I provided?
Netscape killed itself in rewrite, MS almost did that with Vista before hitting reboot and starting over with old code and now you would want MS to undertake a super expensive rewrite? Things rarely work so ideally in the real world, especially for humongous feature/code bases like Office.
Attributing Netscape's demise to a rewrite of the browser is a bit exaggerated. They were under enormous pressure with a company with more resources to spend monthly than their entire market cap and giving away a browser bundled with Windows. The pressure to deliver new versions made them cut corners and allowed the browser to accumulate an enormous quantity of kludges that culminated with the need to throw it out and restart from scratch.
If anything, they should have been rewriting from the start, never allowing the cruft build up. It's an investment that pays back more often than not, specially if you are under the pressure to deliver new features quickly.
BTW, your fixation with Netscape is interesting too. You brought it up and tried to reason I did. That's also something that escapes me.
Why would a full rewrite of Microsoft Office be so expensive? How much did Sun, Oracle and independent collaborators put in OpenOffice anyway? Microsoft has the resources for that. The reason they don't do it is because they don't need to.
If the ISO process had followed its normal course, the final OOXML spec would have been close to what went in, with a few fixes. Instead, IBM and a few others tried at every step to stop the process, and if they couldn't stop it, they pushed through significant changes to the spec. In effect they changed the process from standardizing (with some cleanup) an existing format into writing a new format.
Managing the tens or hundreds of millions of code dating back to the 80s is not easy.
http://www.joelonsoftware.com/items/2008/02/19.html
When it's MS, the comments and moderation are always about malice and incompetence, even on HN.
I remember someone on Reddit calling HN an Apple fanboy club. I guess they're not that far from the truth looking at the comments and moderation for the articles here.
> Managing the tens or hundreds of millions of code dating back to the 80s is not easy.
It seems they should tackle an easier problem then. This one is, evidently, too hard for them.
> When it's MS, the comments and moderation are always about malice and incompetence
Incompetence, malice and... What would be the third explanation?
> I remember someone on Reddit calling HN an Apple fanboy club
It's been a long time since it's not.
>Incompetence, malice and... What would be the third explanation?
Nothing really, but my point was about all the negativity in the comments and moderation when it's MS vs. many other companies. I don't like Microsoft but I don't think they deserve such a raw deal while other companies get a free pass for very similar issues.
That's absurd. So you're saying there's no Apple bugs in Quicktime or Cocoa? You're saying there's no bugs in Emacs that Stallman wrote? You're saying that there's no bugs in Mathematica written by Wolfram? You're saying that there's no bugs in Java produced by Sun? You're saying that Ken Thompson wrote no bugs in Unix. Stroustrop wrote no bugs in C++.
I've never seen a non-trivial program, standards-based or not, that is bug free, period. Not one.
Heck, there's a 30 year old bug in binary search that largely went unnoticed -- even Donald Knuth missed the bug!
Bugs happen in trivial programs. Any non-trivial program will have bugs.
This is completely insincere. Unless you're willing to say the same thing about ODF and virtually every other file format that exists, since I can find bugs implementing just about all of them from their core proponent.
Sounds like someone who has never implemented something more complicated than a hello world.
In the past 25+ years I got my share of bugs. But having a correct implementation of a spec is kind of the only proof you can have the spec is complete and implementable.
Not having one is just sloppy.
I gather being impossible to implement by third parties was a design requirement that was accomplished. What I find surprising is they got carried away and made a spec they couldn't implement either.
> there is no way to tell if the spec is implemented correctly
That's why a correct open reference implementation is a must. You can always say that any corner cases can be resolved according to the code.
When you make your spec excessively complex you are just asking for trouble.
This spec, BTW, exists for the sole reason as to legitimate a Microsoft format as a standard competing against ODF. It exists not to be implemented correctly, but to fragment the marketplace, preventing the standardization of something Microsoft cannot control and use as leverage.
ODF was never a feasible alternative. First, Sun retained veto power via the threat of patents over ODF. Sun's patent grant for standardization was limited to a particular version of the standard and any future versions whose standardization Sun participated in. If they wanted to derail attempts to take ODF in a direction that they did not approve of, they could withdraw from the committee leaving the standard unprotected from their patents.
Second, Sun made it clear that ODF was only going to have those features necessary to support Star Office. There were attempts to make it more general, so that it could be a universal format, but Sun squashed them.
Choose between 'sloppy and shipped'(most software) vs. 'never ships because of targeting perfection' (GNU Hurd?).
> <sad story about a bug>
> wasn't going to rewrite my 20 page report.
And the moral of this story: don't use software that is officially of "beta" quality for important work. This is not specific to MS Office.
Link to original thread on Microsoft forum: http://social.answers.microsoft.com/Forums/en-US/wordshare/t...
I'm assuming most people that fail to get invited to job interviews because missing spaces make their resume/cv look careless to a prospective employer opening the file in Word 2007 probably aren't going to be aware of the reasons behind the decision...
You are not guaranteed to have your layout preserved when printing. This can be for a variety of reasons, but it could be simple stuff like having your file in A4-format and your printer only having papers of type "Letter" or something equally silly. In cases like these, Word is forced to reformat.
If you need or rely on a 100% accurate re-representation of your content, Word should not be your tool. Never. Use PDFs. Simple as that. If you are writing a normal texts however, it will probably never be a real problem which you will even notice.
Now, my question to the author (should he check out HN): How on earth is this related to OOXML? Where is the smoking gun saying this is a bug in the file-format? I honestly don't see it, and I don't see anyone else here questioning this unbacked claim.
I honestly expected better from HN.
And the title implies that, apart from MS Office Open XML, Office is not embarrassing. One may disagree with that implication, but the title is more specific.
Or a Mac.