I've read Hixie's article, though the one I read was much more informative and verbose than that one, I'll see if I can find it again. Unfortunately, I didn't read his article until after Beginning CSS had already been published, or I would have presented that opinion as well.
I'm on the fence on that topic. I like XHTML because it has rigid syntax. I also somewhat disagree with sending the application/xhtml+xml MIME type, because that presents the possibility of the user seeing the XML "Yellow Screen of Death", from XHTML documents that are not fully loaded. The YSOD, being the result of XML syntax that is not well-formed.
I still beleive that designers should design for the XHTML standard. But, in the end, HTML 4.0 is still a valid standard. We'll even see an HTML 5, eventually. Being a programmer, I just happen to like XHTML more, and beleive strongly, that the future of the web is XHTML.
XHTML 1.0, which appears in my book, can be sent as either text/html or application/xhtml+xml, and still conform to the standard. XHTML 1.1, and XHTML 2.0, on the other hand cannot be sent as text/html.
As with anything, including plain old HTML 4.0, designers should use validation tools to ensure that the markup they produce is well-formed, and conforms to the target standard. One of those tools being the W3C validation service at http://validator.w3.org. Hixie's arguments center around sending XHTML as text/html just invokes the browser's tag soup parser, instead of the more rigid XML parser, thereby making the more rigid syntax meaningless. I agree with his sentiments, but I also think that there's nothing wrong with this- if the developer knows what they're doing. e.g. validate the markup, and even use server-side programming to selectively supply the proper MIME type to browsers that support it. Unfortunately, Internet Explorer does not support this MIME type, which is another central point in Hixie's arguments.
I also found out, after Beginning CSS had shipped that the XHTML I presented isn't 100% compliant, eventhough validation at validator.w3.org told me it was. One thing is missing, a reference to the XHTML namespace, and in some of the examples a reference to the character set, though this isn't as bad, since it can be set in the HTTP headers instead.
Valid XHTML documents should begin as follows:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en'>
<meta http-equiv='content-type' content='text/html; charset=UTF-8' />
Mail_IMAP: A PHP/C-Client/PEAR solution for webmail
Author: Beginning CSS: Cascading Style Sheets For Web Design