YMFUHBML

Tuesday, May 4th, 2010 at 9:33

YMFUHBML is a new form of markup language that I just invented. It stands for Your Mother’s Fucked Up Home Brew Markup Language. Actually, I only invented the acronym as the credit for the actual language specification goes to the International Guild of Incompetent Programmers.

YMFUHBML is designed to fuck up your mind and your XML parsing techniques. Whether your using XmlReader, XmlDocument or some other standards based solution, YMFUHBML is guaranteed to break it because, believe it or not, in one document it manages to break two important rules that are associated with real XML documents (there might be more discrepancies but these two annoy me the most):

  • XML documents should have a single root node
  • Attributes consist of name-value pairs

Not too hard now is it? I though so too but apparently some people (like the designer of YMFUHBML) even manage to screw this simple stuff. Take a look at the following horror which resembles a response message that I had to accept a while ago:

<status>ok</status>
<message>the request has been successfully received</message>
<file file.001>
foo
bar
quux
</file>
<file file.002>
baz
</file>

And yes, those are the complete contents of the response I get. Now to be honest, parsing this is not hard but my pet peeve is with the fact that some people who should know better mistakenly think this is XML when it is actually YMFUHBML. Where the single root node we all know and love? And what the fuck is that file stuff supposed to be?

If you’re not going to adhere to what XML is supposed to be then why the fuck are you using those motherfucking tags to add structure? Please, stop doing stuff like this that because it is wrong and gives the impression that you are a business developer who maybe should consider moving to another field of profession.

XML is so simple yet every time I hear that someone is going to give me some XML to consume I get YMFUHBML instead. In the end it all boils down to common problems like people reinventing the wheel and not using the right tool for the job which is causing a lot of unnecessary friction and annoyance.