Replace and defend

Reading the Longhorn SDK docs is a disorienting experience. Everything's familiar but different. Consider these three examples:

Example 1: The new CSS:

Why the need for Adaptive-flow Format? The advent of the World Wide Web posed several challenges for designers. Print media never required the adapting of layout to different media shapes. However, when pages were viewed using the World Wide Web, it was impossible to predict the size of the window in which the document would be viewed or the personal preferences that would be selected by the viewer. As a consequence, a document that looked great in one format might display poorly on another. While HTML and Cascading Style Sheets (CSS) made strides toward remedying this situation, the results were often less than ideal because the specifications were applied without regard to the readability of the page.

...

<AdaptiveMetricsContext
  ID="root"
  xmlns="http://schemas.microsoft.com/2003/xaml/"
  FontFamily="Arial"
  ColumnPreference="Medium">
<TextPanel Background="white">
  <Section>
    <Heading>Adaptive-flow-format Example</Heading>
      <Paragraph>This example shows the advanced capabilities of... 

[Introduction to Adaptive-flow Format Documents]

Example 2: The new SVG:

Vector drawing for "Avalon" "Avalon" offers several layers of access to graphics and rendering services. At the top layer, Microsoft Windows Vector Graphics (WVG) provides a number of advantages common to XML-based graphics markup. WVG is straightforward to use with the rest of the "Avalon" object model, it is readily reusable, and it is familiar to users of Scalable Vector Graphics (SVG). Objects are available as markup elements, with properties exposed either as attributes on those elements or as complex properties.

...

<Canvas ID="root"
xmlns="http://schemas.microsoft.com/2003/xaml"
Background="White">
  <Path Data="M 100,200 C 100,25 400,350 400,175 H 280" 
        Stroke="DarkGoldenRod" 
        StrokeThickness="3"/>s
</Canvas

[Vector Drawing for "Avalon"]

Example 3: The new XSD:

"WinFS" Schema Definition Language "WinFS" introduces a schema definition language to describe "WinFS" types. This language is an XML vocabulary. "WinFS" includes a set of schemas that define a set of Item types and NestedElement types. These are called Windows types.

Note that the "WinFS" schema definition language is not XSD (XML Schema Definition Language). The "WinFS" data model is distinct from other data models, including Entity-Relationship (ER), Object-Relationship (OR), and various XSD and common language runtime type models. Therefore, to support the rich constructs of the "WinFS" data model, "WinFS" introduces its own schema definition language to define "WinFS" types and relationships.

...

<Type Name="Person" MajorVersion="1" MinorVersion="0" 
      ExtendsType="Core.Contact" ExtendsVersion="1">
  <Field Name="BirthDate" Type="WinFSTypes.datetime" 
         Nullable="true" TypeMajorVersion="1"></Field>
  <Field Name="PersonalNames" Type="Contact.FullName" 
         Nullable="true" MultiValued="true" 
         TypeMajorVersion="1"></Field>

["WinFS" Schema Definition Language]

Joe Hewitt sums it up nicely:

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. [joehewitt.com]
Yeah, "embrace and extend" was so much fun, I can hardly wait for "replace and defend." Seriously, if the suite of standards now targeted for elimination from Microsoft's actively-developed portfolio were a technological dead end, ripe for disruption, then we should all thank Microsoft for pulling the trigger. If, on the other hand, these standards are fundamentally sound, then it's a time for what Clayton Christensen calls sustaining rather than disruptive advances. I believe the ecosystem needs sustaining more than disruption. Like Joe, I hope Microsoft's bold move will mobilize the sustainers.

Update: I'm delighted to see that my former BYTE colleague John Montgomery, who is now a Microsoft group product manager and developer platform evangelist, and who helped Microsoft work through a number of standards issues in the formative era of Web services, has launched a blog. Excellent! Today, John notes this posting and promises to return with input from Longhorn architects. I very much look forward to a fuller discussion of these issues.


Former URL: http://weblog.infoworld.com/udell/2003/10/31.html#a836