XAML, langage de création d'interfaces graphiques

XAML facilite grandement la création, l'édition, la réutilisation d'interfaces utilisateur graphiques pour les applications Web ou locales.
Il était à Windows ce que XUL est à Firefox, FXML à JavaFX, mais alors que XUL tend à disparaître, XAML se répand sur tous les systèmes depuis que .NET est devenu open-source et portable.
Il est même possible d'utiliser XAML dans une page Web avec le framework Granular qui implémente le backend WPF.

XAML signifie "Extensible Application Markup Language", donc langage à balise d'application extensible. En fait la signification a changé au cours du temps, à l'origine le nom de code de WPF, "Avalon", faisait partie de l'acronyme. C'est un format XML doté d'une sémantique adaptée à la description d'interface utilisateur graphique.
Il a été créé par Microsoft qui semble s'être inspiré de XUL de Mozilla et le moteur de rendu et de mise en forme requiert l'environnement .NET sous Seven et WinRT sous Windows 8.

XAML sur Windows 8, diagramme

Ce schéma montre XAML sur Windows 8.
A la fois sur le bureau classique avec .NET, et dans le Modern UI pour les applications immersives.

Microsoft a créé pour les navigateurs un plugin conçu comme une alternative à Flash, Silverlight, qui permet de faire tourner XAML sur tout navigateur. Cependant son développement a été abandonné car HTML 5 avec la balise Canvas et complété par SVG fournit l'essentiel des fonctions de Silverlight, ce qui rend donc ce dernier superflu. XAML reste toutefois une alternative à HTML 5 pour les applications immersives sur Windows 8.

Conçu à l'origine pour créer des applications sur la plateforme WPF de Vista, XAML en fait ne s'intégrera réellement dans Windows qu'avec la version 8.
Il a en fait la capacité de décrire une interface utilisateur beaucoup plus simplement que HTML mais est limité aux applications spécifiques à Windows alors que HTML est un standard universel.
Voir Quel futur pour XAML, pour une analyse détaillée du changement d'orientation chez Microsoft.

XAML décrit les objets de l'interface avec leur présentation

Il est plus simple de réaliser des applications avec XAML qu'avec XUL ou tout autre langage a balises utilisant les CSS, parce que les données de présentation sont des attributs des balises. Mais il sera ensuite plus difficile de modifier la présentation ou de créer des apparences multiples.
Voici les autres caractéristiques:

Deux exemples de code XAML...

Afficher: Salut le Monde:

<Page xmlns="">
  <TextBlock>
     Salut, le Monde!
  </TextBlock>
</Page>
          

Dessine un bouton:

<button 
   Background="Gray" 
   FontSize="18pt" 
   Click="OnClick">
     Soumettre
</button>  

Voir aussi cette Comparaison de XAML et HTML 5, ainsi qu'avec les principaux langages d'interface utilisateur graphiques.