HTML5 CSS3 (!!!) y JavaScript
HTML5 CSS3 (!!!) y JavaScript
Marino Posadas
ADVERTENCIA LEGAL
Impreso
Precio: 29,50€
ISBN: 978-84-939296-2-6
Edición impresa en Navarra por Ulzama
Digital
Precio: 9,95€
ISBN: 978-84-939296-1-9
A Juan José García y Javier García,
con la promesa de que jamás les obligaré a leer nada mío.
A mis sobrinos
A Milagros… siempre.
«Hay solo dos clases de lenguajes de programación: aquellos de los que
la gente está siempre quejándose y aquellos que nadie usa»
Bjarne Stroustrup
Bill Gates
Agradecimientos
1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Objetivos de la W3C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
Objetivos de esta obra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
Las Herramientas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
HTML 5: La nueva propuesta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
El World Wide Web Consortium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
Estándares, HTML y la W3C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
El lapso de tiempo desde el último estándar . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
El problema de las fechas de terminación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
Los navegadores y el estándar: IE10 como objetivo . . . . . . . . . . . . . . . . . . . . . . .19
Nuevas reglas del juego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
Los navegadores antiguos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
Los objetivos del estándar en la práctica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22
Motores de JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23
Librerías y Lenguajes que compilan a JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . .24
¿Por qué no esperar a que el estándar esté terminado? . . . . . . . . . . . . . . . . . . . .25
El sueño de una Web Semántica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26
Los Identificadores uniformes de recursos (URI vs. URL) . . . . . . . . . . . . . . . . . .27
URI y Semántica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
Especificaciones y pruebas de laboratorio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29
Los test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Los sitios alternativos de pruebas de conformidad . . . . . . . . . . . . . . . . . . . . . . . .30
Los sitios oficiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
Las aplicaciones web y el nuevo modelo de aplicaciones en Windows8 . . . . . . . . . .32
Aplicaciones Windows 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
El nuevo modelo de aplicaciones Windows 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34
La posición de Silverlight y Flash en Windows 8 . . . . . . . . . . . . . . . . . . . . . . . . . .35
WinJS y los controles "de fábrica" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
La división granular de JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38
Ejecución y soporte del estándar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39
Los motores Chakra y los dos contextos de ejecución . . . . . . . . . . . . . . . . . . . .40
Hablando sobre el estándar: la opinión de un protagonista . . . . . . . . . . . . . . . . . . . . .41
Entrevista con Paul Cotton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52
Referencias de la Web Semántica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52
1
Lee ejerce funciones de director y trabaja en colaboración con otros equipos del resto de organizaciones
miembro
2
Disponible en www.w3c.es
página
13
<< Introducción
Objetivos de la W3C
14
Introducción >>
Las Herramientas
3
http://www.w3.org/
3
La especificación XML ya va por la 5ª edición y su documento oficial está disponible en
http://www.w3.org/TR/2008/REC-xml-20081126/
página
15
<< Introducción
5
La W3C recibe aportaciones de 3 fuentes distintas: Cuotas de los Miembros del W3C, Becas de investigación
y otras fuentes de subvención pública y privada, y donaciones individuales de dinero y equipamiento.
6
El sitio Web Identi.ca (http://identi.ca/w3ces) coordina las actividades de la W3C en España, que son
—en su gran mayoría— de carácter abierto al público.
7
Es curioso, por ejemplo, leer el "post" de Marc Andreessen, sugiriendo una nueva etiqueta HTML que
el propuso que tuviera el nombre <IMG>…
página
16
Introducción >>
por esta misma editorial, Javier Holguera define los estándares de la siguiente forma:
"Existen dos tipos de estándares: de facto y de iure. Los primeros suele establecerlos una compañía
o producto, que debido a su uso masivo en un campo, se convierten en referencia en el mismo,
aceptados por el resto de miembros del mercado; los segundos son coordinados por un organismo de
estandarización y aseguran un proceso de revisión y consenso entre las partes interesadas, antes de
su publicación. Este proceso de revisión y consenso es, precisamente, el que los hace más beneficiosos
que los estándares de facto, que normalmente responden a los intereses de una única parte.
Existen muchos ejemplos de ambos tipos de estándares, e incluso algunos de ellos que han
pasado por ambas fases. Por ejemplo, PDF nació en 1993 y su popularidad lo convirtió en el es-
tándar de facto de documentos imprimibles. Sin embargo, no sería hasta 2005 cuando se con-
vertiría en un estándar de iure, con la publicación de PDF/A en ISO, uno de los organismos de
estandarización más importantes."
Como apuntábamos al inicio, la primera especificación relevante publicada por la
W3C fue la versión HTML 3.2, ya que su primer trabajo fue un intento de poner orden
en la situación anterior con una especificación de compromiso que aclarase de alguna
forma el caos existente y que se bautizó como HTML 2.0, entendiéndose que todo el
desorden anterior a ese momento recibiría genéricamente el nombre de HTML 1.0,
aunque nunca hubiera existido tal especificación.
Un tiempo después, se pudo observar que el trabajo que realizaba W3C para la
normalización difería notablemente de los planes de Netscape, por lo que hubo que
hacer tabla rasa del trabajo anterior y abordar el problema con seriedad, a partir de la
situación real. Al conjunto de dicho trabajo se le llama de forma genérica HTML 3.0
ó HTML+. Finalmente, llegó HTML 3.2, que recogía todas las principales características
de Netscape y de Internet Explorer, y que es la primera a la que puede llamársele estándar
de facto.
Han transcurrido más de 11 años desde la última publicación de HTML (la versión
4.019, para ser exactos). En el medio, mucho trabajo, pero no tantos estándares generados,
a veces por falta de coordinación otras por conflictos de intereses. Lo más reseñable,
la especificación XHTML 1.010, que —en palabras de la propia W3C— es una refor-
8
Internet Explorer 9 y HTML5 (Javier Holguera): http://www.netalia.es/libros
9
La especificación HTML 4.01 data de Diciembre de 1999: http://www.w3.org/TR/1999/REC-html401-
19991224/
10
http://www.w3.org/TR/2002/REC-xhtml1-20020801/
página
17
<< Introducción
mulación de HTML 4.0 en XML 1.0. O sea, un HTML con sintaxis estricta. Su adop-
ción ha sido insuficiente.
El problema principal estriba en la gran cantidad de autores que ignoran la exis-
tencia de estos nuevos estándares, y la enorme base de páginas ya creadas que pedían a
gritos seguir funcionando, aunque no cumplieran con las restricciones impuestas. Pos-
teriormente, hubo un nuevo intento, todavía más restrictivo: XHTML 2.0. Este ni si-
quiera vio la luz como recomendación final, ya que se produjo un claro desacuerdo
entre los partidarios de que las páginas que no lo cumpliesen dejasen de funcionar y los
más pragmáticos, que abogaban por una "política de hechos consumados". Más de la
mitad de las páginas existentes hubiesen dejado de mostrarse correctamente (o incluso,
incorrectamente: no se hubieran mostrado en absoluto).
Por fin, hace unos 4 años, se produjo un nuevo intento de unificar las fuerzas en
busca de algo nuevo, que no cayese en los errores o problemas anteriores, y que se
hiciese eco de los nuevos requisitos que tiene la Web de hoy día. Se reanudaron los
contactos, se empezó a detectar un interés de toda la industria en una renovación, y las
empresas más importantes del mundo acordaron participar en el nuevo proyecto.
No aburriré al lector con estadísticas detalladas, pero se anuncia que —en bre-
ve— el 50% del tráfico de la red, corresponderá a vídeos. Además, el número de páginas
existentes ya supera al de los habitantes del planeta y la gran mayoría de ellas siguen
basándose en el viejo estándar (que, a su vez, tiene por núcleo principal lo ya establecido
a primeros de los 90). Y veinte años son muchos años en Computación. La renovación
se hacía imprescindible.
18
Introducción >>
de forma oficial hasta mucho después, el "corpus" principal del estándar debe estar listo
—e implementado en los navegadores— mucho antes.
De hecho, la mayoría de los navegadores modernos ya lo implementa en buena
parte y cada nueva versión aporta mayor compatibilidad. Esa es una de las razones por
la que la política de actualizaciones en los navegadores ha sufrido un acelerón tan notable
en los últimos tiempos.
Por otra parte, existen librerías para resolver las posibles incompatibilidades en el
caso de navegadores más antiguos, simulando ese comportamiento, o bien aportando
algo que se ha dado en llamar fallback: una salida alternativa cuando las cosas no van
exactamente como se pensaba, o no existe soporte de una característica por parte de un
navegador dado.
19
<< Introducción
11
http://www.ecma-international.org/
página
20
Introducción >>
21
<< Introducción
12
http://www.ecmascript.org/
página
22
Introducción >>
mentación. Así que, buena parte del trabajo realizado para esa versión 4 (el que
disfrutaba de un mayor consenso) ha pasado a formar parte de la nueva edición.
Motores de JavaScript
13
http://www.ecma-international.org/publications/standards/Ecma-262.htm
14
http://test262.ecmascript.org/
página
23
<< Introducción
puede aportar. Y esto se resume, sobre todo, en la gestión del estado de las apli-
caciones, la geo-localización, las aplicaciones off-line, las comunicaciones dúplex,
el almacenamiento local y de sesión, el acceso a una base de datos sencilla, el
soporte de tareas asincrónicas, etc.
Como hemos apuntado, dichas tareas no están siendo abordadas por la W3C
directamente. Ellos, más bien, sirven de coordinadores del trabajo, como explica
Paul Cotton en su entrevista. La buena noticia es que se han establecido ya
claramente cuáles van a ser las más importantes, y las que formarán parte de la
versión final, y cuales no (por ejemplo, WebSQL se ha abandonado a favor de
IndexDB).
24
Introducción >>
Terminado o no, los fabricantes están incorporando el soporte, dado que la posi-
bilidad de consumir servicios de la nube mediante una sola programación es muy atrac-
tivo y promete abundantes ingresos. Y esto es válido con un énfasis especial en los 5
navegadores más populares: IE, Firefox, Google Chrome, Safari y Opera.
Así que se trata también de una decisión estratégica. Podemos migrar nuestros
sitios a HTML 5 ahora mismo, y empezar a aprovechar sus posibilidades. Las librerías
de compatibilidad, y las otras opciones apuntadas, consiguen que los navegadores
antiguos comprendan el modelo (casi) de igual forma, y de esa manera, estaremos pre-
15
http://jQuery.com
16
www.dartlang.org
17
Puede encontrar una completa lista de las opciones disponibles y sus enlaces asociados en la página
http://bit.ly/goZv7i
página
25
<< Introducción
nota
tándar de algunos fabricantes, como Microsoft, es tan fuerte,
que Windows 8 puede programarse directamente mediante
éste nuevo estándar. Hablaremos más de ello en éste capí-
tulo.
parados para las evoluciones futuras y podremos aprovechar sus características globales.
Y hay otras ventajas adicionales.
De cara a los buscadores, la precisión con la que éstos pueden encontrar nuestras
páginas debido a las características semánticas, será muy superior. Podremos utilizar
jQuery para enriquecer las páginas, obteniendo un buen rendimiento gracias a los
nuevos motores y no precisaremos de ningún añadido adicional si lo que queremos es,
simplemente, mostrar un vídeo o reproducir una animación, por ejemplo.
Y contamos con otra consideración a favor de la adopción inmediata. Las herra-
mientas de desarrollo que propondremos a lo largo de esta obra (Visual Studio 2012 -
o 2010 y las versiones Express), ya soportan la sintaxis de los estándares y podremos
encontrar un valor añadido en ellas (el nuevo Page Inspector de la versión 2012 es ex-
celente para el desarrollo con el estándar).
26
Introducción >>
URI y semántica
Ahora bien, como cualquier persona puede crear un identificador URI, inevita-
blemente acabaremos con varios identificadores URI que representan lo mismo. O lo
que es peor: no habrá ninguna forma de averiguar si dos identificadores URI apuntan
exactamente al mismo recurso. Por lo tanto, nunca podremos decir con certeza lo que
significa un URI concreto. Se precisan soluciones de compromiso para crear algo tan
enorme como la Web semántica.
página
27
<< Introducción
28
Introducción >>
Los test
Una vez identificados y aprobados inicialmente, con los materiales reunidos se procede
a testar el nuevo estándar en varias fases de pruebas. Internamente, la W3C dispone de
una herramienta denominada Bugzilla, con la que gestionan el estado de los bugs y su
situación respecto a la resolución.
18
En España, destaca el grupo de trabajo vinculado a la Universidad Politécnica de Madrid, con una docena
de miembros, bajo la dirección de la responsable de la Web Semántica en esta institución, Carmen
Costilla.
página
29
<< Introducción
A partir de aquí, la W3C y sus entidades asociadas comienzan los test oficiales,
para los que utilizan una serie de herramientas propias, a la vez que coordinan iniciativas
individuales, "extraoficiales", con el propósito de elaborar cuadros de conformidad res-
pecto a las normas establecidas.
La validez de los sitios de pruebas que están fuera de los canales oficiales es más
que discutible, y algunas veces roza lo partidista o, simplemente, interesado. Por ejemplo,
algunas prueban aspectos que no están en el estándar, o dan la misma validez a aspectos
colaterales o parciales que a otros troncales de la especificación. De este corte, podemos
catalogar algunas propuestas como HTML5Test.com, que testea otros aspectos que no son
parte del estándar, o Caniuse.com, que no comprueba la implementación correcta de las
características sino solo su existencia.
Precisamente, teniendo en cuenta estas circunstancias, los creadores de uno de los
test privados más populares (los test ACID) han modificado recientemente algunos as-
pectos de estos test, para que resulten más acorde con las especificaciones oficiales. Tras
esas modificaciones, es interesante notar que todos los navegadores utilizados en esta
obra pasan estos test con un 100% de efectividad.
página
30
Introducción >>
De cualquier forma, los test más serios de compatibilidad con el estándar son los que
provienen de sus creadores. En concreto, la página HTML5 Test Suite Conformance Results19,
realiza un test de compatibilidad para cada visitante indicándole el nivel de conformidad del
navegador elegido respecto a 7 grupos principales, y mostrando después un desglose de más
de 900 test, uno a uno. El lector puede probar este punto en la dirección indicada.
Además, para aquellos interesados o curiosos respecto a determinado aspecto del es-
tándar, existe una página de la propia W3C que permite realizar test individuales de una
sola característica (test harness), disponible en la dirección http://w3c‐test.org/html/tests/har‐
ness/harness.htm.
Por otra parte, desde la aparición de la versión Release Candidate de Windows 8, ya
disponemos de una versión del navegador IE10 muy próxima a la que será la final, y preci-
samente, Microsoft ha publicado casi simultáneamente un análisis de soporte del estándar
en comparativa con las versiones más recientes de los navegadores, estableciendo como fecha
el 1 de junio de 2012. El gráfico siguiente muestra los resultados del porcentaje de soporte
de ésta versión, en comparación con las versiones más recientes (a la misma fecha) del resto
de navegadores populares: Chrome, FireFox, Opera, Safari e IE9. Las diferencias pueden
apreciarse a primera vista, ya que, del total de test enviados, —en 7 categorías distintas— el
nuevo IE10 obtiene el 100% en 4 de ellas, el 99% en otras 2, y el 96% en la restante.
Como puede apreciarse en la figura 3, tomada del sitio oficial de test para IE20, en
estos momentos IE10 es el navegador que implementa el estándar HTML con mayor
nivel de fidelidad.
19
http://w3c-test.org/html/tests/reporting/report.htm
20
http://samples.msdn.microsoft.com/ietestcenter/
página
31
<< Introducción
21
http://europe.msteched.com/
página
32
Introducción >>
Aplicaciones Windows 8
33
<< Introducción
dos tipos de aplicaciones: las tradicionales, que seguirán funcionando como hasta ahora
y las Windows 8 (ver figura 5), en las que se hace hincapié en una nueva forma de uti-
lización donde las pantallas son de tipo táctil, y una API llamada WinRT (Windows Run-
Time) provee a las aplicaciones de lo necesario para acceder a los recursos del sistema.
Se trata de una capa muy ligera que funciona por encima del kernel de Windows,
y tiene la particularidad de permitir a desarrolladores de diversos lenguajes un acceso
común y uniforme a esos recursos, independientemente de que provengan del mundo
.NET, de C/C++, o de HTML5 y JavaScript.
34
Introducción >>
recursos del sistema operativo. Es lo que vemos en el gráfico en la parte inferior de la zona
verde, y que se agrupa como System Services (a la izquierda, en vertical).
Por encima tenemos los controladores de modelo (Model Controllers), o sea, los
motores de ejecución y las API en las que nos apoyaremos para crear este tipo de apli-
caciones, dependiendo de la opción de lenguaje escogida.
Finalmente, en la capa superior, de esta zona verde (o zona Windows 8), bajo el
epígrafe "View", es donde aparecen los diversos lenguajes, y vemos 3 opciones dispo-
nibles: HTML y CSS, XAML/DirectX con C/C++ y XAML con .NET.
Advierta el lector que Silverlight no aparece en esta área, y —de hecho— está expre-
samente vetado ya que no se podrán ejecutar complementos desde el navegador (ni Sil-
verlight, ni Flash), ni se podrán ejecutar aplicaciones OOB en este contexto.
¿Significa eso que nuestras inversiones anteriores no serán válidas? En absoluto.
Como apreciamos en el gráfico, la zona azul se reserva para la ejecución de todas las
aplicaciones anteriores, y ahí tiene cabida Silverlight, igual que cualquier otra aplicación
realizada en .NET, C/C++, o incluso, HTML5 y JavaScript, que —como vemos— se
encuentra en ambos lados del diagrama.
Adviértase también que —no estando Silverlight ni WPF específicamente indicados
en la zona verde— XAML se convierte en un modelo común para la construcción de
interfaces de usuario, tanto para aplicaciones basadas en .NET como para los desarro-
lladores de C/C++, si bien éstos pueden usar igualmente DirectX.
O sea, que nuestra inversión previa en aprendizaje, código generado, librerías cor-
porativas, etc., se encuentra garantizada por esta arquitectura con mínimos cambios.
En caso de preferir continuar con las aplicaciones tradicionales de escritorio, o simple-
mente, instalar o mantener aplicaciones tradicionales, nos moveremos en la "zona azul",
donde todo lo presente hasta ahora sigue apareciendo, y para lo que el sistema garantiza
un funcionamiento transparente.
35
<< Introducción
36
Introducción >>
a las API necesarias del sistema. De hecho, cuando desarrollamos una aplicación Win-
dows 8 con JavaScript, así se llama el espacio de nombres que nos da acceso a WinRT.
Si el lector descarga la versión Windows 8 Consumer Preview, e instala la versión
gratuita por tiempo limitado de Visual Studio 2012, podrá iniciarse en la construcción
de aplicaciones de esta clase. Un vez instalado, en la opción "Nuevo Proyecto", veremos
cómo Visual Studio nos ofrece un paquete de opciones de diversas plantillas preinstaladas
—a su vez— separadas por categorías, como podemos ver en la figura 8.
Si optamos por una de ellas, por ejemplo la de Geo-localización, veremos que nos
construye una aplicación básica de tipo Windows 8, que incluye las características de
esta API. Y, si accedemos al archivo que contiene el punto de entrada de la aplicación
(program.js), veremos código similar al del listado 1.
Donde advertimos la llamada de inicialización de la aplicación, de forma similar a lo
que los desarrolladores de .NET estamos acostumbrados en las llamadas a InitializeCom‐
ponent() de las clásicas aplicaciones .NET. Se trata ya de aplicaciones programadas bajo el
nuevo estándar, que hacen uso de los 3 pilares principales: HTML5, CSS3 y JavaScript.
Si observamos el Explorador de soluciones, veremos que, en "References", aparece
la librería Microsoft Windows Library for JavaScript SDK, que es la que se utiliza para
página
37
<< Introducción
function initialize() {
WinJS.Application.start();
WinJS.Application.addEventListener("checkpoint", applicationStateCheckpoint, false);
WinJS.Application.addEventListener("activated", applicationActivated, false);
Listado 1: Código JavaScript generado por Visual Studio 2012 que utiliza WinJS
38
Introducción >>
Pero hay un problema. Si un solo fichero de esta clase declara el uso de esta mo-
dalidad fuera de una función, al producirse el empaquetado, todos los demás van a
asumir la interpretación estricta de forma automática, lo que podría desembocar en
comportamientos no deseados. Mediante la granularidad se minimiza este efecto.
39
<< Introducción
A la vista de los dos tipos de aplicaciones y las dos formas de ejecución, parecen
surgir ciertas discrepancias o imprecisiones respecto a los motores de HTML5/JS que
aparecen repetidos en ambos lados del diagrama. En realidad, no es así. Simplemente,
si queremos que una aplicación HTML5/JS se ejecute como una aplicación Windows 8,
utilizaremos las librerías de WinJS. Si no queremos depender de Windows 8, y deseamos
una ejecución universal en cualquier tipo de plataforma y dispositivo, utilizaremos el
motor del navegador correspondiente.
Y el encargado de esa interpretación en I.Explorer es una versión renovada del
motor Chakra actualmente en uso en IE9. Chakra (cuyo modelo funcional vemos en
la imagen adjunta), es el nombre del motor de JavaScript/DOM altamente optimizado
que Microsoft introdujo en su navegador Internet Explorer 9 y que ha seguido evolu-
cionando desde entonces.
Está presente ahí y lo estará independientemente en la versión IE10 de Windows
8 (en sus dos versiones, Windows 8 y Desktop). Los test realizados sobre Chakra lo
40
Introducción >>
ponen a la cabeza de todos los motores existentes, ofreciendo un rendimiento sin pre-
cedentes en este tipo de aplicaciones, y un altísimo nivel de soporte de las API de Ja-
vaScript 5.
Así pues, este es el panorama que se nos presenta respecto al desarrollo con HTML
5. Muchas de las demos realizadas en los últimos eventos de desarrolladores (BUILD,
Tech-Ed, etc.) estaban hechas utilizando estos recursos y ofrecían un rendimiento ex-
celente en todas las máquinas utilizadas. Por otro lado, se comentaba que los cambios
que habría que realizar para que una aplicación HTML5 funcionase con el nuevo modelo
serían mínimos en un principio, y una aplicación hecha así, podría siempre extenderse
al nuevo sistema con poco esfuerzo.
Al lector interesado, le recomendamos una visita a los sitios Web de los eventos
de desarrollo de Microsoft indicados antes, si quiere acceder a vídeos explicativos de la
forma en que se van a construir estas nuevas aplicaciones.
Estamos en el Hotel Ritz de Madrid, con Paul Cotton. Es una de las personas al cargo del
W3C HTML5 Working Group en relación con Microsoft. Nos gustaría comenzar esta en-
trevista con una primera pregunta en relación con la participación de Jean Paoli en el estándar
XML. Si no recuerdo mal, esa fue la primera aproximación de Microsoft al trabajo en la
página
41
<< Introducción
Sí. De hecho, yo trabajaba con IBM cuando empezaron los trabajos con XML.
Trabajaba con bases de datos, y añadir capacidades de
notación de datos estructurados se ha demostrado que
ha sido un área muy importante. Así que Jean (y Tim
Bray, al que citabas antes de la entrevista, y al que co-
nozco personalmente, porque los dos somos cana-
dienses y hemos trabajado en el área de HTML) y yo
en esa época fue cuando empezamos a colaborar con
la W3C. Luego yo continué para dirigir el grupo de
trabajo de XML Query.
Y pienso que esa es una característica importante
de W3C. Reúne a muy diversas comunidades: la in-
dustria, la academia, etc. Hoy tenemos las mismas circunstancias que entonces.
Todas las áreas de la industria están implicadas, pero también hemos invitado a
expertos independientes, desarrolladores Web, expertos en Accesibilidad, etc.
Así que pienso que lo que dices es justamente la situación: reunir esas distintas
comunidades juntas es un aspecto muy importante para ganar interoperabilidad.
Y esos primeros contactos sembraron lo que HTML5 puede ser al día de hoy.
¿Qué sucedió con XHTML 2.0? ¿Era demasiado ambicioso o demasiado inaceptable, en
términos de compatibilidad hacia atrás?
42
Introducción >>
torno a un esfuerzo común. Una vez que se consiguió esto, el proyecto entero flo-
reció de nuevo.
Los recursos de la W3C son limitados y decidieron concentrarse en lo que
se llamó más tarde Plataforma Web Abierta (Open Web Platform), que incluye
HTML 5 y otras especificaciones. De hecho, en la actualidad se pueden publicar
webs utilizando la compatibilidad de ambos formatos. Nosotros lo llamamos el
"formato políglota".
Es una pregunta muy difícil. HTML5 es una "marca" o un nombre que no se en-
tiende realmente muy bien. Yo pertenezco al grupo de trabajo principal del estándar
de HTML5 pero no puedo olvidar que no se hacen sitios web sin CSS, y otras
API que se están desarrollando actualmente en otros grupos de trabajo. Lo que
trataba de subrayar es que van a existir un número creciente de especificaciones
adicionales.
43
<< Introducción
Algunas veces, cuando no hay un consenso claro, la W3C tiene que decidir de acuerdo con
algo que llaman la "Decision Policy". ¿Existe una votación? Y, de ser así, ¿cuán democrática
resulta esa política de decisiones?
22
Se refiere a Imec Technology Forum, que días antes había celebrado una reunión internacional en
Bélgica. Para más información ver http://www2.imec.be/be_en/education/conferences/itf2011.html
página
44
Introducción >>
Sí, utilizamos una herramienta que se llama Bugzilla, para permitir que la gente
pueda archivar los bugs. Y es parte de esa política de decisiones.
Y está abierta a cualquiera, en realidad. Así que, cuando lle-
gamos a la etapa Last Call, en una especificación, que es cuan-
do ha sido ampliamente publicada y comentada, tratamos esa
especificación como una beta de software.
Es muy fácil para cualquiera solicitar una cuenta para W3C, y poder dar de
alta nuevos bugs con esa herramienta. Nosotros consideramos esos bugs como parte
de la política de decisión. Uno de los 9 editores de las especificaciones de que
consta el estándar, estará encargado de "tratar" el bug de forma adecuada. Algunos
son muy fáciles de manejar (como los errores sintácticos), otros pueden estar so-
licitando una nueva característica, o cualquier otra cosa. La persona que envía el
bug recibe un e-mail, indicando que el bug ha sido procesado.
Y se puede producir un diálogo, en el que una tercera parte opina igualmente
sobre la resolución del bug, etc. Así que es un proceso bastante dinámico, y —en
buena parte— asíncrono.
En la actualidad, yo diría que estamos gestionando una media de unos 200
y pico bugs por mes.
En la línea de la pregunta anterior, usted mencionó que buena parte de su tiempo lo pasa
trabajando con la infraestructura de pruebas. ¿Cómo son realmente esas pruebas?
45
<< Introducción
Creo que tengo dos mensajes. Uno, por mi pertenencia al W3C y otro por repre-
sentar a Microsoft. La W3C está convencida que esta Plataforma Web Abierta,
que incluye HTML 5, CSS, las API relacionadas, ECMAScript -que se está re-
novando en ECMA—, el protocolo que está siendo desarrollado por ITF, etc.,
son tecnologías que cambiarán las reglas del juego.
Y piensa que nos va a permitir sitios Web muy innovadores y potentes, y también
creemos que vamos a ver un gran movimiento hacia las
aplicaciones HTML 5. Y es posible que —dentro de 2
ó 3 años— esas aplicaciones puedan conseguir resultados
tan interesantes como las llamadas aplicaciones nativas,
ya se trate de plataformas PC o de dispositivos móviles,
teléfonos o tablets. Así que ese mi principal mensaje. HTML 5 es muy importante, y
la W3C es el sitio donde se está realizando ese trabajo y el Advisory Comitee Meeting,
al que he asistido en Bilbao es otro ejemplo de reunión de la comunidad en torno a
una misma idea.
Así que hemos visto como compañías que antes no estaban en estas reuniones,
como Disney, LG o Sony, han vuelto a participar activamente. Lo mismo sucede
con las compañías telefónicas, como Nokia, Eriksson o AT&T. Otro ejemplo es
Comcast, una de las compañías de cable más importantes de EE.UU., que ahora
es miembro de la W3C.
Desde el punto de vista de Microsoft, he estado trabajando con el equipo de
Internet Explorer durante unos dos años, desde IE8, luego IE9 y ahora con la
preview de IE10. Y creo que la implicación de Microsoft con el estándar es muy
23
Testing Task Force, en el original inglés.
página
46
Introducción >>
fuerte en todos los sentidos, al igual que lo están haciendo ECMA, e ITF con otras
tecnologías relacionadas.
Pero lo más importante para Microsoft, no es hacer una "carrera" para ver
quién lo implementa primero, sino fijarse en la estabilidad, y de cara a nuestros
clientes, asegurarnos que no implementamos las especificaciones hasta que no
sean lo suficientemente estables como para ofrecer un camino seguro a los des-
arrolladores Web.
Así que, animamos a la comunidad de programadores a que prueben nuestras
implementaciones, que solemos actualizar con una frecuencia de 10/12 semanas,
o que entren en sitios como HTML5 Labs24, donde se están construyendo proto-
tipos de aspectos como IndexDB que son de esperar que veamos en Internet Ex-
plorer y en otros navegadores. Consiste en una base de datos de cliente, muy sen-
cilla, solamente parejas "Clave-Valor" (Key-Value
Pairs), que permite muchas implementaciones en el
cliente.
Así que, desde nuestro punto de vista, es bueno
que quede claro que nos importa la estabilidad del
producto ante todo.
24
http://blogs.msdn.com/b/mvplead/archive/2011/06/10/lt-html5-labs-gt.aspx
página
47
<< Introducción
prevalencia de la Web, y el movimiento hacia tener cada vez más aplicaciones web,
está haciendo que esas aplicaciones sean cada vez más potentes.
Y al objeto de poder aprovechar todas las posibilidades de una plataforma para
una aplicación, realmente se necesita tener acceso a esa plataforma. Por ejemplo,
la geo-localización en los móviles. O el audio, el vídeo o las cámaras. Y el acceso a
todas esas posibilidades se está haciendo mediante diversas API de JavaScript.
Así que las herramientas que tenemos hoy, ya sea Visual Studio o Eclipse, se
van a tener que adaptar y ayudar mucho más al desarrollador a utilizar esas API.
Todavía no hemos llegado a un grado de soporte suficiente, pero estoy convencido
que ese es el objetivo de la siguiente generación de herramientas de desarrollo.
¿El futuro de la Web rechazará los "plug-in" de cualquier tipo? ¿Se pretende que los na-
vegadores prescindan de componentes extra de cualquier clase?
¿Y qué sucede con ECMAScript 5? Tengo entendido que no se construye en W3C. ¿Existe
algún tipo de coordinación entre ambos grupos?
Cuando lanzamos IE9, incluimos un nuevo motor JavaScript en el producto. Nues-
página
48
Introducción >>
Uno de los problemas relacionados con las aplicaciones tiene que ver con las API relacionadas
con el estándar. Podemos usar Modernizr para que los antiguos navegadores "comprendan"
HTML 5. Pero, ¿qué sucede con las API necesarias para el desarrollo, como Local Storage,
Session Storage, File API, WebSQL, Web Sockets, Office Apps…?
25
Para más información sobre el grupo TC39 ECMAScript, ver http://www.ecma-
international.org/memento/TC39-M.htm
página
49
<< Introducción
¿Qué plataforma de Microsoft piensa Ud. que está más orientada a futuro: Web Matrix
(con Razor) o ASP.NET?
50
Introducción >>
incluir cosas como vídeo y audio. HTML 5 dispone de etiquetas <video> y <audio>
así que, los add-ons eran extensiones necesarias, que —en este aspecto— ya no lo
son. Pero la etiqueta <object> no va a desaparecer, eso es seguro. Y la gente va a
continuar utilizándola.
Creo que lo que sucederá tendrá que ver con las mejores herramientas y con
las mejores experiencias, y con la amplitud de la cobertura que se consiga con ellas.
Será una cuestión de sopesar los factores de cobertura que la tecnología ofrece
respecto a los beneficios obtenidos con otra tecnología. Así que las diversas situa-
ciones harán que unos vayan por un camino y otros por otro.
Pero, en el caso de Silverlight, estoy seguro de que existen patrones muy
fuertes que avalan su utilización, y eso supondrá que la gente va a continuar uti-
lizándolo.
Una de las razones por las que Microsoft incluyó IE9 en Windows Phone
fue esa idea de la cobertura ampliada. Y que los usuarios y desarrolladores apreciasen
esa independencia de funcionamiento, tanto si están en Windows, como en Win-
dows Phone. De hecho, estamos viendo la aparición de start-ups, cuya idea principal
es aprovechar este estándar HTML 5, para construir aplicaciones.
Pues muchas gracias por sus palabras, y esperamos que su estancia en España le resulte
agradable y podamos verle pronto por aquí.
Ha sido un placer venir aquí. Y había estado en España un par de veces antes. El
clima es excelente.
Para concluir quería añadir que, cuando Tim Berners-Lee creó la W3C, su ob-
jetivo era hacer que la Web tuviese un impacto mundial, y creo que HTML 5 es
otro ejemplo de caso de éxito de la W3C. Tenemos soporte de un número creciente
de miembros, y todos ellos están muy interesados en la construcción de esta "Pla-
taforma Web Abierta".
página
51
<< Introducción
Referencias
"W3C Semantic Web Frequently Asked Questions". W3C. Retrieved March 13, 2008.
Berners-Lee, Tim; James Hendler and Ora Lassila (May 17, 2001)."The Semantic
Web". Scientific American Magazine. Retrieved March 26, 2008.
Herman, Ivan (March 12, 2008). "W3C Semantic Web Activity". W3C. Retrieved March 13,
2008.
Berners-Lee, Tim; Fischetti, Mark (1999). Weaving the Web.HarperSanFrancisco. chapter
12. ISBN 978-0-06-251587-2.
Gerber, AJ, Barnard, A & Van der Merwe, Alta (2006), A Semantic Web Status Model, In-
tegrated Design & Process Technology, Special Issue: IDPT 2006
Gerber, Aurona; Van der Merwe, Alta; Barnard, Andries; (2008), A Functional Semantic
Web architecture, European Semantic Web Conference 2008, ESWC’08, Tenerife, June
2008.
Karger, David. "What Would It Mean to Blog on the Semantic Web". Retrieved November
15, 2010.
Victoria Shannon (June 26, 2006). "A ‘more revolutionary’ Web".International Herald Tribune.
Retrieved May 24, 2006.
"The advent of Web 3.0". Semantic Web Company. Retrieved November 14, 2010.
Conrad Wolfram on Communicating with apps in web 3.0 IT PRO, 17 Mar 2010
Shah Newaz Alam. "Web 3.0 vs Web 2.0". Buzzle.com. Retrieved November 14, 2010.
Steve Spalding (July 14, 2007). "How To Define Web 3.0".howtosplitanatom.com. Retrieved
November 14, 2010.
página
52
Introducción >>
Artem Chebotko and Shiyong Lu, "Querying the Semantic Web: An Efficient Approach
Using Relational Databases", LAP Lambert Academic Publishing, ISBN 978-3-8383-
0264-5, 2009.
Gärdenfors, Peter (2004). How to make the Semantic Web more semantic. IOS Press. pp. 17–34.
Timo Honkela, Ville Könönen, Tiina Lindh-Knuutila and Mari-Sanna Paukkeri
(2008). "Simulating processes of concept formation and communication". Journal of Eco-
nomic Methodology.
Ivan Herman (2007). "State of the Semantic Web". Semantic Days 2007. Retrieved July 26,
2007.
Berners-Lee, Tim (May 1, 2001). "The Semantic Web". Scientific American. Retrieved March
13, 2008.
Nigel Shadbolt, Wendy Hall, Tim Berners-Lee (2006). "The Semantic Web
Revisited". IEEE Intelligent Systems. Retrieved April 13, 2007.
Lee Feigenbaum (May 1, 2007). "The Semantic Web in Action".Scientific American. Retrieved
February 24, 2010.
Martin Hilbert (April, 2009). "The Maturing Concept of E-Democracy: From E-Voting and
Online Consultations to Democratic Value Out of Jumbled Online Chatter". Journal of
Information Technology and Politics. Retrieved February 24, 2010.
http://policyawareweb.org/
"RDF tutorial". Dr. Leslie Sikos. Retrieved 2011-07-05.
"Resource Description Framework (RDF)". World Wide Web Consortium.
"Standard websites". Dr. Leslie Sikos. Retrieved 2011-07-05.
Allemang, D., Hendler, J. (2011). "RDF—The basis of the Semantic Web. In: Semantic Web
for the Working Ontologist (2nd Ed.)". Morgan Kaufmann.
Lukasiewicz, Thomas; Umberto Straccia. "Managing uncertainty and vagueness in description
logics for the Semantic Web".
See, for instance: Bergman, Michael K. "Sweet Tools". AI3; Adaptive Information, Adaptive
Innovation, Adaptive Infrastructure. Retrieved January 5, 2009.
"GoodRelations: The Web Ontology for E-Commerce". E-Business + Web Science Research
Group.
"GoodRelations Project Main Page".
Hepp, Martin (September 29 — October 3, 2008). "GoodRelations: An Ontology for Des-
cribing Products and Services Offers on the Web".Proceedings of the 16th International Con-
ference on Knowledge Engineering and Knowledge Management (EKAW2008).
página
53
<title>
</title>
<autor>
</autor>
<resumen>
Esta obra aborda el nuevo estándar bajo el supuesto de que el usuario ya conoce los fundamentos
del anterior, y desea actualizarse y/o abordar proyectos de desarrollo que impliquen HTML5 y sus
tecnologías asociadas: CSS3, JavaScript y las API relacionadas con ellos. El foco es el propio
estándar independientemente de la plataforma para la que vaya a ser utilizado.
A lo largo de la obra se utiliza Visual Studio 2012 como herramienta de desarrollo completa que
dispone de cobertura total del estándar en sus editores visuales y de código, a nivel de
depuración, pruebas y actualizaciones. Se muestra cómo usarlo en esos contextos y aprovechar
las nuevas propuestas que la W3C plantea en su iniciativa “Open Web Platform”.
</resumen>
</biografia>
Marino Posadas es Consultor Independiente, Redactor de la revista
DNM, MVP en C#, MCT, MCPD y MCTS. Esta es su undécima obra sobre
tecnologías y la segunda dedicada al estándar HTML. Ha publicado más
de 500 artículos en revistas especializadas en papel y "on-line" y ha co-
laborado como ponente en diversos eventos para programadores en Es-
paña, el resto de Europa y América, siempre relacionadas con el desarrollo
de software.
</biografia>
netalia
alia
just for developers