Opera Claims Microsoft Has Poor Interoperability
Noksagt writes "Opera CTO Hakon Lie has countered the claims that Bill Gates made regarding Microsoft's superior interoperability last week. He points out their invalid webpages, MS's unwillingness to serve the same content to different browsers, IE's poor CSS support, tardy documentation and limitations of their XML format, and more." From the article: "You say you believe in interoperability. Why then, did you terminate the Web Core Fonts initiative you started in 1996? You deserve credit for starting it, but why close down a project which could have given you yet much good will? (Verdana sucks, but Georgia is beautiful!)"
After .Net sucks and Solaris, JVM suck too, I believe we're entering a new era in 2005, where litigation is a past tense.
It's just so much easier, and more importantly cheaper, to attack competitors like this.
Rock that crushes, Paper & Scissors that don't matter.
I'm not much into the fine arts, but someone's written an opera about Microsoft's poor interoperability?!
I can't wait to hear the fat lady sing in this one!
I'm a big tall mofo.
Dave Hyatt, who writes a blog about his development on Apple's Safari, has an amusing anecdote about developing CSS2 support in Safari, and how IE's piss-poor support of standards forced him to remove it in Safari.
From the blog:
"Sometimes trying to support the standards can be a real pain.
While trying to improve our CSS2 compliance, I recently did a big cleanup of our block layout code, including the code for handling floats. I made what I believed to be a fairly innocuous correction to follow the CSS2 specification. Here's the scenario.
Lets say you have a div that is set to 300 pixels in CSS. You then put a 250 pixel wide float inside that div. Immediately after that you have a 100 pixel wide overflow:hidden div. All sizes have been specified in CSS.
Now here's the pop quiz. What do you think the layout should be? Should the overflow div:
(a) Be on the same line with the float and spill out of the enclosing 300 pixel div
(b) Be placed underneath the float, automatically clearing it because there is insufficient space for
the overflow div next to the float
Before I give an answer, lets see what the CSS specification has to say on this issue. Section 9.5 on floats, fifth paragraph.
'The margin box of a table or an element in the normal flow that establishes a new block formatting context (such as an element with 'overflow' other than 'visible') must not overlap any floats in the same block formatting context as the element itself. If necessary, implementations should clear the said element by placing it below any preceding floats, but may place it adjacent to such floats if there is sufficient space.'
My interpretation of this language is that there must be sufficient space for the table or overflow:hidden element to fit within the containing block. If not, you should clear. That's what I implemented. So in my opinion the correct answer to the question above is (b).
I decided to see what other browsers did. I started with Gecko. Gecko chose (a). Gecko always does (a). It is at least consistent if - in my humble opinion - incorrect. Gecko chooses (a) regardless of whether you pick strict, almost strict or quirks mode.
Next I tried WinIE, and this is the part that blew my mind. Depending on whether the float was an image or a table, the float was left or right aligned, the table specified that it floated via the align attribute or the float CSS property, and on whether or not the normal flow element was declared as a sibling or not of the float, I could get completely different results! The level of inconsistency was astonishing.
I was able to watch WinIE do clipping in one case, to wrap in a second case, to not wrap in a third case, to overwrite content in a fourth case, all by just tweaking the parameters outlined above. It's no wonder Web designers have no idea how to code a page to standards when they have to deal with a layout engine that is so horribly inconsistent and buggy.
Naively I opted to implement (b) and to hope for the best. Unfortunately the bugs immediately started pouring in. finance.yahoo.com was broken for example because it used an old-style align table and relied on it not wrapping underneath the float. Undaunted, I simply added a strict mode/quirks mode check and opted to do (a) in quirks mode and (b) in strict mode.
The bugs kept coming in though. Next was versiontracker.com, a page that is actually in strict mode and relies on an overflow:hidden div to spill out of a containing block rather than wrapping.
So now I really have no choice. This is an example of where the CSS2 standard simply can't be followed because buggy layout engines have set a bad precedent that the rest of us have no choice but to follow.
It's a shame that Gecko does not do the right thing in strict mode at least, but I suppose they had no choice in the matter either."
"Let's PRAISE Microsoft instead."
I'm so glad Microsoft brought Opera to my attention! Go Microsoft!!
"Derp de derp."
It looks like MSN's markup is more valid then Slashdot's is.
And more info here, where the Opera crew explains how M$ deliberately cripples www.msn.com pages.
It was previously commented that Microsoft is going down the tubes because of several factors, like IE not being updated in years (except for security patches), and Longhorn being way late. This is just another example. The smell of rot from the direction of Redmond is getting stronger.
I'm quite frustrated when people hardcode in fonts - even linuxsites code in font's that really look awful on a (my, at least :p) linux system. Use the css attribute font-family: sans-serif instead of font-family: Arial, Verdana, sans-serif! Then we (who actually browse the pages) can choose our favourite fonts. I like Bitstream Vera Sans for sans-serif fonts.
Robert Scoble, Microsoft's chief humanising officer has posted a response to Hakon's letter.
Apparently, they are working hard to fix it in IIS 7.0 and the next version of ASP.NET.
Apparently.
Ziga
Thing about Word 97 is that it was unwilling to save in word 5/95 format. This is something that MS refused to fix for the better part of a year.
In the meantime, any company that bought a new PC was only offered word 97 for the new machine. This meant that, the first time they saved a document that needed to be read anywhere else in the company, all recipients needed to buy the '97 version to read it (much less to edit it). You could save your document in RTF format, but the '97 RTF format was sadly broken.... Back to plan A.
MS did, in time, release an official plugin that allowed you to save in word'95 format (as long as you were willing to work your way thru the warning messages), but I don't believe that it was possible to set '95 as the default save format, so -- sooner or later you'd accidently just 'save', and the next thing you know, your recipients can't read your document.
The end result of this is that MS raked in Billions of dollars in spurious sales by forcing people to abandon all older versions of their word processors. This is part of the way that they cemented their monopoly on the office software market.
_____
Then of course, there's the NT filesystem that is sorely short on public documentation, and almost impossible to figure out. As far as I can tell, Microsoft is entirely uninterested in letting others interoperate with it. In fact, I'm guessing that they put in some strange land-mines just to piss off people trying to use it other than from inside of the most recent versions of Windows.
Free Software: Like love, it grows best when given away.
Supports Windows NT/XP/2K/Pocket PC. Now that's interoperability! NOT!
It's like C# being multiplatform... multiple windows platforms...
=-=-=-=-=-=-=-= - The Celtic - =-=-=-=-=-=-=-=
I'm working on my first .Net project at work, where I have to provide compatible HTML. We spent three hours figuring out all the oddball stuff .Net does to HTML, then I spent a day writing up documentation on it. During the documentation review, we opened a demo page in Mozilla instead of IE, and all the Panel-control-created div tags were replaced with table sets. Imagine our surprise.
As we started digging, we started finding lots more stuff like this; for example, tables get a style of "border-collapse: collapsed" by default in IE, which is a tag that IE uses to tighen up table structures (into non-standard measurements) while other browsers ignore the tag. There's no reason for this tag to be there, except to guarantee that tables will look different in IE as compared to other browsers.
The punch line, of course, is that this "feature" can't be turned off. So now we either have to burn a lot of extra effort to validate multiple sets of rendered HTML, or we have to give up alternative-browser compatibility -- which I am sure was the point in the first place.
(few things microsoftie make me seethe, but this one does...)