XAML, Microsoft’s eXtensible Application Markup Language, was released with the .NET 3.0 framework and works with the new technologies available in the once-called WinFx release of the framework, such as WPF (Windows Presentation Foundation), WF (Workflow Foundation), Windows CardSpace, and WCF (Windows Communication Foundation). Currently, I’m learning WPF, where XAML is used for building user interfaces.
Being a markup language, XAML is inherently powerful (object-oriented pun not intended) for the pure reason that you can write your interface in XAML and use it in a variety of projects in the most various languages (in Microsoft’s case, C++, C#, and Visual Basic – I’m not sure if J++ and J# are still around). This way, a project doesn’t need to have its interface written in one non-compatible language, but rather in XAML itself, allowing the code to be shared across various languages.
It would be especially useful if Linux distributions and APIs adopted this new markup-based way of marking up interfaces. Imagine if programmer is experienced in Python and at an intermediate levl in C and wants to write a GTK+ application, but wants some parts of the interface written not only in C but also in Python. The code would get confusing having one part of the interface in C and the other in Python (I’m not sure if this example is plausible, it’s just an example) when the interface could be entirely written in a markup language, so that the two languages could easily access the markup file.
One could say XIB (on OS X Leopard) is copying off of XAML (on Windows XP SP2 and Vista) : they’re both markup files used for interface implementation, but Xcode 3.0 development doesn’t seem to have started until late 2006 or early 2007, while Avalon (the codename for WPF) was in development since before 2005. Recently, I’ve been finding Apple to be copying off Microsoft: OS X iPhone – Windows Mobile, XIB – XAML, icon size sliders in the Snow Leopard Finder (at least in the alpha version) – same feature was implemented in Vista’s Finder. On the other hand, Application Services was copied by Microsoft and re-implemented as WCF. They both copy from each other, let’s just put it at that 😉