Thursday, 26 May 2011

XAML is silly

Someone came into work today with a t-shirt saying:
<canvas>
ideas go here
</canvas>

I said it was HTML5, he said it was XAML, especially since it is a Microsoft shirt.
Now, he is technically correct, but I hate the term anyway. This may not be entirely correct, but this is how I see the situation:

Here's the thing, XAML means "Extensible Application Markup Language" - it's XML with an A inserted. What is it, though? How does it differ from XML?

From what I can tell, it doesn't.
XAML is just XML interpreted by a program in a particular way, it is a subset of XML. As a language, it doesn't differ or add anything to XML. The difference is in how the XML is interpreted by an external program.
As such, XAML doesn't deserve to be called a different language.

It's not like HTML - since HTML4, HTML has incorporated XML, becoming XHTML. But XHTML is visibly different to XML (as a major difference, HTML has attributes within the tag definition itself, but XML's "attributes" are sub-tags)

Just to re-iterate, I'm going to double check all of this, but as of right now, this is how it seems to me. XAML is not a language, it is an extension of Extensible Markup Language (XML), with no differences that can justify calling it a separate language.

4 comments:

Jon Dowland said...

XML describes pure syntax. An "implementation" of XML (such as xaml, or XHTML) extend it with something else: not quite semantics, but rules like "body must go in HTML". And probably semantics as well. They harness the power of "outsourcing" syntax to XML, which allows for tool reuse.

The w3c have disbanded the XHTML working group and 1.1 remains unfinished. The future of the web is HTML again: not the XML-dialect XHTML, but a derivation of HTML4.

Who is driving it and what it's called are a complex story: read up on whatwg.

Jon Dowland said...

I forgot to say: XML has attributes too, but implementations are not consistent as to when they use attributes and when they use child elements.

Jon said...

It's a common convention for technologies that use XML syntax to have a name like something something Language. Some examples are XUL, which is Mozilla's UI markup language, or MathML. There's a more complete list on Wikipedia.

fragglet said...

XAML is just an XML schema. XHTML is another one.

It's one specific use of XML. Basically they're different layers.