Just read miguel last blog entry and felt compelled to answer a bit:
1/ being fast is fine, but you must first be conformant to the spec, otherwise the usefulness of using XSLT in the first place is moot. Conformance is what takes time and lot of efforts. Sorry but I got negative feedback on the conformance of the Mono XML layer, I hope this get fixed and that the XSLT implementation won't be bad either. I would be intersted to know how many of the bug tests I accumulated over the years in libxslt/tests/* actually pass correctly with your implementation.
2/ libxslt is thread safe in the sense that concurrent transformations can be done in parallel one per thread
3/ Saxon is not the fastest XSLT implementation. It's probably the best w.r.t. conformance.
4/ Yes libxslt takes a KISS approach, I didn't worked on trying to do query optimization, well I did a bit but not much. It didn't tried to build a specific tree model, reusing libxml2 one. I did not code libxslt for performances actually.
