lunes, 28 de abril de 2014

La evolución del HTML



1. Las investigaciones del W3C

El lenguaje HTML es el resultado del trabajo del W3C. Estos trabajos de investigación pasan por varias etapas que han ido evolucionando con el tiempo. En la actualidad, los resultados de las investigaciones se publican en tres etapas: 
  • Los "borradores", Working Drafts, se publican para compartir los avances de las investigaciones con los demás. 
  • Las especificaciones se publican cuando el lenguaje ya está casi terminado y listo para usar. 
  • Las recomendaciones se publican una vez que el lenguaje está oficialmente aprobado y terminado.

A veces lleva mucho tiempo pasar de una especificación a una recomendación, puede que incluso años.


2. El HyperText Markup Language

Fue en 1991 cuando Tim Berners-Lee redactó los primeros "bocetos" (draft) del HTML.
En junio de 1993, aparece el primer documento técnico describiendo el lenguaje HTML: "Hypertext Markup Language (HTML) - A Representation of Textual Information and MetaInformation for Retrieval and Interchange" (http://www.w3.org/MarkUp/draft-ietf-iiir-html-01.txt).
El 8 de noviembre de 1993, aparece el HTML+ (http://www.w3.org/MarkUp/HTMLPlus/htmlplus_1.html).
La versión 2 del HTML ve la luz el 22 de septiembre de 1995 (http://www.w3.org/MarkUp/html-spec/html-spec_toc.html) bajo los auspicios del IETF (Internet Engineering Task Force).
En marzo de 1995 se publica el HTML 3 (http://www.w3.org/MarkUp/html3/) que se presenta como una "extensión" del HTML 2. Rápidamente es remplazado por la recomendación del HTML 3.2, el 14 de enero de 1997 (http://www.w3.org/TR/REC-html32.html).

La recomendación del HTML 4.01 se publica el 24 de diciembre de 1999. Para el W3C, esta versión es la última del HTML. EL W3C piensa que el futuro de las páginas web no está en el HTML, sino en el XML. El HTML "ha muerto", para el W3C.


3. La evolución con el XHTML

El lenguaje HTML conlleva limitaciones intrínsecas:

  • los elementos que se pueden usar se limitan a los indicados en la recomendación, 
  • el lenguaje es muy permisivo: es posible indicar el nombre de los elementos en mayúsculas o en minúsculas, algunas etiquetas de cierre son facultativas... 
  • los elementos no son realmente semánticos: el elemento <p> puede contener cualquier tipo de texto.
El W3C publica el 10 de febrero de 1998 (http://www.w3.org/TR/1998/REC-xml-19980210) la recomendación de un nuevo lenguaje, el XML (eXtensible Markup Language). La quinta edición se remonta al 26 de noviembre de 2008 (http://www.w3.org/TR/2008/REC-xml-20081126/). Este lenguaje permite superar todas las limitaciones del HTML. De este modo es posible crear todos los elementos que queramos, de forma totalmente semántica (por ejemplo, un elemento <cp> para contener un código postal o un elemento <precio> para incluir un precio) y la sintaxis es muy estricta. Se trata de un lenguaje ideal, en especial, para intercambiar datos estructurados en la web. Pero el XML interviene además en otros muchos lenguajes estándares del W3C (MathML, SVG...) y en otras tecnologías web.

Debido a su sintaxis permisiva, el HTML es incompatible con el XML. Para resolver esta incompatibilidad, el W3C reformuló la sintaxis del HTML para que fuera compatible con el XML: se trata del XHTML (eXtensible HyperText Markup Language). La primera recomendación sale a la luz el 26 de enero de 2000 (http://www.w3.org/TR/2000/REC-xhtml1-20000126/).

El XHTML presenta una sintaxis más estricta, como podemos ver en estos dos ejemplos:

Si se abre un elemento, deberá incluirse la etiqueta de cierre:

  • sintaxis correcta en HTML: <p>Mi texto 
  • sintaxis correcta en XHTML: <p>Mi texto</p>
El HXTML prevé el cierre de los elementos que no dispongan de una etiqueta de cierre:

  • sintaxis correcta en HTML: <br> 
  • sintaxis correcta en XHTML: <br/>

Además, los elementos XHTML deben escribirse en minúsculas y los valores de los atributos deben estar entrecomillados (con comillas dobles ").

  • sintaxis correcta en HTML: <P ID=intro> 
  • sintaxis correcta en XHTML: <p id="intro">

El W3C publica la recomendación del XHTML 1.1 el 31 de mayo de 2001 (http://www.w3.org/TR/2001/REC-xhtml11-20010531/). La última edición se remonta a noviembre de 2010 (http://www.w3.org/TR/xhtml11/). Esta versión abordaba el "auténtico XML", sin elementos incorrectos o que no se adaptaran a los estándares. Esto quiere decir que los documentos para la web ya no podían usar el tipo MIME text/html.
El XHTML 2 aparece solamente como Working Draft en agosto de 2002 (http://www.w3.org/TR/2002/WD-xhtml2-20020805/). Esta debía ser una versión del lenguaje "puro", sin ningún compromiso con el pasado, ¡hasta el punto de que era incompatible con el contenido web existente! Se trató de una iniciativa demasiado radical. El W3C proponía un lenguaje totalmente desconectado de la realidad, hecho para los informáticos y no para los diseñadores web. Al optar por la incompatibilidad con lo existente, el W3C cometió un grave error estratégico.
La recomendación del XHTML 2 no llegó nunca a publicarse. El 17 de diciembre de 2010, el W3C disuelve oficialmente ese grupo de trabajo.


4. Los disidentes del WHATWG

Ante ese fracaso de la evolución del HTML reconocido por el W3C, un grupo de "disidentes", encabezado por Ian Hickson (que trabajaba entonces en Opera Software), formó en 2004 su propio grupo de trabajo sobre el HTML, el Web Hypertext Application Technology Working Group, WHATWG (http://www.whatwg.org/). Los primeros miembros del WHATWG venían de Mozilla, Opera, Apple, y luego, Google. Los primeros resultados de sus investigaciones se aplicaron a los formularios. Ian Hickson era el editor y tomaba todas las decisiones finales. El WHATWG se ocupó en un primer momento de los formularios (Web Forms 2.0) y las aplicaciones web (Web Apps 1.0). Esas dos áreas de trabajo se encuentran ahora en el HTML5.


El WHATWG continúa con esas investigaciones (http://www.whatwg.org/specs/web-apps/current-work/multipage/), independientemente del W3C. Al HTML5 se le llama HTML Living Standard para no confundirlo con el HTML5 del W3C.
En julio de 2012, ante las dificultades del trabajo en común y la diferencia de objetivos con respecto al W3C, el WHATWG decide separarse y seguir su propio camino de manera totalmente independiente (véase el documento http://lists.w3.org/Archives/Public/public-whatwg-archive/2012Jul/0119.html). La consecuencia es que, a partir de entonces, el WHATWG propondrá una versión «viva» del HTML y el W3C llevará a cabo la normalización del lenguaje. Para los desarrolladores e integradores Web, eso complicará un tanto la tarea, ya que deberán conocer los elementos HTML5 propuestos por el WHATWG y comprobar si han sido validados por el W3C y son reconocidos por los navegadores.


Espero haber ayudado en algo. Hasta la próxima oportunidad!





No hay comentarios:

Publicar un comentario

       

Etiquetas

Academy (23) Accediendo a datos con ADO .NET (31) Acceso a la red (30) Algoritmo (34) Algoritmos en JAVA (2) Ampliación de clases (2) APRENDA A PROGRAMAR COMO SI ESTUVIERA EN PRIMERO - Autores : IKER AGUINAGA (3) APRENDA A PROGRAMAR COMO SI ESTUVIERA EN PRIMERO - Autores : IKER AGUINAGA (10) Aprendiendo a desarrollar en Windows 8 (5) Aprendiendo UML en 24 Horas (Autor : Joseph Schmuller ) (30) Arquitectura (29) Arquitectura del Computador (3) Arquitectura del Computador - Historia de la informática (1) Asignación de direcciones IP (23) Aspectos fundamentales de bases de datos (5) Auditoría de la dirección (2) Auditoría de Sistemas (3) Auditoría Informática - Un enfoque práctico - Mario G . Piattini y Emilio del Peso (7) Avanzado (23) Base de Datos (67) Básico (23) Bios (29) Business Productivity Online Suite - BPOS (3) Capa de Red (22) Capa de Transporte (16) Capítulo 1 - Documentos HTML5 (6) Capítulo 10. API Web Storage (2) Capítulo 11. API IndexedDB (4) Capítulo 12. API File (1) Capítulo 2. Estilos CSS y modelos de caja (7) Capítulo 3. Propiedades CSS3 (4) Capítulo 4. Javascript (6) Capítulo 5. Video y audio (6) Capítulo 6. Formularios y API Forms (8) Capítulo 7. API Canvas (5) Capítulo 8. API Drag and Drop (2) Capítulo 9. API Geolocation (2) CCNA1 v5.0 (227) CCNA1 v6.0 (23) CCNA2 v5.0 (26) CCNA3 v5.0 (25) CCNA4 v5.0 (23) CD-ROM (3) Chapter 1 How does Xamarin.Forms fit in? (7) Chapter 2 Anatomy of an app (5) Cisco (329) Cloud Computing (3) CNNA v5.0 Routing & Switching (248) CNNA v6.0 Routing & Switching (2) Codigo (2) Computadora (32) Configuración (29) Configuración de un sistema operativo de red (21) Control (29) Creación de tipos de datos y tablas (3) Creación y Administración de bases de datos (3) Creando la Interface de la Aplicación Windows (50) Creating Mobile Apps with Xamarin.Forms (13) Cuenta (29) Curso (32) Curso Aprendiendo a Programar (25) Datos (3) Desarrollando en Windows 8 - AVANZADO (2) Desarrollando en Windows 8 - BÁSICO (3) Desarrollando en Windows 8 - INTERMEDIO (2) Desarrollo (2) Desarrollo .Net (21) Desarrollo avanzado de Windows Store Apps usando C# (1) Desarrollo basado en conceptos de Ingeniería de Software para Visual Studio (2) DESARROLLO DE APLICACIONES WINDOWS CON MICROSOFT .NET (37) DESARROLLO DE APLICACIONES WINDOWS CON MICROSOFT .NET (Autor: Luis Dueñas Huaroto) (29) Desarrollo en Microsoft Visual Studio (44) Desarrollo en Microsoft Visual Studio - AVANZADO (15) Desarrollo en Microsoft Visual Studio - BÁSICO (14) Desarrollo en Microsoft Visual Studio - INTERMEDIO (18) Desarrollo en Windows Phone 8 (13) Diagnostico (4) Diagrama (3) Diagramas de actividades (2) Diagramas de colaboraciones (2) Diagramas de secuencias (2) Digital (2) Diplomado (2) Disco (29) Disco Duro (4) Diseño de aplicaciones de Windows 8 en HTML 5 (7) Dispositivos Electrónicos (11) Doctorado (2) Ejemplos (3) Ejemplos de algoritmos (27) El camino hacia el CSS3 (3) El diseño web flexible (6) El elemento de diseño Canvas (3) El enfoque de los sistemas (3) El flujo de un programa (2) El gran libro de HTML5 - CSS3 y Javascript - Autor: Juan Diego Gauchat (55) El principio de organicidad (7) Electrónica (2) Elementos de un sistema (5) Empresas (2) Entrada y salida (4) Entropía y neguentropía (7) Estrategia (2) Estructura de un programa Java (12) Estructuras de almacenamiento (10) Estructuras de control (6) Estructuras de las tablas en SQL Server (2) Estructuras fundamentales de los datos (2) Ethernet (21) Evolución y Familias de los Microprocesadores (15) Exámen (23) Exploración de la red (23) Extensión de clases (4) Facebook (4) Familia Intel (15) Forefront (8) Función (3) Funciones de una red (12) Funciones de una red informática (1) Fundamentos de C# para absolutos principiantes (17) Fundamentos de programación en Java (50) Generaciones de la computadora (5) Gestión (3) Gestión de riesgos - Auditoría de Sistemas (1) GONZALO MARTÍNEZ (1) Grupos Facebook (1) Harvard (29) Historia de las computadoras (11) HTML5 y CSS3 - Autor: Christophe Aubry (99) HTML5 y CSS3 aplicadal texto (7) HTML5 y CSS3 para los formularios (15) Imágenes (2) Implementación de Windows 7 (11) Información (31) Informática (29) Ingeniería (4) Instalar (29) Inteligencia (2) Inteligencia de Negocios con SQL Server (3) Intermedio (23) Internet (29) Internet Explorer 9 (3) Introducción a ASP.NET 5 (8) Introducción a Java (7) Introducción a jQuery (8) Introducción a la Auditoría de Sistemas (2) Introducción a la teoría general de sistemas (Oscar Johansen Bertoglio) (39) Introducción a Networking (2) Introducción a Window Forms (5) Introducción al acceso a datos con ADO .NET (9) Investigación de Operaciones (12) Java (52) Jump Start de consultas en las bases de datos de Microsoft SQL Server 2012 (8) La definición de un Sistema (6) La evolución del HTML y del CSS (3) La nueva sintaxis HTML5 (12) LA QUINTA DISCIPLINA en la práctica (Autor : Peter Senge) (28) Las animaciones en CSS3 (5) Las transformaciones CSS3 (11) Las transiciones con CSS3 (8) Licenciamiento Microsoft (3) Local Area Network (LAN) - Red de Area Local (2) Lógico (2) Los elementos de la estructura en html5 (9) Los elementos multimedia: audio y vídeo (2) Los estilos de caja en CSS3 (13) Los nuevos selectores de CSS3 (6) Maestría (2) Mantenimiento de Mouse y Teclado (2) Manual de Microsoft SQL Server - Full Transact SQL (68) Manual de soporte técnico para escuelas sobre windows 7 (42) Marco Teorico de Investigación de Operaciones (6) Medios de Almacenamiento (11) Medios de Networking (2) Mejorando la Interface de las Aplicaciones Windows (26) Memoria Tipos y Clases (5) Método (2) Metodología (1) Microsoft (324) Microsoft Lync 2010 (7) Microsoft Silverlight 4.0 (2) Microsoft Virtual Academy (356) Modelo (2) Modelo OSI y TCP-IP (2) Modelos con poco grado de dificultad de Programación Lineal - Investigación de Operaciones (13) Modelos con razonable grado de dificultad de Programación Lineal - Investigación de Operaciones (10) Modelos de desafio de Programación Lineal - Investigación de Operaciones (5) Modelos difíciles de Programación Lineal - Investigación de Operaciones (5) Modelos Fáciles de Programación Lineal - Investigación de Operaciones (13) Modelos lineales con solver (3) Modulo (23) Movimiento (2) Mozilla (29) MS SQL Server (77) MS Virtualization para Profesionales VMware - Gestión (3) MS Virtualization para Profesionales VMware- Plataforma (4) MVA (263) Negocio (2) Nivel Avanzado Desarrollo .Net (6) Nivel Básico Desarrollo .Net (11) Nivel Intermedio Desarrollo .Net (8) Normas técnicas peruanas y su evolución - Auditoría de Sistemas (1) Nube Privada - Avanzado (6) Nube Privada - Básico (6) Nube Privada - Intermedio (6) Office 365 (3) Optimización de Escritorio (10) Optimización de Escritorio - Avanzado (4) Optimización de Escritorio - Básico (3) Optimización de Escritorio - Intermedio (3) ORACLE 10g - ADMINISTRACIÓN Y ANÁLISIS (3) Oracle 10g y el Grid Computing (3) Organización aleatoria y secuencial (1) Partes principales de la Mainboard (12) Perceptron (2) Perfil (2) Periféricos de Entrada / Salida (15) Pesi (2) PHP y MySQL - Manual de aprendizaje para crear un sitio web - Autor : Olivier ROLLET (79) Plan (2) Plataforma (29) PMBOK (24) PMBOK - Guía de los fundamentos para la dirección de proyectos (24) PMBOK - INFLUENCIA DE LA ORGANIZACIÓN Y CICLO DE VIDA DEL PROYECTO (6) PMBOK - Introducción (11) PMBOK - PROCESOS DE LA DIRECCIÓN DE PROYECTOS (5) Prevención - Herramientas e Instrumentos de Medida (9) Principios básicos de enrutamiento y switching (201) Proceso (2) Proceso de auditoría de sistemas informáticos (2) Programación en Android - Auor : Salvador Gómez Oliver (46) Programación paso a paso de C# - Autor : Nacho Cabanes (16) Protocolos y comunicaciones de red (17) Proyecto (2) Qué es un sistema (4) Red de Área Local Inalámbrica (WLAN) (4) Redes (30) Redes inalámbricas - WIRELESS - Conocimiento general (15) Redes neuronales (2) Redes y Comunicaciones (45) Reparación de Fuentes - UPS - Estabilizadores (10) Reparación de Impresoras (9) Reparación de Monitores (16) Router (29) Seguridad en la Nube (3) Seminario (23) Server (24) Sharepoint 2010 - Nivel Básico (6) Sharepoint 2010 - Niveles Avanzados (18) Sharepoint 2010 - Niveles Avanzados - Básico (8) Sharepoint 2010 - Niveles Avanzados - Intermedio (9) Sinergia y recursividad (4) Sistema (33) Sistema de Cableado Estructurado (9) Software (30) SOLUCIÓN GRÁFICA DE MODELOS DE PROGRAMACIÓN LINEALES - INVOPE (8) Soporte a Infraestructura (3) SQL (38) SQL Azure - Introducción (3) Subsistemas de control (4) Tablas (4) Tarjeta Principal del Sistema (10) Tarjetas de Interfaces (7) Tecnología (31) Tecnologías LAN (1) TEORÍA GENERAL DE SISTEMAS (1) Tic (2) Tipo (2) TML5 y CSS3 - Autor: Christophe Aubry (12) Trabajando con el Formulario (7) Un diseño HTML5/CSS3: dConstruct 2011 (3) Un diseño HTML5/CSS3: FlipThru (2) Un diseño HTML5/CSS3: The Cat Template (2) Usando Controles Windows Forms (12) Usando Herramientas de Datos de Visual Studio (6) Ventas (2) Virtualización Hyper - V Nivel Básico (5) Virtualización Hyper - V Nivel Intermedio (5) What’s New in Windows 8.1 Security (4) Window (29) Windows 7 Segunda Fase - AVANZADO (4) Windows 7 Segunda Fase - BÁSICO (6) Windows 7 Segunda Fase - INTERMEDIO (4) Windows 8 - Vista Previa (4) Windows 8.1 To Go (2) Windows Azure (3) Windows Phone 7 (2) Windows Server 2008 R2 (3) Windows Server 2012 - Gestión y Automatización (3) Windows Server 2012 R2 Essentials (7) Windows Server 2012: Almacenamiento (5) Windows Server 2012: Identidad y Acceso (4) Windows Server 2012: Revisión Técnica (7) Xamarin (1)

Páginas vistas en total según Google