Tecnologías propietarias en el desarrollo web

Las Innovaciones patentadas por los fabricantes de software son algo muy común. Algunas se han convertido en tecnologías básicas para el devenir del desarrollo web y han sido ampliamente aceptadas, otras han fracasado miserablemente y han caído en el olvido.

Software propietario

En algunos casos, estas tecnologías solo funcionan en un entorno concreto, en otros solo funcionan mediante un plugin específico que no tiene por qué estar instalado junto al navegador, incluso hay tecnologías que se debe pagar licencia para poder ser utilizadas.

En este artículo repasaremos brevemente algunas de las más importantes.

VML – Vector Markup Language

  • Desarrolladores: Autodesk, Hewlett- Packard, Macromedia, Microsoft y Visio.
  • Características: VML es un lenguaje XML para la creación de gráficos vectoriales. Fue presentado para su estandarización al W3C en 1998 compitiendo con PGML. Tras de un largo examen, el W3C decidió combinar esos dos formatos originando el formato SVG.
  • Inconvenientes: Sólo las aplicaciones de Microsoft soportan este lenguaje.

PGML – Precision Graphics Markup Language

  • Desarrolladores: Adobe Systems, IBM, Netscape, y Sun Microsystems
  • Características: Otro lenguaje basado en XML para la representación de gráficos vectoriales. Se presentó a la W3C no siendo aprobado para su recomendación.

Adobe Flash

  • Desarrollador: Adobe systems
  • Características: Se trata de la tecnología de creación y edición de animaciones vectoriales más popular. Es actualmente la herramienta más utilizada para la reproducción de video en la red, aunque con la implantación progresiva de HTML5 y CSS3, puede que esta situación cambie en poco tiempo.
  • Inconvenientes: Es necesario que el navegador tenga instalado el plugin correspondiente para poder visualizar el contenido generado en Flash.

Silverlight

  • Desarrollador: Microsoft
  • Características: Silverlight fue lanzado en 2007 para competir con Flash en la creación de contenido multimedia para la web. Por ahora no ha conseguido una implantación muy profunda.
  • Inconvenientes: Esta tecnología no utiliza el estándar SVG, además el contenido introducido en la red mediante Silverlight, solo podrá ser actualizado y modificado desde la plataforma Windows.

Applets de Java

  • Desarrollador: Sun Microsystems
  • Características: Un applet es un programa precompilado que se puede incrustar en un HTML. La idea es que deben ser descargados y ejecutados por el navegador, lo que permite crear programas que se puedan ejecutar solo cargando una web. Se pueden utilizar en cualquier sistema que tenga instalada una Java Virtual Machine.
  • Inconvenientes: Del mismo modo que Flash, los applets requieren un plugin específico que no está disponible por defecto en los navegadores.

Controles ActiveX

  • Desarrollador: Microsoft
  • Características: Fueron la respuesta de Microsoft a los applets de Java. Están construidos sobre el modelo de componentes de Windows.
  • Inconvenientes: Sólo operan oficialmente en Internet Explorer (aunque existen opciones para ejecutarlos en otros navegadores) y en el sistema operativo Windows.

Fuentes OPEN TYPE

  • Desarrolladores: Microsoft, Adobe systems
  • Características: OpenType es un formato de fuente basado en TrueType. La especificación continúa en desarrollo y en la actualidad se encuentra en proceso de convertirse en un estándar abierto. Debido a su su versatilidad es ampliamente utilizado en la mayoría de los navegadores y sistemas operativos.

Fuentes EOT – Embedded OpenType

  • Desarrollador: Microsoft
  • Características: Es una variación de los formatos TrueType y OpenType.
  • Inconvenientes: Es compatible exclusivamente con Internet Explorer.

Formato GIF – Graphics Interchange Format

  • Desarrollador: CompuServe
  • Características: Es un formato de imagen sin pérdida que comprime los archivos usando un algoritmo llamado LZW. Fué muy utilizado en los noventa sobre todo para mostrar pequeñas animaciones, al tratarse del único formato soportado por multitud de navegadores que permita dicho efecto.
  • Inconvenientes: Solo puede contener 256 colores. En la mayoría de los casos tiene un rendimiento de compresión inferior respecto al formato libre PNG

Tecnología ASP – Active Server Pages

  • Desarrollador: Microsoft
  • Características: ASP es un lenguaje de servidor que permite el uso de diferentes scripts y componentes ya desarrollados junto con HTML para mostrar páginas dinámicas.
  • Inconvenientes: Solo funciona con servidores que utilizan el sistema operativo Microsoft.

VBScript – Visual Basic Script

  • Desarrollador: Microsoft
  • Características: Fue un lenguaje de programación de scripts basado en Visual Basic desarrollado para competir, con poco éxito, con Javascript en entornos de cliente. Microsoft decidió abandonar esta tecnología en favor de .NET.
  • Inconvenientes: Era compatible exclusivamente con Internet Explorer.

¿Destacarías alguna tecnología propietaria más?

Una mirada sobre la mejora progresiva y la degradación elegante


desarrollo multidispositivo. Imagen recogida del blog del desarrollador noruego Jørn Kinderås

