
XSLT is kind of cool and taking off. Not exactly functional but there is no destructive assignment.
Having written many thousands of lines of XSLT, it's more than cool: it's fantastic. That it has no destructive assignment is not at all a point in its favor (though not one against it since it doesn't need it): XSLT is a declarative language, it's computational model is based on the notion of matching a node to a "template" and transforming said node... which makes it perfect for its domain: transforming XML documents. ...XSLT is a domain specific language, and that is why it is so wonderful; and also, I hope, an indication of what Programming Languages of the Future ([echo] future, future, ...) will look like... The main obstacle is bringing DSL's out of esoterica (e.g., Robotics control) and into the mainstream (e.g., GUI design). I'm optimistic: XML is being used for this purpose (where 'computation' can be expressed declaratively, i.e., as a document), for example, in ASP+. Other DSL's, e.g., WebL (Compaq's Web Language) have had moderate success as well... As for Ye Olde General Purpose Language, I hope that notion dies... Instead to be replaced by the Programming in the Large language, which should have extensive facilities for interacting with DSL's. I, of course, love Haskell to death, but my vote has to go to the (emerging) ML2000, with its first class modules, higher-order polymorphism, object types, strict evaluation, and imperative references...
A lot of the things Haskell excels at (IMO) inferior tools are being used in place. For example, Microsoft has build good XSLT translators and two new compilers (C#, VB7) in the last couple years. Unfortunately, C#, not Haskell, will probably be "the" language for the next decade. Fortunately, C++ will not be the language of the next decade.
Time will tell... I'm writing a lot of VB these days. I expect that it would be a giant bitch to write XMLDOM manipulation stuff in Haskell since the DOM is so imperative and OOey. (It's not that great in VB, but I'm sure as hell glad I'm not writing it in Java, if for no other reason than the casting would be a constant syntactic annoyance.) -- Of course, I'm designing an XML generation language (aimed at a different domain than XSLT and XDuce, but with vaguely similar intentions to XMLambda). And I hope, of course, that this will be "the" language for the next decade ;). (Notice how I think that the important language for the next 10 years will be an XML processing language)