The Webkit Open Source Project

Presentación realizada por Carlos García Campos dentro de la asignatura de Casos de Estudio II del Máster en Software Libre de la Universidad Rey Juan Carlos de Madrid.

Carlos García Campos  ha estado colaborando con la comunidad de Software Libre desde 2002 año en el que comenzó a contribuir al proyecto GNOME. Desde entonces ha sido un programador activo de dicho proyecto trabajando en diferentes módulos del escritorio y de la plataforma y también en algunos proyectos de freedesktop.org. En octubre de 2010 deja su trabajo en la universidad y se une a Igalia, empresa gallega dedicada al Software Libre y principal colaboradora del proyecto webkit, para trabajar en los proyectos webkit y GTK+, siguiendo, además, colaborando en GNOME de forma altruista.

¿Qué es Webkit?

Claramente es un proyecto de Software Libre, sino no estaría aquí, pero realmente no es algo que nosotros sepamos identificar a primera vista, si te hablan de webkit seguramente no sepas lo que es pero si te hablan de Apple Safari, Google Chrome, o el navegador que usas en el Iphone o en un smartphone Android o incluso en un teléfono Nokia, estarás oyendo hablar de Webkit. Por tanto, Webkit es, por decirlo de una forma sencilla, un motor de contenido web, es decir, Webkit procesa contenido web y lo visualiza. No nos confundamos, no es un navegador web pero sí una parte importante de él. Aunque realmente Webkit es algo más, es un framework que facilita el desarrollo de otras aplicaciones, por ejemplo:

Con respecto al uso en navegadores podemos ver que los que está basados en Webkit se llevan una buena parte del pastel. Fuente uso de navegadores en wikimedia.

Wikimedia browser usage april 2012Un poco de historia.

WebKit es un producto desarrollado desde 2001 por Apple a partir de las librerías KHTML (interpretación de código HTML) y KJS (interpretación de Javascript) de KDE. WebKit  portó dichas librerías al sistema operativo Mac OS X y debido a la utilización de partes de KDE por Apple, estas dos organizaciones comenzaron una colaboración muy beneficiosa para la comunidad de Software Libre. A mediados de 2005, Apple liberó WebKit como software libre, como lo eran en principio las librerías de las que partieron. Webkit soporta HTML5 desde 2007. En abril de 2010 tiene lugar la First WebKit Contributors Meeting dónde se anuncia el desarrollo de WebKit2.

Objetivos de Webkit

  • Web Content Engine. Su principal objetivo es el contenido desplegado en Internet de tipo web usando tecnologías basadas en estándares como HTML, CSS, JavaScript y el DOM.
  • Open Source. WebKit debe seguir siendo de uso libre, tanto aplicaciones de software libre como privativas. Para ello, utilizan licencias BSD y LGPL.
  • Compatibility. Se realiza un gran esfuerzo por mantener y mejorar la compatibilidad con el contenido web existente, a veces incluso a costa de las normas.
  • Standards Compliance. Es muy importante el cumplimiento de las normas establecidad actualmente en la web, además de dar soporte para nuevos estándares. Pero no sólo basta con  mejorar el cumplimiento, Webkit participa en la comunidad de estándares web para incluir las nuevas tecnologías en las normas.
  • Stability. Los crashes, cuelgues y regresiones deben ser tratados con prontitud para evitar que se amontonen y mantener un código estable.
  • Performance. Mantener y mejorar la velocidad y el uso de memoria es un objetivo importante. Obtener  un rendimiento que se considere “suficientemente bueno” es muy difícil y por eso hay que esforzarse para mejorar día a día.
  • Security. Hay que corregir los problemas de seguridad con prontitud para proteger a los usuarios y mantener su confianza.
  • Portability. Webkit está portado a infinidad de plataformas como los equipos de escritorio, los móviles, los dispositivos integrados y otras plataformas.
  • Usability. Webkit se preocupa por dar al usuario unos principios de diseño de interfaz buenos además de esforzarse por realizar una integración de las características de accesibilidad de la plataforma para permitir el acceso a todos los usuarios, incluidos aquellos con algún grado de discapacidad.
  • Hackability. Se debe mantener el código lo más limpio y fácil de leer posible para facilitar su trabajo a los programadores.

No son objetivos de Webkit:

  • WebKit es un motor, no un navegador. No se pretende desarrollar un navegador basado en webkit, otros ya lo han hecho.
  • WebKit es un proyecto de ingeniería, no un proyecto de ciencias. Para  nuevas características a adoptar en WebKit, se obtará por tecnología o al menos casos de uso que puedan ser probados.
  • WebKit no es un montón de código general y reutilizable. Existen algunas partes de uso general pero sólo lo justo para ser un motor de contenido web bueno.
  • WebKit no es la solución para todos los problemas.

Arquitectura de webkit

Webkit está formado por una serie de capas que van requiriendo servicios de la inferiores y que van dando servicio a las superiores. Dichas capas son las siguientes

  • WebKit: Capa de interfaz de programación de aplicaciones a través de la cual llegan las peticiones a webkit. No confundir el nombre de esta capa con el producto completo que es realmente a lo que nos hemos referido como Webkit durante todo el post.
  • WebCore: Renderizado, capas , red, multimedia, a11y (accesibilidad informática), etc.
  • JavaScriptCore: Motor JavaScript, WTF(WebKit Templating Framework).
  • Platform: enganches para implementar operaciones genéricas en todas las plataformas.

Webkit en números

Líneas de código de Webkit a junio de 2012 según ohloh.net.

Lenguajes de programación usados en  Webkit a junio de 2012 según ohloh.net.

Commiters de Webkit a junio de 2012 según ohloh.net. Destacar la caída de commiters de 179 en mayo de 2012 a 106 en junio del mismo año. Habrá que investigar.

Commits de Webkit a mayo de 2012 según ohloh.net. No he puesto la información de junio porque estamos a mediados de mes y no sería comparable. De todas formas se detecta una caída de commits supongo que por el descenso de commiters, como he dicho antes habrá que investigar.

Conclusiones

Como resumen, sólo indicar dos asuntos que me han llamado la atención de esta charla, primero, que nunca había oído hablar de Webkit y además, pensaba que todo el software libre se usaba en sí mismo y no como base para otro tipo de paquetes más complejos y segundo que pensaba que Apple era un insaciable consumidor de software libre pero que nunca compartía nada, ¡qué equivocado estaba!

Me he llevado una grata sorpresa viendo la cantidad de posibilidades y utilidades de Webkit.

Hasta otra …

Referencias:

Esta entrada fue publicada en Casos de estudio II, Desarrolladores y su motivación, Gestión de proyectos, Herramientas de desarrollo, Introducción y etiquetada , , , , , , . Guarda el enlace permanente.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>