Si asumimos que una misma página web se puede mostrar de diferentes maneras, se hace evidente un problema: ¿de qué modo podemos mostrar la información de una manera atractiva al margen de los condicionamientos técnicos y los ajustes de preferencias de usuario?

Existen dos estrategias para afrontar este reto: la degradación elegante (graceful degradation) y la mejora progresiva (progressive enhancement).

Estas dos filosofías de desarrollo coinciden en varios puntos:

  • Un sitio web debe funcionar correctamente ante la multiplicidad de navegadores y dispositivos.
  • Hay que separar en varias capas el contenido, la presentación y la funcionalidad de los proyectos.
  • Lo más importante es el marcado semántico y la extensión de los estándares web.

En el fondo tienen un enfoque radicalmente distinto. La clave está en el afecto que tienen estos puntos en el flujo de trabajo.

Degradación elegante

La degradación elegante es un concepto importado de la ingeniería desarrollado por el psicólogo David Courtenay Marr. La traslación al diseño web viene a significar que un sitio debe funcionar y visualizarse de forma básicamente parecida independientemente del navegador o dispositivo utilizado. Paliando en la medida de lo posible el empobrecimiento de un diseño que se producirá por las limitaciones técnicas de los navegadores más anticuados.

En la práctica esta técnica se reduce a utilizar sólo aquellas características que sean soportadas correctamente por navegadores obsoletos o muy limitados técnicamente como Internet Explorer 6 o 7. Esto relega a otras tecnologías más avanzadas, como CSS3 a un indefinido futuro en el que serán ampliamente soportadas por la mayoría de los navegadores y dando lugar a anacronismos como que sigan utilizándose navegadores de más de diez años de antigüedad. Al fin y al cabo ¿para que los usuarios se van a actualizar de navegador, si las páginas no van a ofrecer una mejora visual de un navegador a otro?

Asegurar que nuestras webs se vean igual en navegadores de dos, tres y hasta cuatro generaciones de antigüedad, no resuelve el problema de cómo implementar nuevos estándares y tecnologías sin que la experiencia de usuario se vea mermada.

La técnica de la degradación elegante conlleva un tiempo extra de optimización para cada navegador (Cross-browser). Como es de suponer, es necesario albergar un sólido conocimiento de cada navegador y tener todo un catálogo de soluciones para contrarrestar las posibles limitaciones que nos vallamos encontrando. Las enormes dificultades para poder comprobar nuestras páginas en los cada vez más numerosos y variados dispositivos y navegadores están provocando que algunos maquetadores adopten la solución más radical posible, proponer al usuario que simplemente se descargue la última versión del navegador.

Como desarrolladores web no tenemos derecho a decidir por los usuarios que navegador deben utilizar, sobretodo porque muchos de ellos quizá no tengan ni el control, ni las capacidades, ni el software necesario para soportar estas últimas versiones. Lo que sí que podemos hacer es adoptar otras filosofías de desarrollo.

Mejora progresiva

El concepto de mejora progresiva fue acuñado por Steven Champeon, en su conferencia Inclusive Web Design for the Future en 2003.

Esta filosofía implica que los sitios web dispondrán de las características más avanzadas a medida que el navegador que las ejecuta sea más avanzado. Esto permite aprovechar todas las posibilidades CSS sin perjudicar a los navegadores obsoletos o limitados. De este modo se premia al usuario por la utilización de un navegador más moderno, y los usuarios desactualizados no tendrán quebranto alguno al acceder al contenido de una web.

Si suponemos que los navegadores más anticuados tienden a desaparecer a medida que los usuarios los van actualizando, es lógico ir introduciendo tecnologías más modernas para que nuestros desarrollos estén mejor preparados para soportar los estándares del futuro. ¿Tanto daño hace que unos usuarios vean los bordes redondeados y otros los vean cuadrados?

Para encarar la mejora progresiva de un proyecto propongo que la maquetación web se realice siguiendo los siguientes puntos:

  • La maquetación debe permitir el correcto acceso a la información de una página, independientemente del tipo de navegador o dispositivo utilizado por el usuario.
  • Utiliza aquellas características que aunque sólo los navegadores modernos puedan visualizar, los navegadores antiguos puedan ofrecer una alternativa viable (esta es una manera conservadora de afrontar este paradigma).

Algunos ejemplos de mejora progresiva pueden ser:

  • La utilización de una API de tipografías (como Google) para aquellos navegadores que pueden soportarlas.
  • Propiedades CSS3 como text-shadow, border-radius o Gradient para los navegadores habilitados.
  • Animaciones y fotografías en formato SVG.
  • Fotografías en formato PNG con transparencia.

De este modo, los desarrolladores nos dotaremos de una base para la experimentación y la innovación respetando los estándares y el diseño universal sin excluir a ningún usuario. Eso es lo que a mi modo de ver, hace a la mejora progresiva un paradigma más acertado y ajustado al cambiante mundo del desarrollo web. Es por eso que en Yahoo lo adoptaron rápidamente y lo han utilizado para crear su estrategia de soporte de navegador gradual.

Mas información: