I really dislike TeX’s way of adding quotes:
`quote' becomes ‘quote’ while
``double quote'' becomes “double quote”. These quotes look funny in a text editor. Entering proper Unicode quotes is easy (in vim, use digraphs
'9 for single quotes and
"9 for double quotes). Even if you want to use Unicode files, at the very least, these quotes can be hidden behind macros. ConTeXt uses
\quotation (which provides language dependent quotes and adapts to nesting). I am sure that there are LaTeX packages that provide the same functionality. It may take a few more keystrokes to enter, but I think that Unicode input or macros is the correct way to deal with special characters, rather than ad-hoc abbreviations (Yes, I do not like TeX’s way of doing accented letters also.)
A bigger problem with these intelligent quotes is that they are also applied when not needed — in source code listings. I have seen this in many books and tutorials. Nothing shouts TeX louder than a wrong quote in source listings. Consider, for example, a simple ruby program that uses
str = 'ab\tc'
TeX (plain TeX, LaTeX, and ConTeXt MkII) will typeset this as
TeX is being too smart. From what I have been told, the problem is with the font files. As a user, I expect the macro package to take care of such things. But, by default, both LaTeX and ConTeXt MkII show the wrong quotes, as in the above image. ConTeXt MkIV, however, does the right thing, giving
I am guessing that this is because ConTeXt MkIV assumes everything is Unicode, and does not enable
texquotes feature for the font used for code listings. XeLatex also does the right thing. If you use a Unicode font, it does not enable
texquotes. (I do not really know how to enable
texquotes in XeLaTeX. I guess it should be possible to enable these features for serif and sans fonts, but not for the mono font.) So, even to users like me who primarily use TeX for English documents, an engine that works with Unicode fonts is useful.