« Lightweight RMI | Main | Too Cool - BikesAgainstBush »
Choosing a UI Markup Language
August 02, 2004
Since HTML isn't enough for our next browser-based UI application, I checked out the alternatives. Several options use XML to describe the UI declaratively. This is not a radically new idea, but it is one that’s finally gaining momentum because Rich Clients Are Making A Comeback and UI programming in general is more API specific than necessary. Although I've looked at Thinlets before, I wanted to consider the competition as well. I grouped them into 4 options (ordered by usage of Java): - Microsoft’s XAML (no Java) - Macromedia’s Flex (some Java) - Mozilla-backed XUL, pronounced "zool" (optionally very Java) - other Java technologies (all Java) Great! I see 4 different, some very vendor-specific, ways of doing the same thing. Choose the wrong one now, and you’ll be locked in for the next 5 years or till the next big thing comes along. Maybe so, but it’s a step in the right direction because theoretically, you could port your XML-based UI code from say XAML to XUL using XSLT – probably less time consuming than porting .Net WinForms to Swing. Besides, a lot of API-specific UI code is repetitive and can be better handled declaratively (like HTML, but richer). It’s hard to do a side-by-side comparison of all 4 options because some are not fully ready yet. Microsoft’s XAML and the accompanying Avalon rendering engine won’t be widely available till the release of Longhorn and not even Steve Balmer will say when that is. If you need to explore XAML right now, try out Xamlon and developer releases of Avalon/Longhorn. What's troubling is, since XAML is accompanied by “a whole new development platform”, is it likely to work on the huge installed based of existing versions of Windows/IE? In contrast, Macromedia Flex apps work with existing browsers and they're pretty cross-platform thanks to the Flash player and server-side neutrality (.net or J2EE). So Flex offers some java-friendly bait. But then why aren’t Java developers biting? Well, Flex was announced fairly recently, you have to buy a Flex Presentation Server (starting at $12,000) and Java developers must learn a non-Java language for UI logic: ActionScript. Besides, it’s not like the Java camp is lacking in all-Java alternatives (see below). The third option, XUL, is an XML markup language heavily used in the Firefox browser. Unlike XAML and Flex, XUL has some hard evidence available in the form of Firefox extensions written in XUL. Installing an XUL-based extension was a snap – just right-click download an.xpi file (XPInstall) and Firefox handles the rest. Like Flex, XUL can be used with server-side tools like JSP to build dynamic content. Unlike Flex, but like XAML, XUL's targeted toward applications that also run outside the browser with the help of a runtime environment (Gecko Runtime Environment).
Finally, it’s no surprise that the Java platform offers the widest set of options for developing your UI in XML. Java Republic’s recent poll asking developer’s to rank their Java XML UI toolkit had user’s listing out several options: Thinlets, Luxor (a XUL implementation), SwiXml, and JDNC, among others. Compared to XAML and Flex, the benefits of these options are: available now, deployable in existing environments and low-cost to free. These technologies will see a lot of innovation before standardization so I'll be checking back on the product vendors of XAML and Flex to see how they intend to compete with Java's benefits.
Oct 5, 2004. Update! Read followup about Laszlo, an open-source alternative to Macromedia Flex and Macromedia's free license for non-commercial use.
August 2, 2004 at 04:28 PM in Reviews | Permalink
TrackBack
TrackBack URL for this entry:
http://www.typepad.com/services/trackback/6a00d834205eab53ef00d834563b5f69e2
Listed below are links to weblogs that reference Choosing a UI Markup Language:
» Flex? Java Developers "Not Biting" from flex-mx
The Fair And Biased Blog discusses choosing a UI Markup Language and talks about XAML, XUL, Java, and Flex. The author (don't see a name...) seems to give Flex high marks, BUT...... [Read More]
Tracked on Aug 3, 2004 12:20:55 PM
» Flex? Java Developers "Not Biting" from flex-mx
The Fair And Biased Blog discusses choosing a UI Markup Language and talks about XAML, XUL, Java, and Flex. The author (don't see a name...) seems to give Flex high marks, BUT...... [Read More]
Tracked on Aug 3, 2004 12:22:18 PM
» "Choosing a UI Markup Language" from numlock.ch :: a changelog by Daniel Mettler
The Fair And Biased Blog: Choosing a UI Markup Language I have similar challenges regarding my thesis (Working title "Government Application Integration/G2G Architecture: The Design of the Presentation Level Integration"). It's difficult to choose part... [Read More]
Tracked on Aug 15, 2004 10:48:47 AM
Comments
To underline the power of XUL - not only are Firefox extensions built in XUL, Firefox itself and our Thunderbird email software are also written in XUL and JavaScript. Our framework runs on a wide variety of hardware and operating systems. Right now we are working on improving developer documentation to make adoption easier, and development of standalone applications simpler.
Posted by: Ben Goodger | Aug 2, 2004 7:43:18 PM
You forgot MyXaml (www.myxaml.com), which solves the XAML "whole new development platform" problem, is open source (not $12,000), isn't Java based, runs under Mono, and plug-ins for IE and Firefox will be available soon.
Marc Clifton
www.myxaml.com
Posted by: Marc Clifton | Aug 3, 2004 12:41:50 PM
"It’s hard to do a side-by-side comparison of all 4 options because some are not fully ready yet."
Understood. Are you interested in evaluating the technologies in terms of theoretical purity, or delivering some work to a particular audience today, or...?
(For Flex, the price does discourage casual deployment, but for development it's accessible... the free trail turns into a 5-IPaddress development server after 60 days (see FAQ). From what I understand, it's actually selling in greater volume than expected, even at this early date.)
It's good to continually compare technologies... it seems that technologies can be compared to very different purposes, though...?
Regards,
John Dowdell
Macromedia Support
Posted by: John Dowdell | Aug 3, 2004 4:35:48 PM
John - I'm evaluating right now, but as a Java developer, Flex had peaked my interest. I'm waiting for the evaluation CD right now - btw, why not offer a free download of Flex?
Regarding your last point, yes comparison is complicated in this case because not all 4 of the options are exactly alike. I was trying to compare them based on the common feature of the XML-based Markup Language.
Perhaps in a future post I may do a more in-depth comparison...
PS- Thanks for the link to the Macromedia blogs in your comment.
Posted by: Vik | Aug 4, 2004 11:09:28 AM
"btw, why not offer a free download of Flex?"
I don't understand that well myself... when I've asked others in the group here, I was pointed to the FAQ:
"(Q) Why is the Flex trial only available on CD?
"(A) Flex is an advanced enterprise server product that has generated massive interest and anticipation across the industry. Macromedia wants to ensure that early Flex customers get the support they need to evaluate the product successfully. A downloadable version of the Flex trial may become available in the future."
http://www.macromedia.com/software/flex/productinfo/faq/#item-36
One thing which may be interesting in the future, when there are more ways to define interfaces in XML, is the possibility of mapping one set of instructions into another... it would be hard to find an identical featureset among rendering engines, but it seems a lot easier to translate XML than to translate binary files, true...?
jd/mm
Posted by: John Dowdell | Aug 4, 2004 3:57:36 PM
You really need to be excellent to survive in this big world of online information. But with a lot of great ideas you really have a chance. Only the best survive. Never forget that!
Posted by: Victor Gabriel | Dec 3, 2004 3:57:20 AM
Just surfed in and found this really interesting place here. A lot of good stuff for everybody.
Posted by: Ben Joe | Feb 2, 2005 3:52:45 AM
As a relevant note, we've just done a public
announcement of the XAMJ project, a Java-based,
open-source alternative to XAML.
Posted by: XAMJ Working Group | May 30, 2005 12:15:26 AM
