Sponsored by Travelzoo
$45 & up: Huge Hotel Sale view!
travelzoo.com - Great discounts on rooms for the holidays and beyond!
92 Comments
- dmcaudio, on 07/06/2009, -3/+78your = possessive.
you're = you are. - mithrasinvictus, on 07/06/2009, -8/+68MS wipe their asses with W3C specs, and then patent the modified specification.
- bandalor, on 07/06/2009, -1/+60That's a spec of the English language right there.
- Kamujin, on 07/06/2009, -13/+60Nothing worse than a hack programmer who can't follow a spec. I don't care if your Microsoft, follow the spec.
- binaryecho, on 07/06/2009, -7/+32Wow. I want to be shocked, but I guess since it's Microsoft I have come to expect this kind of non-compliance with W3C standards. IE anyone?!
- Chewie67, on 07/06/2009, -3/+25Two things here:
1. MS is always horrible with specs. The spec is the spec. They were developed for a reason -- so everyone knows how the browser will work. If you go off and do your own thing, you make life harder for all involved -- the developers, the users, and even MS.
2. This article is really a trivial example. In essence he's using a procedure that does a DIFF of two XML documents. It's kicking out any difference, regardless of how "significant" it is. Not exactly a shocking revelation. It's just not as smart as the author would prefer. - jhourcle, on 07/06/2009, -1/+22I'll agree on the order of attributes, but "<setting></setting>" and "<setting/>" are significantly different -- the first is the empty string, while the second one has no value (undef, NULL, whatever you want to call it).
I've had to deal with this issue almost every time that someone attempts to re-implement the client for a search API that I maintain -- the empty string matches only records where a value isn't set for that element, while a null (or leaving the element out) does no filtering / allows all records to match. - drmangrum, on 07/06/2009, -5/+24That's not very fair. If they did code to the specs 100% of the time, people would bitch at them the program doesn't do what they want it to do.
I'm betting the vast majority of people on Digg have NEVER seen an SRS document. Sometimes requirements are intentionally vague, sometimes they don't make sense, sometimes there are two completely contradictory requirements. When the programmer mentions these things, they're typically told to "make it work." - wadd, on 07/06/2009, -1/+17My experience with many years of working with MS code has been that if the spec wasn't written by MS then they don't consider it a spec.
- gilbes, on 07/06/2009, -11/+26Before you idiots get your panties in a bunch, the conclusions the author and most of you are making is ***** wrong.
First off, MS co-authored XML. They know the spec better than most, and the certainley know it better than you.
Second, he is bitching about XNodeEqualityComparer. XNodeEqualityComparer IS NOT PART OF THE ***** XML SPEC. XNodeEqualityComparer isn't even part of the MSXML parser. It is part of another library for querying data called Linq.
MS implementing some library in their own ***** has nothing to do with standards compliance. They can make it do whatever the ***** they want.
Just because this convience class doesn't work exaclty like you think it should when you misunderstand what it is for doesn't mean MS is ***** on the standards (that they created). - mrBitch, on 07/06/2009, -0/+12I'm still a little vague on your feelings towards Microsoft...
- ZippyV, on 07/06/2009, -2/+13Nothing stops the programmer from making his own function that can do what he wants.
- JoshReedSchramm, on 07/06/2009, -2/+12It should be noted there's a different between a technical spec like the W3C specifications and a customer facing spec or requirements document.
In general its a good idea to use a requirements doc as a guideline and not something set in stone. More often than not a customer doesnt really know exactly what they want when they work with you to build that type of spec. There's nothing wrong with that, it's imposible to plan out a huge project in advance and get everything right. The spec in this case should be a guideline to the actual decision making process.
Technical specs are meant to be followed though, if you don't other developers have no guideline for what they do. - alpha88, on 07/06/2009, -2/+12I don't think many people would have complained if Internet Explorer 6 had followed W3C specs, saving time, frustration, hacks, and workarounds.
If there's a spec, follow it. - lex0nyc, on 07/06/2009, -6/+15Well, obviously Nithya Sampathkumar is a dick. The rest of the company, well, it's Microsoft.
- jwhitman89, on 07/06/2009, -0/+8Don't like the way Microsoft does things? Install Linux or buy a Mac. Vote with your dollar instead of whining about it and then continuing to use their products.
- MWeather, on 07/06/2009, -0/+8Yeah, I always hear web developers praising IE's implementation of the box model. They like it so much they make an entire CSS file dedicated to each version of IE's box model implimentation!
- useful, on 07/06/2009, -1/+8god don't get me started on MS Office documents
<w:p>
<w:pPr>
<w:b/>
</w:pPr>
<w:r>
<w:rPr>
<w:b/>
</w:rPr>
<w:t>Is this bold?</w:t>
</w:r>
</w:p>
arghhh - wolfing, on 07/06/2009, -0/+7The guy should have posted a request for an addition after MS responded the first time. Once a function is released, people already have their code expecting it to function the way it does (regardless if semantically it should be different). Maybe a new function with a "_semantic" at the end to mean that it will compare semantically. Otherwise, if I expect the code to say "<a></a>" is different than "<a/>" and they 'fix' it, I would not be happy
- Ouze, on 07/06/2009, -4/+11You know, you can also take this so far in the other direction as to (also) be a giant pain in the ass. How about, say, everyone's favorite open source heartthrob - Mozilla Firefox?
For example, Firefox - when you open something, there is the check-box for "remember this for all files of this type" - you know how firefox will generally ignore that check-box and ask you every time, forever? Well, it keeps getting submitted as a bug, but it's not a bug, and keeps getting closed as WONT-FIX - since some obscure spec requires that they ignore your choice. Despite the fact that the desired functionality of the user is unambiguous, despite the fact the current functionality could best be described as "broken, and taking a huge dump on it's users".
https://bugzilla.mozilla.org/show_bug.cgi?id=45345 ...
But hey - it follows spec RFC 2183 section 2.2!!! - dalectrics, on 07/06/2009, -0/+7Dude, one post in a story is enough. 3 different posts all the same is overkill.
- mcprogrammer, on 07/06/2009, -0/+7I agree with you, but the documentation for the class should specify that the order is significant. I can't find that anywhere.
The class documentation just says it "Compares nodes to determine whether they are equal". The Equals method explains how they determine if two elements are equal:
"Two XElement nodes are equal if they have the same tag name, the same set of attributes with the same values, and (ignoring comments and processing instructions), contain two equal-length sequences of pairwise equal content nodes."
"The same set of attributes with the same values" doesn't say anything about whether order matters.
Basically, what I'm saying is that the MSDN documentation sucks in a lot of areas. I've run into several cases where I had to look at the source code to figure out what a method does because the documentation just had a one-sentence generic description of what it does. I was actually surprised the Equals method had as much detail as it did. - charlietuna, on 07/06/2009, -0/+6GENIUS!
- FredFredrickson, on 07/06/2009, -2/+7Because you're ensuring your product will work for 95% of the world's computers by doing so?
- inactive, on 07/06/2009, -0/+5Look I agree, but carrying on like an idiot is not helping our cause. Can you go stand with the pro ms crowd and argue for them ? - you will help alot more that way.
- dafragsta, on 07/06/2009, -1/+6Microsoft only gets to do this because they have a very substantial part of the web browser and operating system market. Imagine if video game consoles were based on a standard platform and there were tons of awesome new agreed upon specifications that could make games better and wouldn't require a substantial amount of work in the grand scheme of things to support, but the most ubiquitous brand refuses to support an updated standard and therefore game makers can't take advantage of these new specifications because of that.
The web would be a whole lot better if standards could be pushed into reality via the W3C much faster than they currently are. It took IE SEVERAL years to finally even support transparent PNGs. Web developers currently have to build their sites with hacks for IE when anything based on Gecko, Webkit, or Opera will handle them just fine with standards compliant CSS, XHTML, and JavaScript. - inactive, on 07/06/2009, -2/+6Wow, really? Because, you know, I just got the original specification from the W3C, and it says otherwise: http://www.w3.org/TR/PR-xml-971208
The first three working drafts didn't have Microsoft involved, but ever since then? Microsoft. I dunno where you got those 150 people from, maybe they went to a conference and said a few words about whether they liked XML or not and somehow that equates to co-authorship in your mind, I dunno, but maybe next time you should do some research of your own before ***** on someone else's work, since I found that out in all of five minutes searching. Grr. - dist0rtedwave, on 07/06/2009, -7/+11CRY CRY. I'm sure he could have easily applied the time he spent complaining to writing his own code and finished it. Alternately he could have gone back to google for 10 seconds and found some other code that actually did what he wanted.
If Microsoft doesn't make you happy, use something else. Losing business does more to hurt them than getting your complaint dugg. - PinkyTheWinky, on 07/06/2009, -0/+4I just learned something. Thanks :)
- mrBitch, on 07/06/2009, -4/+8RE: " .. doesn't mean MS is ***** on the standards (that they created)."
MS had one guy turn up out of a 150 member group of participants AFTER the original XML specs had already been submitted to the W3C.
MS did NOT create XML, they jumped on the XML bandwagon to kill Sun's java.
The funny thing is that XML was created as a direct response to the way that Microsoft had polluted and destroyed the HTML standards during the 1990's.
http://www.itwriting.com/xmlintro.php
" .. in response to the prospect of a Java-centric computing universe, Microsoft picked on XML as an alternative approach to the interoperability puzzle, and became XML’s greatest advocate.
.. Microsoft emphatically does not own XML, and the technology has transcended politics by virtue of its sheer usefulness. IBM is a big XML user.. " - Korberos, on 07/06/2009, -1/+5I highly doubt Microsoft has filed any United States patents on feces. That just seems illogical.
Perhaps you just don't know what 'literally' means. - DickBreath, on 07/06/2009, -1/+5Please tell me how this sentence in the spec is open to interpretation or has huge ambiguities:
"Note that the order of attribute specifications in a start-tag or empty-element tag is not significant."
Oh, but if we didn't let Microsoft code to "expected" results, then their ODF implementation wouldn't be such a mess that it doesn't work with any other implementation. Nice coding to "expected" results Microsoft! - swizzcheez, on 07/06/2009, -2/+6FTA: "This is by design.XNodeEqualityComparer was not designed to stricly adhere to the xml spec.Most people expect attribute ordering to be significant and hence XNodeEqualityComparer was designed that way."
Of whom is this "most people" that you speak? - ucbmckee, on 07/06/2009, -5/+9Have you ever read an internet RFC or W3C spec? They're monumentally open to interpretation on a lot of points. Given such huge ambiguities, it's not unreasonable to code based on expected results. Add to that that many 'specs' contain optional implementation details and it's not at all hard to have products that behave differently, while still honouring the specification.
- cfuse, on 07/06/2009, -3/+6MS codes their own implementation as consumer lock in, and for no other reason. For anyone at Microsoft (or anywhere else for that matter) to claim otherwise is a deliberate fabrication.
- theblt, on 07/07/2009, -0/+3I think we all agree that XNodeEqualityComparer is not a part of the XML specification -- of course it's not. It's confusing classes and methods such as this that are what costs us time and money in the end.
I don't remember who originally said this (maybe Robert C. Martin), but the quote was something to the effect that "clean code should do what you expect". In this case, the programmer wanted to compare two XML nodes too check their equality. Instead, this particular method simply compared a serialized version of the nodes. I don't work on Microsoft platforms but this is the first time I've ever seen a library method like this do something so useless. Hell, why do they even have this Comparer when all the developer would have to do is compare the toString values? So he can save a few lines of code? - inactive, on 07/06/2009, -5/+8Nothing is more of a pain then trying to get their stupid WCF junk to work with other systems.
Tried to integrate with AXIS (WCF Client, AXIS services) and it was a pure nightmare.
Ended up saying, "Screw it, this isn't worth the hassle" and just wrote the raw transmission BS myself. Kinda reinventing the wheel, but in the end it saved more time than me trying to troubleshoot which system was wrong: either Axis' WSDL or WCF's method of consuming it.
I read about similar situations from other users where half claim it's WCF taking shortcuts, and the other half claiming Axis doesn't generate complete schemas (which seems kinda unbelievable..)
They boast how open and awesome it is, how it can work with other systems, but in the end it's always something. - shinkou, on 07/06/2009, -5/+7They don't follow rules because they think they are the king. We all know that. What can we do? As long as people are still using their products, despite of how flawed they are. They have the money, they control the 3rd party developers, they kind of took over the industry long before the OSS movement.
Standards? It's nothing if no one spends time to implement. It will always remain as written words on the paper, nothing useful. It was MS who had the money to make all those happen, and of course, they flipped the standards around in their own softwares.
They have a long history of not following rules, but the game has changed. As a developer, I think we have the responsibility to show them that their era has gone. They have to follow rules conformed publicly. It is one of the reasons I support OSS. - TreatsTheBear, on 07/06/2009, -5/+7It's a vicious cycle. They write crappy software, people expect crappy software and they have to code to that expectation.
- jejones, on 07/07/2009, -0/+2The title should be qualified with "except when it's to their advantage", vide the ODF "compatibility" in the new MS Office.
- jsnelders, on 07/07/2009, -0/+2This beautifully exemplifies one of the things at the core of what frustrates the hell out of me with programming.
Programming is easy; trying to figure out the inane decisions of the people who write the frameworks and 3rd party tools is the really hard part. - mithrasinvictus, on 07/06/2009, -1/+3Functionality that gives users the impression that it can be used like DTP software, constructing what should have been a formatted text document out of a bunch of overlapping floating text boxes which probably will fail to render in anything but the exact same version of office it was constructed in.
- ddcool1124, on 07/06/2009, -1/+3Java is a pile of crap. Stupid bloated virtual machines should be illegal. Go Green. Save the Earth. Boycott Java.
- weif, on 07/06/2009, -1/+3And often enough, if the spec was written by MS prior to the release of whatever supposedly uses the spec (and that goes for version X and version X.001 of any particular product), they don't consider it to be a spec.
i.e. The product does A, B, and C, ergo: A, B, and C is the spec; rather than the spec is A, B, and C, ergo: the product is expected to do A, B, and C. - alpha88, on 07/06/2009, -1/+3But wouldn't it be nice if the function was already there?
- pilobilus, on 07/08/2009, -0/+2There are no more "bugs" in Microsoft products than in any other family of software. However, Microsoft does break a LOT of things on purpose, that look like bugs to the end user but are in fact features. Just making all users "administrators" by default on MS operating systems, and providing root access back doors in every version of MS Office assures that sales and technical support in the aftermath of attacks by "the hackers" increases Microsoft's income by 10% or more, year in and year out.
- 83457, on 07/06/2009, -0/+2The first thing that is obvious when starting with XML/HTML is that attribute order is insignificant. It is hard to comprehend why a tool wouldn't at the very least have an option to function in this manner.
- m3arvk, on 07/06/2009, -0/+2If MS want to say that attribute ordering is significant then they need to create a function with can unify the ordering across any number of documents, maybe using a schema of some kind.
- Hellahulla, on 07/06/2009, -0/+2I'm sure that could be sorted out by having an about:config or preference dialog option. Perhaps, if it really bothers anyone that much.
- useful, on 07/06/2009, -0/+2xslt that sorts the attributes of both documents that are being compared by ascending order, done.
probably ~10-20 lines of code that becomes completely reusable -
Show 51 - 96 of 96 discussions



What is Digg?