Q:

What is preventing widespread use of XSLT for webpages?

Why aren't more webpages written using XML with an XSLT stylesheet?  For separating content from presentation, this combined with CSS would be even more powerful.  Right now, for things like outputting a navigation menu, people often hand-copy the navmenu code from page to page or do something like
<?php include_once('myheader.inc'); ?>

on every page, which not only puts more demand on the server, but results in duplicated data transmitted.
When I was introduced to it, I was told that all major browsers back to IE6 support XSLT 1.0... are there unresolvable bugs between implementations?   Are there others showstoppers or severely lacking features that are inhibiting the spread of XML+XSLT?  The only website I've seen lately that is XML+XSLT is starcraft2.com.

A:

It is extremely verbose
It is hard to trace (in a complex system) how/where/why/when a template is called
Since the output must be well-formed you can't have a template that "opens" the HEAD or BODY tag that you'll then worry about closing somewhere else later.  This sucks when you want to be able to queue up bits of code to go into the HEAD when you are processing what will be in the BODY.
It isn't as easy to navigate the code as following method calls is
Outputting something like an IE conditional comment is very confusing with all the escaping needed
Building a string of HTML by appending bits just doesn't work.  This can be overcome by building the HTML string bit by bit in XSL code, but it becomes quite complex.

However most of all (IMHO) it adds an extra layer to the process that doesn't "buy" you much.
e.g. typically you have:
DB > SQL > [JAVA|PHP|ASP|Python|Ruby] > HTML

but if you throw XML and XSL in, you've added steps that (can be) hard to justify
DB > SQL > [JAVA|PHP|ASP|Python|Ruby] > XML > XSL > HTML

having the data in a handy dandy universally exchangeable XML format is great-n-all, but unless you need it, all you've done is add steps.
Now I shouldn't knock XSL too much because, well I use it all the time and do appreciate some of the powerful options it provides.  However to anyone deciding if they want to use it, be sure you have a need before diving in.

A:

Blizzard Entertainment seems to like XSLT.  Their World of Warcraft Armory site is completely implemented using it.  Look around the site using view source.

A:

I think part of the issue is that programming in XSLT has some of the attributes of a functional language (see this answer for why it's not fully functional). 
As such it requires a different approach from the 'usual' imperative mindset, and that will deter some people from fully investigating it (I'm not dismissing functional programming, btw, but in the web client/server world it's not the most common paradigm).
In the Java world it used to be perceived as being slow and memory hungry. I'm sure some of that was anecdotal, and perhaps partly the effect of early VMs. I note, however, that hardware XML accelerators are available and sit behind the JAXP interface, so perhaps there's still a speed issue ?

