HTML5 (HyperText Markup Language, versión 5) es la quinta revisión del principal lenguaje de construcción de páginas Web. Pero cuando hablamos de HTML5 no solo hablamos del lenguaje sino de la infraestructura formada por HTM5/CSS3 y de las posibilidades ofrecidas por las nuevas APIs de JavaScript.
El Symposium se estructuró para intentar dar respuesta a la pregunta:¿Qué quieres Construir y cómo?
La tarea de definir las especificaciones del nuevo lenguaje está siendo realizada por WHATWG y W3C y todavía no está cerrada aunque los navegadores de última generación ya lo están implementando, cada uno a su manera.
http://www.whatwg.org/specs/web-apps/current-work/multipage/
http://developers.whatwg.org/
http://www.w3.org/TR/html5/
¿Por qué esta revisión tiene nombre propio y no es una revisión más del lenguaje?
La irrupción en el mercado de los nuevos dispositivos smartphone y tablets y la multitud de tamaños de pantalla y resoluciones han hecho que el viejo HTML quede obsoleto. Ha surgido con fuerza una nueva filosofía en la que prevalece que la página se adapte lo mejor posible al navegador/dispositivo frente a que se vea exactamente igual.
En este escenario la especificación de HTML5/CSS3 y los avances realizados en JavaScript están consiguiendo revolucionar el desarrollo de páginas web, hasta tal punto que dejan obsoletas y en desuso tecnologías propietarias que hasta la fecha habían sido referencia a la hora desarrollar webs como por ejemplo Flash.
Centrándonos en las mejoras, queremos destacar las siguientes:
- Nuevas etiquetas para mejorar la estructura semántica de las páginas y de sus contenidos: header, footer, nav, article, aside, figure, mark, time, progress, figcaption, video, audio, canvas, etc.
- Nuevos efectos visuales y animaciones (CSS3) : bordes redondeados, sombras, fondos degradados, gama de colores, bordes, fondos multiples, transiciones, mejoras en el tratamiento de las fuentes, etc.
- Construcción y validación de formularios:
- Nuevos atributos (placeholder, pattern, required, list, datalist, multiple, autofocus, etc).
- Nuevos pseudoselectores (invalid, valid, required, optional, etc).
- Mejoras en los dibujos en 2D:
- Canvas 2D: Dibujo de formas geométricas.
- SVG (Scalable Vector Graphics): Dibujo de gráficos vectoriales.
- Mejoras en dibujos 3D: WebGL (Canvas 3D).
- Reproducción de Audio: Permite la reproducción de ficheros de audio sin utilizar plugins adicionales, aunque el formato soportado depende del navegador que se utilice, por lo tanto es necesario que audio esté disponible en varios formatos si queremos que funcione en todos los navegadores
- Reproducción de Vídeo: Permite la reproducción de ficheros de video. Al igual que para el caso de audio cada navegador da soporte a distintos formatos de almacenamiento y compresión.
- Evolución del almacenamiento de información en cliente (evolución del las cookies): Permite almacenar información en el navegador de forma permanente:
- Web Storage: Almacena información con formato clave-valor.
- Web SQL: Almacena información con la semántica de SQLite.
- IndexedDB: Almacenamiento de objetos al estilo de la BBDD NoSQL.
- Posibilidad de manejar threads JavaScript (Web Workers).
- Mejoras en la comunicación cliente-servidor:
- Web Sockets: Facilita la comunicación bidireccional con menor transmisión .de datos una vez establecido el canal.
- Server Sent Events (SSE): Facilita la comunicación bidireccional y los mensajes push del servidor al cliente.
- Drag & Drop de elementos web.
- Drag & Drop de archivos desde el escritorio. Un ejemplo de esta funcionalidad la implementa gmail para adjuntar archivos.
- Escritura en sistema de archivos desde JavaScript (FileSystem).
- Geolocalización.
- Manejo del historial de navegación (History).
Hay que tener en cuenta que no todos los navegadores soportan todas las mejoras que ofrecen HTML5 y CCS3. Para ayudarnos en el desarrollo de la página existen librerías que detectan si una característica es soportada por el navegador (Modernizr) y otras que permiten simular el comportamiento en navegadores que no implementan dicha característica (Polyfills).
HTML5 está siendo definiendo en la era de los dispositivos móviles y por lo tanto se está adaptando a ellos. Con la ayuda de PhoneGap se pueden empaquetar como aplicaciones móviles, aplicaciones hechas con HTML5 y JavaScript y que pueden ser desplegadas en 7 plataformas distintas (iOS, Android, Blackberry, Windows Phone, Palm WebOS, Bada y Symbian). Estas aplicaciones móviles desarrolladas con HTML5 tienen como ventaja frente aplicaciones nativas que sólo se desarrollan una vez y no hay que hacer una versión diferente para cada sistema operativo. La librería Jquery Mobile permite interactuar con los dispositivos móviles, capturando eventos propios de los móviles (como la pulsación y desplazamiento propio de los carruseles de fotografías). Otras Librerías JavaScript permiten incluso interactuar con elementos como la cámara.
Por todos estos aspectos podemos considerar HTML5 como la mejor opción para iniciar un nuevo desarrollo web, ya que facilita el desarrollo y amplía las posibilidades al alcance del desarrollador.
Imagen por w3.org