Is XML the Future of UI Development?

| by Jonathan Allen on Apr 06, 2007. Estimated reading time: 3 minutes |

Or is it JavaScript? A common trend in the new crop of desktop UI frameworks is that they are XML based with some sort of support for JavaScript. We take a brief look at AJAX, WPF/XAML, Flex/MXML, and Firefox’s Gran Paradiso.

The first up is AJAX, the poster child of the Web 2.0 craze. Being essentially a new technique to leverage existing HTML and JavaScript technologies, there is little reason not to use HTML. While not currently suitable for desktop application development, it did set the stage for what was to come.

Microsoft is betting heavily on a new XML based language called Extensible Application Markup Language (XAML). For traditional Windows developers, this is leveraged through Windows Presentation Foundation (WPF). WPF looks a lot like ASP.NET in that one language, XAML, is used for presentation while another, C# or VB, is used for event handling in a code-behind file.

Aside from the technological differences, XAML radically changes the development cycle for user interface design. User interface specialists and graphic artists can use XAML editors such as Expression Blend or ZAM 3D to create the user interfaces, then turn the files over to developers using Visual Studio. No longer will developers work from non-interactive screenshots put together in Visio or Photoshop, at least in theory. Judging by the rather mixed success of the ASP.NET, the effectiveness of this is questionable, but at least the potential is there.

The XAML story doesn’t stop there. Microsoft is also promising cross platform support is promised with Windows Presentation Foundation/Everywhere (WPF/E). This product is going to start with JavaScript as its procedural, event-handling language, with a later version supporting the Common Language Runtime (CLR). This is seen as a direct competitor to other browser-hosted frameworks such as Flash/Flex.

One thing to note about the XAML technologies is that the designers don’t really exist yet in a finished form. Expression Blend is currently a release candidate, and Visual Studio won’t have anything more than a CTP until VS Orcas hits beta later this year.

Next up is MXML. This is the XML-based presentation language used by Adobe Flex. This, combined with the JavaScript derivative ActionScript, was originally released by Macromedia in 2004. Over the years tool support has improved, but it remained shackled to the browser and the Flash player. Adobe Labs seeks to change that with the Apollo project. The goal of the Apollo project is to create a cross-platform runtime that will free Flex from the browser and allow it to run as a stand-alone desktop application. Essentially stealing Java’s original playbook, they are bringing the fight right into Microsoft’s living room. And with their superior UI capabilities, they just might pull it off.

Finally there is the new offering from Firefox, Gran Paradiso. Unlike Microsoft, who created a new language to get onto the web, or Abode, which created a new runtime to get off of it, the Firefox team is sticking with what they have. Gran Paradiso uses the same underlying technology that AJAX uses, HTML and JavaScript, and it still lives in the browser. This difference is that it plans to offer DOM storage, offline execution, and a synchronization model that will allow web applications to run in a partially or fully disconnected mode.

This reliance on a specific browser is what may ultimately sink Gran Paradiso. Unlike the cross-platform runtimes used by WPF/E and Apollo, which hopefully the users won’t have to think about, Firefox is a highly visible frame that takes away screen space from the application itself. And if the user prefers Internet Explorer, Safari, or Opera, they may be agitated about having to use Firefox.

The common theme throughout all of the new frameworks is a combination of XML and some form of JavaScript. Is JavaScript the next big langauge, or is this just a short term anomaly?

Rate this Article


Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

XML is better by Sandeep Khurana

i am not an expert but i think XML is the way to go. It is 'extensible'. Java script is not as extensible plus one can not apply validation rules etc in JS.

Re: XML is better by Martin Gilday

What makes you think that? I am quite new to Flex, but the (m)xml is just a front to the action/javascript. The tags you write are translated for you, you can achieve the same results manually by writing the Actionscript.

What about XUL? by Christoph Doblander

Are there any sophisticated Gecko/XUL/Javascript application out there (like a CRM) which are used in the so called "enterprise"?

I think there is one more underestimated platform: Yahoo.Widgets, it offers since version 4.0 a embedded sqlite database. Also if look over the DOM Reference I think it could be possible to create a great UI also for bigger applications.

XUL leads on combination of technology and opennes by Sergey Lipnevich

About three months ago I tried to summarize most popular RIA technologies in this post. Even though XUL is not the most widespread, I believe the future looks very good for it. Among the technologies listed in this post on InfoQ, XUL is the only one mature enough to deliver complete (as in "self-contained") cross-platform applications in use by millions of people, and Mozilla is doing it for years now.

Re: What about XUL? by Gabriel Kastenbaum

I think you can count "firefox" as an enterprise application.
So as Thunderbird.
Songbird is promising.

Has XUL yet reached the tipping point? Does not seem so. Reminds me lisp. The best solution ever. But...

Re: XML is better by Jonathan Allen

I think the real advantage of XML-based layout is that it is much easier to develop tools for it. As anyone who has had to hand-edited the "do not touch" code in a WinForms application knows, it is real easy to have otherwise valid code that breaks the drag-and-drop designers.

With XML-based layouts, the XML itself provides the structure so you don't have to rely on fragile and mostly undocumented coding conventions.

Of course that assumes that someone takes the time to build a decent set of tools. If all you are doing is hand-editing XML instead of hand-editing source code, then you haven't gained anything.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

6 Discuss