Ian correctly points out that Avalon
is more than just eye candy [link fixed]. I'm glad he made this point - all
the flash in Avalon is really about providing easier ways to have computers interact
with people (both on the input and output side).
One point that I have to disagree with, is this unnatural belief that everyone seems
to have that it's not code if it has angle brackets. I hear people say this about
XAML, HTML, XSL/T, and more. Just because it's markup doesn't mean it isn't code.
Pure HTML + CSS, that I would classify as much more "document" than code... XAML and
XSL/T, those are both pretty clearly in the code space. What is the line between Perl,
C#, XAML, XSL/T, etc?
The key aspect isn't about if the language is declarative, imperitive, a mix, or what...
the key aspect is the abstraction layer that you program to, and the number of constructs
that you have to understand to intepret the code. XAML is a declarative abstract language
with a very few number of constructs... all making it simple to understand (hopefully).
The declarative thing is nice (especially for tools), and I think it is a key aspect.
But declarative isn't some magic powder... i look at looping constructs in XSL/T and
I get truly scared... it is often better to have a combination of declarative and
imperitive code that try to go with a "pure" declarative model.