This post by Les Orchard prompted me to think about how I’m increasingly relying on XSL transformations for much of FeedDemon’s UI. For example, every FeedDemon newspaper relies on transforming RSS, and the new subscription overview in FeedDemon 2.0 is generated by transforming the OPML file containing your subscriptions. For a live demo of this, take a look at these three files:
- subscriptions.xml – this is the “raw” OPML file (not transformed)
- subscriptions.xsl – this is the XSL file used to transform the OPML
- subscriptions-t.xml – this is the same OPML file with the XSL applied to it (note that hyperlinks will fail since they use an
fdactionprotocol that only works inside FeedDemon.)
I hadn’t worked with XSL prior to creating FeedDemon, so the newspapers in the very first version of FeedDemon were sort of ugly, and they took ages for me to create. After all, I was used to object-oriented programming, not the strange world of XSLT. Learning XSLT wasn’t a whole lot of fun, either. It’s an odd language with unexpected omissions, bizarre rules and a learning curve that’s made steeper by unexpected “gotchas” – in other words, it’s just like every other language out there.
I still feel like a beginner with XSL, but I grok its power now that I’ve used it for a while. The ability to create a friendly, web-like user interface by transforming XML documents is definitely handy, and in some ways I find it simpler than “traditional” GUI development since I can make huge design changes with a few lines of XSL without having to re-arrange a dialog full of widgets.