¿Por qué no XHTML5?


53

Entonces, me dicen que HTML5 es el gran paso adelante. El último paso hacia adelante que dimos que conozco fue la introducción de XHTML. Las ventajas eran obvias: simplicidad, rigurosidad, la capacidad de utilizar analizadores y generadores XML estándar para trabajar con páginas web, etc.

Qué extraño y frustrante, entonces, que HTML5 revierta todo eso: una vez más, estamos trabajando con una sintaxis no estándar; una vez más, tenemos que lidiar con el equipaje histórico y la complejidad del análisis; una vez más, no podemos usar nuestras bibliotecas, analizadores, generadores o transformadores XML estándar; y todas las ventajas introducidas por XML (extensibilidad, espacios de nombres, estandarización, etc.), que el W3C pasó una década presionando por buenas razones, se pierden.

Bien, tenemos XHTML5, pero parece que no ha ganado popularidad como la codificación HTML5. Vea esta pregunta SO , por ejemplo. Incluso la especificación HTML5 dice que HTML5, no XHTML5, "es el formato sugerido para la mayoría de los autores".

¿Tengo mis datos equivocados? De lo contrario, ¿por qué soy el único que se siente así? ¿Por qué las personas eligen HTML5 sobre XHTML5?


66
+1 Veo que no soy el único frustrado con la pérdida de todas las ventajas de XML en HTML5.
Arseni Mourzenko

Bocinazo buena pregunta, bien puesta.
Konrad Rudolph

1
Espero no ser el único que está contento con la pérdida de todas las desventajas de XML en HTML5. Por ejemplo, comparemos HTML5 válido con XHTML válido. HTML5:, <!DOCTYPE html>Hello WorldXHTML:<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"><html xml:lang="en" lang="en" xmlns="http://www.w3.org/1999/xhtml"><head><title></title></head><body>Hello World</body></html>
zzzzBov

@zzzzBov, definitivamente no eres el único que está contento, y es por eso que hice esta pregunta en primer lugar. Además: no escribirías en serio <!DOCTYPE html>Hello World, ¿verdad? Prueba eso en este validador .
jameshfisher

1
@eegg, al parecer, usted no ha leído la especificación de etiquetas de inicio opcional , porque en serio iba a escribir <!DOCTYPE html>Hello World!, ya que es perfectamente válido HTML5. Los documentos más cortos significan menos gastos generales de ancho de banda, lo que equivale a ahorros significativos para las grandes empresas (¿ha visto lo que google envía para www.google.com?).
zzzzBov

Respuestas:


25

Yo recomendaría leer ¿Cómo llegamos aquí? . Mark Pilgrim ofrece una excelente y breve historia de HTML hasta HTML5.

Esencialmente, sin embargo, entiendo que muchas páginas web ni siquiera aprovechan la "X" de XHTML porque no especifican el tipo MIME adecuado para ello.


18
Sí. Mi resumen de esa historia sería: "Oye, nadie se ajusta a la especificación. Tal vez podríamos hacer que se ajusten a la especificación especificando que las personas pueden cometer los errores que quieran. Finalmente, todos nuestros documentos estarán libres de errores". y cumple con los estándares ". Nada bueno puede venir de escribir una especificación con la suposición inicial de que nadie respeta las especificaciones.
jameshfisher

1
@eegg, tu última línea muestra tu ignorancia a la realidad. Muchas cosas buenas ya provienen de asumir que nadie es perfecto . En lugar de la especificación que dice, "si comete algún error, todo está roto", en cambio dice, "si comete [este tipo de error] entonces [este resultado] es lo que debería suceder". ¿Cuántos libros estarían en nuestras estanterías si tuvieran que tener una ortografía, puntuación y gramática 100% correcta para que se publicaran?
zzzzBov

66
@zzzzBov, tu analogía con los libros publicados es extraña. ¿Por qué un analizador HTML debe ser más indulgente que un analizador para [cualquier otro idioma aquí], donde un error de sintaxis se encuentra con un mensaje de error? Imagine el caos en el que estaríamos si nuestros compiladores de C hicieran todo lo posible para reinterpretar silenciosamente la sintaxis rota.
jameshfisher

@eegg, puedo imaginar lo que sucedería si un analizador de cualquier otro idioma reaccionara a los errores de sintaxis de una manera más indulgente: pasaríamos menos tiempo buscando corchetes extraviados y puntos y coma faltantes y más tiempo escribiendo código funcional. No estoy diciendo que los buenos programadores aún no harían que sus programas estuvieran bien formados, pero ciertamente ayudaría a los programadores mediocres a escribir código de trabajo. Un Cprograma probablemente terminaría pareciéndose mucho más a un Pythonprograma en el sentido de que los puntos y comas podrían desaparecer, y lo que quedaría es el código importante.
zzzzBov

“El recurso solicitado /past.htmlya no está disponible en este servidor y no hay una dirección de reenvío”.
Marco

6

Si produce html5 compatible con xml y los envía con xml como tipo mime, entonces el analizador xml se usará con todo el buen jazz que vuelve;)

EDITAR: vea eso para obtener más información: http://wiki.whatwg.org/wiki/HTML_vs._XHTML


Definir "buen jazz". AFAIK no hay ninguna ventaja en analizar HTML como XML. Generar y transformar son otros asuntos, pueden ser convenientes, pero el análisis por sí solo no ofrece ventajas, solo desventajas (hace que los errores cosméticos sean fatales).
Joeri Sebrechts

