I think the bottom-line of XAML is that it is equally useful for creating both desktop applications, web pages, and printable documents. This means that Microsoft may be attempting to simultaneously obsolete HTML, CSS, DOM, XUL, SVG, SMIL, Flash, PDF. At this point, the SDK documentation is too incomplete to firmly judge how well XAML compares with these formats, but I hope this lights a fire under the collective butt of the W3C, Macromedia, and Adobe. 2006 is going to be a fun year.
One thing that is noticeably missing from XAML is the XUL flexible layout model. Instead, there are the FlowPanel and DockPanel layout models, which could be combined for a similar effect. It seems that flex could be approximated by specifying a width or height as a percentage. DockPanel is similar to Java's "BorderLayout", and FlowPanel is like XUL box that can wrap when it runs out of space. Good stuff.
One thing I definitely don't like about XAML is the Canvas element. Canvas is a special container that allows for absolute positioning. What I would prefer instead is the ability to allow any element to become "fixed" (absolutely positioned) relative to its panel, regardless of the layout model. This way you wouldn't need extraneous panels just to use fixed positioning on one element.
XAML has its own language for expressing vector graphics, called WVG. This is not in any way compatible with SVG, for better or worse. Like SVG, you can define shapes, paths, solid, gradient, and pattern brushes, fills, and strokes. There is also an animation language, much like SMIL, which allows you to animate properties or perform additive 2D transformations. I'd imagine these animations will be quite speedy with full GPU acceleration.
XAML also includes another no-brainer feature that the W3C has ignored: the ability to slice an image into a nine-section grid and use it to fill a background. This is a feature we should have implemented in Mozilla to reduce the amount of complex XBL used to accomplish the same effect.
Microsoft has finally posted the Longhorn SDK on MSDN. This includes coverage of XAML, a broad new UI markup language that has all of the capabilities of Mozilla's own XUL and XBL, plus HTML, CSS, SVG, SMIL, and more. I am anxious to dig in and distill exactly what can be done with XAML, how it relates to existing languages, and what new capabilities it gives us.
My initial impressions...
XAML has equivalent tags for the HTML block/inline layout model (albeit, with much wordier tag names like Paragraph, HyperLink, and LineBreak). However, they also allow us to do multi-column layout, which is one of those no-brainer features that the W3C just dropped on the floor.
There are equivalent tags for doing tables, but importantly there is a separate set of tags for doing grids, which make for a much easier way of expressing a simple table-like layout. I like these tags better than XUL's grid tags, because you don't have to wrap each row in another element, you just provide a list and tell it how may columns to split.
XAML's "style system" confused me at first, because it bears little resemblance to CSS. Turns out, their style system is really a combination of CSS with Mozilla's XBL, all expressed in XML. A "Style" tag appears to contain an instance of an element such as a button, but in fact this is really a style rule whose tag is like a CSS tag selector, and whose name is like a a CSS class selector. Styles can be forked based on property values, using "PropertyTrigger" tags, which are basically like CSS attribute and pseudoclass selectors. Confusingly, I also found a brief description of something called property sheets, which looks more like the CSS we know and love, but different. There isn't any real documentation on this yet.
The style system also has a feature that is very similar to Mozilla's XBL or IE Behaviors. It allows you to define a block of content called the "VisualTree", which is like XBL "anonymous content", allowing you to embed arbitrary content (images, text, buttons) within an element. However, the cool thing is that the "VisualTree" is part of a style rule, which means that it can be cascaded as if it were just another CSS property.
Microsoft has finally posted the Longhorn SDK. I'm digging now and I will post my thoughts on what this means for those of us who have been using the technologies that Microsoft is aiming to "embrace and extend."
*sigh*
Lately I've been spotting a lot of HTML tricks (thanks, Joe Grossberg), with people creating all sorts of simple graphics (like hearts and brick houses) out of insanely complicated HTML and CSS. While my first reaction to these graphics is "Wow, neat!", my next reaction is "Ewwww."
Look at the sorry state that HTML developers have been reduced to in this world! This degree of hack is just plain disgusting, and it's a definite sign that HTML has definitely jumped the shark long ago. Of course, we have Microsoft to blame for neglecting IE while they go off and build XAML. It's a damn shame we'll be stuck with these nasty hacks until 2006, when the next significant advance of IE hits the streets.
For those of you Mozilla folks who are interested in XUL, I suggest you pay close attention to what Microsoft is going to unveil next week at the PDC conference. The massive new Longhorn API will be revealed, including XAML, Microsoft's own markup language which is similar to XUL, but way more powerful. It's flattering to know that Microsoft is modelling the future of Windows UI development after a technology we all worked so hard to bring to life for Mozilla. We were truly ahead of our time.
Click here (http://msdn.microsoft.com/longhorn/) on Monday, October 27th and keep a napkin handy to wipe the drool off your face. And please, spare me complaints about how this is not a cross platform technology. Who cares, it's going to be so mind-blowing that it will make huge waves in the industry regardless.
The greatest thing about my iPod is that it encourages me to listen to music that has been buried in my CD collection for years. It's almost hard to believe that I've hardly listened to Smashing Pumpkins, Oasis, Sugar, or Velocity Girl since I was in high school. Funny how a song can make an entire decade fall away in just seconds...
The more I use the iTunes Music Store, the more I love it, and the more music I buy. Still, there is a limiting factor. It is starting to replace Amazon.com as my favorite way to shop for music online, but it is still miles behind Amazon as a useful shopping site.
I hope it doesn't take Apple long to build in obvious features like customer reviews and rankings, and customer favorite lists. They're already got Related Music, which is a nice start. If they finish the job I may just shut down my CD player forever.
I've been a fan of the New York Yankees since 1989, and I've gone through years of suffering and years of celebrating. Still, after 14 years, I can now honestly say I have never experienced a high as magnificent as the feeling when Aaron Boone crushed that knuckleball into the seats, and sent the Boston Red Sox and their fans into another miserable winter.
Still, many Red Sox fans want to find consolation in the hope that the Yankees may lose the World Series this week. Well, I hate to let them down, but I'm here to say it doesn't matter.
The simple fact is this: the Yankees can win the World Series any time, but if we allow The Curse to be broken, it completely invalidates nearly a century of unprecedented dominance. At the heart of every Yankee and Red Sox fan there are two magical numbers: 26 and 0. While it would be nice to change those numbers to 27 and 0, it would be unthinkable to change them to 26 and 1. I don't want my children to have to grow up in a world without The Curse.
The feeling of waking up the morning after a World Series victory is fantastic; I know, having experienced it four times now. However, none of those four mornings compare to the feeling I had on friday when I woke up and spent the whole day gloating at the suffering of every man, woman, and child in Boston. I hate to be cruel, but that is just what it is all about.



