InfoQ

News

XUL: What the web should look like?

Posted by Jonathan Allen on Apr 09, 2007 06:16 AM

Community
.NET,
Java
Topics
Rich Internet Apps,
Rich Client / Desktop
Tags
XUL

Last week we ran a short piece on the future of rich client frameworks. At the time we over-looked XUL as a proprietary language for Mozilla add-ons. It seems that was a mistake.

XML User Interface Language (XUL) shares many of the features with the other frameworks we covered last week, including an XML based presentation and JavaScript on the back end. But it also has a few key features that set it apart.

The first thing most Windows developers ask about a new framework is, “Will it look right?” Or in other words, does the framework make a reasonable attempt to look and feel like a native application. The answer for XUL appears to be yes. A test drive of the Mozilla Amazon Browser (MAP) shows that it can be used to make good looking rich clients . Though running in Firefox, it feels just like a native application. A demo site called the XUL Periodic Timetable (Mozilla Only) shows that it already supports most of the controls that rich client developers expect.

Ten years ago it was considered acceptable to have isolated platforms and programming languages that didn’t interact with other platforms. These days, that is no longer tolerated. To wit, XPCOM and XPConnect are offered.

XPCOM, which stands for Cross Platform Component Object Model, is a framework for writing cross-platform, modular software. XPCOM components can be written in C, C++, and JavaScript, and they can be used from C, C++, JavaScript, Python, Java, and Perl.

XPConnect is a technology which enables simple interoperation between XPCOM and JavaScript. XPConnect allows JavaScript objects to transparently access and manipulate XPCOM objects. It also enables JavaScript objects to present XPCOM compliant interfaces to be called by XPCOM objects.

Another hot topic these days is internationalization. XUL has that covered by storing human readable text in DTD and property files. In what will surely make translation easier, these files can be created and packaged separately from the XUL code itself.

Unlike many open source projects, tool support is not lacking either. The XUL homepage lists several tools and utilities including XUL Explorer, a lightweight IDE.

At first glance it may appear that XUL has the same problems as Gran Paradiso, namely being tied to the Mozilla family of browsers. However, that isn’t the case. Another Mozilla product, XULRunner, allows XUL based applications to run outside the browser. Currently it is available for Windows, OS X, and Linux.

XUL isn’t a hundred percent solution though. While testing in Firefox 2.0.0.3, it had a problem with accelerator keys such as +D being bound to Firefox rather than the application’s command buttons. These issues are probably minor and easily fixed.

With a bit of publicity and polish, XUL could very well give WPF/E and Adobe Flex a run for their money.

4 comments

Reply

XUL's primary issue - loyalty by Tariq Ahmed Posted Apr 9, 2007 12:07 PM
Re: XUL's primary issue - loyalty by Cyril Gambis Posted Apr 11, 2007 5:45 AM
Re: XUL's primary issue - loyalty by berkay NiQuiL Posted Jun 30, 2008 2:14 PM
One thing you missed out by Simon Proctor Posted Apr 10, 2007 7:22 AM
  1. Back to top

    XUL's primary issue - loyalty

    Apr 9, 2007 12:07 PM by Tariq Ahmed

    My guess would be that XUL remains a niche experimental technology that only hard core open source folks try to stick with. The feverish pace of advancement in the Flex & Apollo arena provide a very compelling platform. WPF/E has earned the reputation of vaporware, I'm sure once they kick it into high gear all .NET folks will become loyal to it. XUL doesn't provide any kind of distinct advantage. So, the biggest challenge I see with XUL is who exactly is going to be loyal to it.

  2. Back to top

    One thing you missed out

    Apr 10, 2007 7:22 AM by Simon Proctor

    On a side note the ongoing plan for XUL is, I believe, to move towards a common runtime engine in the form of XulRunner a standalone XUL engine. This allows you to run XUL apps without having to sit on top of Firefox.

  3. Back to top

    Re: XUL's primary issue - loyalty

    Apr 11, 2007 5:45 AM by Cyril Gambis

    I agree with that: XUL has been created long before Adobe Flex and WPF/E, but has never really emerged. It has absolutely no competing advantage and not enough money to produce any good marketing buzz or tool integration (Microsoft can tie WPF/E to .Net and Adobe can tie Flex with its Flash design platform).

  4. Back to top

    Re: XUL's primary issue - loyalty

    Jun 30, 2008 2:14 PM by berkay NiQuiL

Exclusive Content

Rationalizing the Presentation Tier

Thin client paradigm characterized by web applications is a kludge that needs to be repudiated. Old compromises are no longer needed and it's time to move the presentation tier to where it belongs.

Agile Project Management: Lessons Learned at Google

In this presentation filmed during QCon 2007, Jeff Sutherland, the creator of Scrum, talks about his visit at Google to do an analysis of Google's first implementation of Scrum.

AtomServer – The Power of Publishing for Data Distribution

In this article, Bryon Jacob and Chris Berry introduce AtomServer, their implementation of a full-fledged Atom Store based on Apache Abdera, which is now available as open source.

An Introduction to Virtualization

It is easy to think that virtualization applies only to servers. In reality the recent resurgence of the concept is also being applied to networking, storage, and application infrastructure.

REST Anti-Patterns

In this article, Stefan Tilkov explains some of the most common anti-patterns found in applications that claim to follow a "RESTful" design and suggests ways to avoid them.

Choosing between Routing and Orchestration in an ESB

In this article, Adrien Louis and Marc Dutoo discuss the differences and relative merits of using orchestration vs. routing in a typical ESB setup, and discuss various implementation options.

Enterprise Batch Processing with Spring

Wayne Lund discusses batch processing, Spring Batch objectives and features, scenarios for usage, Spring Batch architecture, scaling, example code, failures and retrying, and the future roadmap.

User Story Estimation Techniques

Developer Jay Fields draws on his experiences as a ThoughtWorks consultant to describe effective user story estimation techniques.