3
@Joeri El hecho de que es mucho más fácil de analizar es una ventaja en mi libro, por una variedad de razones (el análisis estricto facilita la búsqueda de errores, mejor soporte de herramientas porque las herramientas son más fáciles de escribir, la desinfección de la entrada, etc.).
Konrad Rudolph

También puede proporcionar algunas funcionalidades no disponibles en html estándar, como micin xhtml con otros contenidos xml, y generalmente usar todas las funcionalidades xml, espacios de nombres por ejemplo. El analizador html puede corregir el código fuente incorrecto, errores cosméticos como los llama, pero esas correcciones tienen un precio. El precio es que el navegador necesita saber qué es probable que encuentre en el código, lo que limita las funcionalidades disponibles.
deadalnix

3

HTML5 es la conclusión lógica e inevitable de los navegadores que adoptan la ley de Postel ("Sé liberal en lo que aceptas").

Una vez que un navegador con suficiente participación en el mercado adopta este principio, otros se ven obligados a seguir su ejemplo, no solo por ser liberales al aceptar contenido no conforme, sino también al hacerlo de la misma manera que lo hacen sus competidores. HTML5 es el resultado lógico de esa situación: los proveedores de navegadores han decidido que, dado que no van a rechazar ningún contenido como no válido (al menos, no en el nivel HTML, ¡Javascript es otra cuestión!) También podrían sentarse alrededor del presentar y acordar una interpretación para cualquier cosa que el autor del contenido pueda arrojarles. En este entorno, no han reaccionado amablemente a los fanáticos de las normas diciéndoles que si solo hubieran rechazado el contenido mal formado desde el principio, no se habrían metido en este lío.

Entonces, usted y yo podemos gritar desde la barrera y decirles a los vendedores de navegadores y a sus usuarios que el mundo hubiera sido un lugar mejor si no hubieran creído a John Postel, pero el daño está hecho y es muy difícil deshacerlo.


3
La historia de la descuidada competencia de los navegadores es bastante cierta. Pero esta es la cuestión: por eso existen los expertos en estándares. Si todos los navegadores hubieran forzado el derecho desde el principio, las organizaciones como el W3C no tendrían que estar aquí para mantener las cosas bajo control. El objetivo de las normas es el control de daños; para que el organismo de normas ceda y acepte la descuidada, frustra su propio propósito.
jameshfisher

1
@eegg: HTML5 redefine las reglas de análisis para que todas las entradas sean válidas y sigan teniendo consecuencias predecibles. Si los errores de sintaxis son imposibles, se descartan toda una clase de errores desde el principio. La capacidad de XML de tener errores de análisis es un defecto de diseño, y debe reconocerse como tal.
Joeri Sebrechts

1
@Joeri, su posición parece ser la de la especificación HTML5, llevada a su loca conclusión lógica. "HTML5 redefine las reglas de análisis para que todas las entradas sean válidas", no lo hace. El concepto de errores de análisis aún existe. "Si los errores de sintaxis son imposibles, se descarta toda una clase de errores desde el principio" - ¿tal vez esto es parodia? Esta lógica es lo que parafraseé sarcásticamente en mi comentario a la respuesta de @pthesis. Sí, se elimina la clase de errores de sintaxis , para ser reemplazada por una clase más grande de errores de corrección de sintaxis del navegador .
jameshfisher

2

La especificación HTML5 se ha mejorado mucho en comparación con la especificación HTML4. En particular, el manejo de las condiciones de error y el marcado no válido en realidad está estandarizado, lo que significa que todos los navegadores que implementan correctamente el estándar manejarán el marcado no válido de la misma manera.

El HTML lo escriben los humanos la mayoría de las veces (generalmente junto con algún tipo de lenguaje de plantillas), y los humanos cometen errores. Siempre y cuando todos los navegadores manejen los errores de sintaxis de la misma manera, la regla "sé liberal en lo que aceptas" es perfectamente aceptable.

Realmente hay pocas ventajas en la producción de XML válido, ya que las herramientas y las bibliotecas para manejar HTML están (casi) tan fácilmente disponibles, y HTML es más fácil de escribir para los humanos que XML.


Sobre la especificación HTML4 , sí. Pero mi punto es que XHTML1.1 ya mejoró en eso. Las herramientas / bibliotecas para manejar HTML tienden a ser como BeautifulSoup : si bien son herramientas maravillosas, deberían morir junto con las páginas que se hicieron para analizar.
jameshfisher

1

De todos modos, nunca obtendrá los beneficios de un analizador más simple o herramientas XML estándar del lado del cliente.

Hay miles de millones de páginas en la web en HTML, algunas de ellas escritas por personas muertas hace mucho tiempo, por lo que nunca se actualizarán a XML. Así que si desea crear un agente de usuario de utilidad general que tiene que ser capaz de analizar antigua usanza HTML de todos modos. Podría decirse que XHTML solo introduce una complejidad adicional, ya que requiere un nuevo modo de análisis además del análisis HTML que ya debe admitir.

En el lado del servidor, aún puede aprovechar las herramientas XML, por ejemplo. generar XHTML usando XSLT. Pero si no está utilizando específicamente una cadena de herramientas XML, no hay ningún beneficio en el uso de la sintaxis XML en lugar de solo HTML.

(No es correcto que HTML sea una sintaxis "no estándar". La sintaxis de HTML se especifica con minucioso detalle en la especificación HTML5, por lo que es tan estándar como la sintaxis XML).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.