Discussion:
MyXAML Lead Weighs in on "What is XAML?" Debate
Gerald Bauer
2004-11-06 02:31:42 UTC
Permalink
Hello,

Allow me to highlight Marc Clifton's (of MyXAML fame) blog story
titled "What Is XAML?" that highlights some more "XAML is" definitions.

Marc comments:

What's interesting about these definitions is:

* There appears to be confusion regarding whether XAML can be
applied to any object or is intended to work with UI classes;

* While everyone appears to agree that it is a "language", no one
recognizes that the markup is also dependent upon a parser which
introduces syntax specialization (Drew Marsh eludes to this point
though when he mentions complex properties). That is to say, the
parser plays a significant role in the definition of the language and
XAML as a "language" loses some of its generic features because
Microsoft's "parser" implements specialized syntactical constructs, of
which I have already written about.;

* While I'm on the subject of "language", let's also remember that
the element tags and property names in XAML are mapped to classes in
the associated namespace. Therefore, XAML is an open-ended language
as it applies (with notable exception) to any .NET class, past,
present, and future. That is, unless the parser is written to work
with only specific namespaces and classes;

* What the generic definition fails to recognize is that not all
classes are created equally. I've written about it before and I'll
remind everyone again, many third party vendors do not make their
classes particularly declarative (i.e. XAML) friendly. Some of the
definitions above give you the cozy feeling that XAML will work with
any .NET class. This is not true;

So, that said, and having said in the past that MyXaml isn't XAML,
now I'm sure you're wondering how I would define MyXaml. Here's the
definition:

MyXaml is a general purpose XML parser that maps elements to class
instantiation, attributes to property/event assignments, and
sub-elements to collections and concrete instance assignment, allowing
the programmer to declaratively instantiate an object graph utilizing
compliant .NET classes with minimal parser-specific syntactical
requirements, accomplished using the runtime reflection and type
converter features of C# and .NET.

Note that:

* I do not say MyXaml is a language but rather a parser
* I indicate it works only with compliant classes
* I indicate that the parser itself introduces only minimal
syntactical specialization

More @ http://myxaml.com/marcclifton/archive/2004/11/05/524.aspx

- Gerald

-----------------------
Gerald Bauer
Rich Client Conference (RichCon) 2005 - http://richcon.com
XUL News Wire - http://xulnews.com
XUL Alliance - http://xulalliance.org
frankhileman
2004-11-06 16:17:23 UTC
Permalink
Hello,

Here is my response to that post, on Marc's blog:

MS-XAML should have been a generic object model format. Nothing else
makes sense if it is to be used by programmers to create components
using custom object models and custom data types. Something like SVG
would never do.

It looks like at the first stage they missed this goal. Now MS is
changing XAML to make it more generic. We can only hope they go all
the way and get rid of those terrible compound properties -- then it
will be very similar to MyXaml.

An explanation of the reason MS-XAML is not generic, nor domain-
neutral can be found at this wiki. Scroll down to the section
titled "MS-XAML Is Neither Generic Nor Domain-Neutral":

http://channel9.msdn.com/wiki/default.aspx/Channel9.XAMLManifesto

"Separation of UI from code" was one goal of XAML. A laudable goal,
and one that has been acheived for 25 years using various binary and
text files. Even current windows forms codedom serialization does
achieve this, becuase the generated code cannot be edited. It is
separate, it just does not present the logical structure as well as
an xml file.

For speed MS-XAML is compiled anyway, so xml is not always a runtime
goal. After compiling, the "separation" is no greater than with a
code-serialized object graph. It has evaporated.

So the separation argument is only a pseudo-benefit -- it is hard to
get excited by that, when the benefit is already there.

It is interesting how Xamlon and other knock-off companies are using
this "separation of UI and code" pseudo-benefit as a marketing tool -
- just as MS itself has done, although most developers saw through
this marketing gloss. I believe this is part of the reason XAML was
not welcomed warmly?

Frank Hileman
VG.net, the serious vector graphics system for .NET
http://www.vgdotnet.com






------------------------ Yahoo! Groups Sponsor --------------------~-->
Make a clean sweep of pop-up ads. Yahoo! Companion Toolbar.
Now with Pop-Up Blocker. Get it for free!
http://us.click.yahoo.com/L5YrjA/eSIIAA/yQLSAA/nhFolB/TM
--------------------------------------------------------------------~->
mite110011
2004-11-09 22:05:35 UTC
Permalink
I dont agree that XAML is a language, and I haven't heard very many
claim that it is. The definition of a programming language is "A
vocabulary and set of grammatical rules for instructing a computer
to perform specific tasks.". XAML is nothing more than a generic
file format, it lacks any rules or logical operations and cannot
perform a task.

definition of a programming language
http://www.webopedia.com/TERM/p/programming_language.html

The only difference between XML and XAML is that XAML will
automagically reflect onto an API to define a state for an arbitrary
system. If a system does not exist inside the API do accomodate
performing tasks then all you have a (easy to use) state definition
system.

Jason
Post by Gerald Bauer
Hello,
Allow me to highlight Marc Clifton's (of MyXAML fame) blog story
titled "What Is XAML?" that highlights some more "XAML is"
definitions.
Post by Gerald Bauer
* There appears to be confusion regarding whether XAML can be
applied to any object or is intended to work with UI classes;
* While everyone appears to agree that it is a "language", no one
recognizes that the markup is also dependent upon a parser which
introduces syntax specialization (Drew Marsh eludes to this point
though when he mentions complex properties). That is to say, the
parser plays a significant role in the definition of the language and
XAML as a "language" loses some of its generic features because
Microsoft's "parser" implements specialized syntactical
constructs, of
Post by Gerald Bauer
which I have already written about.;
* While I'm on the subject of "language", let's also remember that
the element tags and property names in XAML are mapped to classes in
the associated namespace. Therefore, XAML is an open-ended
language
Post by Gerald Bauer
as it applies (with notable exception) to any .NET class, past,
present, and future. That is, unless the parser is written to work
with only specific namespaces and classes;
* What the generic definition fails to recognize is that not all
classes are created equally. I've written about it before and I'll
remind everyone again, many third party vendors do not make their
classes particularly declarative (i.e. XAML) friendly. Some of the
definitions above give you the cozy feeling that XAML will work with
any .NET class. This is not true;
So, that said, and having said in the past that MyXaml isn't
XAML,
Post by Gerald Bauer
now I'm sure you're wondering how I would define MyXaml. Here's the
MyXaml is a general purpose XML parser that maps elements to
class
Post by Gerald Bauer
instantiation, attributes to property/event assignments, and
sub-elements to collections and concrete instance assignment,
allowing
Post by Gerald Bauer
the programmer to declaratively instantiate an object graph
utilizing
Post by Gerald Bauer
compliant .NET classes with minimal parser-specific syntactical
requirements, accomplished using the runtime reflection and type
converter features of C# and .NET.
* I do not say MyXaml is a language but rather a parser
* I indicate it works only with compliant classes
* I indicate that the parser itself introduces only minimal
syntactical specialization
- Gerald
-----------------------
Gerald Bauer
Rich Client Conference (RichCon) 2005 - http://richcon.com
XUL News Wire - http://xulnews.com
XUL Alliance - http://xulalliance.org
------------------------ Yahoo! Groups Sponsor --------------------~-->
Make a clean sweep of pop-up ads. Yahoo! Companion Toolbar.
Now with Pop-Up Blocker. Get it for free!
http://us.click.yahoo.com/L5YrjA/eSIIAA/yQLSAA/nhFolB/TM
--------------------------------------------------------------------~->
frankhileman
2004-11-11 14:54:00 UTC
Permalink
According to your second paragraph, XAML is a language, as you
defined in your first paragraph. It is not an imperative language,
it is declarative, but it is a language nevertheless, just as xml is
a languge.

- Frank
Post by mite110011
I dont agree that XAML is a language, and I haven't heard very
many
Post by mite110011
claim that it is. The definition of a programming language is "A
vocabulary and set of grammatical rules for instructing a computer
to perform specific tasks.". XAML is nothing more than a generic
file format, it lacks any rules or logical operations and cannot
perform a task.
definition of a programming language
http://www.webopedia.com/TERM/p/programming_language.html
The only difference between XML and XAML is that XAML will
automagically reflect onto an API to define a state for an
arbitrary
Post by mite110011
system. If a system does not exist inside the API do accomodate
performing tasks then all you have a (easy to use) state
definition
Post by mite110011
system.
Jason
------------------------ Yahoo! Groups Sponsor --------------------~-->
$9.95 domain names from Yahoo!. Register anything.
http://us.click.yahoo.com/J8kdrA/y20IAA/yQLSAA/nhFolB/TM
--------------------------------------------------------------------~->
mite110011
2004-11-13 06:26:50 UTC
Permalink
I realize how rediculous I sound now, saying XAML(anguage) is not a
language. I was only pointing out the term language was being used a
bit loosely, its a mark-up language. Saying a programmer can do this
and that implies a programming language which XAML is not. I guess it
depends on what you would call someone who edits markup language (like
html), is he/she programming or designing or something else?

ahh symantics.

Jason
Post by frankhileman
According to your second paragraph, XAML is a language, as you
defined in your first paragraph. It is not an imperative language,
it is declarative, but it is a language nevertheless, just as xml is
a languge.
- Frank
Post by mite110011
I dont agree that XAML is a language, and I haven't heard very
many
Post by mite110011
claim that it is. The definition of a programming language is "A
vocabulary and set of grammatical rules for instructing a computer
to perform specific tasks.". XAML is nothing more than a generic
file format, it lacks any rules or logical operations and cannot
perform a task.
definition of a programming language
http://www.webopedia.com/TERM/p/programming_language.html
The only difference between XML and XAML is that XAML will
automagically reflect onto an API to define a state for an
arbitrary
Post by mite110011
system. If a system does not exist inside the API do accomodate
performing tasks then all you have a (easy to use) state
definition
Post by mite110011
system.
Jason
------------------------ Yahoo! Groups Sponsor --------------------~-->
Make a clean sweep of pop-up ads. Yahoo! Companion Toolbar.
Now with Pop-Up Blocker. Get it for free!
http://us.click.yahoo.com/L5YrjA/eSIIAA/yQLSAA/nhFolB/TM
--------------------------------------------------------------------~->
Loading...