lunes, 4 de septiembre de 2017

Un 16% de los fragmento de los código html de facebook esta en todos los sitios de Internet


 


 Con dos mil millones de usuarios activos mensuales, más de la mitad de todos los ciudadanos están ahora en Facebook. De hecho, la plataforma de medios sociales se ha convertido en una parte tan integral de Internet que un gran número de sitios web en la actualidad contienen pequeños fragmentos de código de Facebook.

Como explica Ben Regenspan, desarrollador con sede en Nueva York, en una perspicaz entrada de Medium, el seis por ciento de los 10.000 sitios web más traficados cargan contenido de los servidores de Facebook. Para la mayoría de ellos, ese contenido es probablemente su SDK, que es necesario para mostrar características como el botón Me gusta y la sección de comentarios.

Pero lo que es más intrigante, resulta que el kit de la empresa cuenta con cerca del 16 por ciento del tamaño de todos los Javascript que carga la página web media - y hay una razón muy lógica por la que este es el caso: Eso es porque Facebook empaqueta todas sus características web y widgets en el mismo kit.

Si bien esto facilita a los desarrolladores la obtención de las características individuales que necesitan de la biblioteca de software, también significa rellenar los sitios web con toneladas de código que probablemente permanezcan sin usar u ociosos, en el mejor de los casos. El problema aquí es que esta conveniencia afecta significativamente el rendimiento general del sitio web.

Para tener una mejor idea de lo que hay dentro del SDK, Regenspan ha creado un gráfico ingenioso para ilustrar esto:
  
Como él continúa señalando, la cuestión es que un bloque considerable del SDK está formado por características que rara vez entran en funcionamiento. Es cierto que Facebook podría haber publicado esas herramientas en APIs separadas, pero como tiene incentivos para animar a los sitios web a utilizar su SDK, ha optado por no hacerlo.

Por ejemplo, el lienzo (el sistema de Facebook para aplicaciones cargadas dentro de la propia plataforma) representa el 1,53 por ciento del paquete completo, mientras que las funciones heredadas representan el 3,53 por ciento restante. Estos son algunos de los componentes menos populares del SDK, pero dado que representan el 5.06 por ciento del SDK, no es irrazonable incluirlos.

Más problemático es cuánto de la biblioteca de software está formada por Polyfills - un enorme 15,34 por ciento. Para aquellos que no están familiarizados, las utilidades polyfill son "usadas para suministrar características que se encuentran en navegadores más nuevos a navegadores más antiguos".

A diferencia de la compatibilidad con Canvas y el soporte heredado, la mayoría de las herramientas similares a los polipropileno añadidas al SDK ya están "incluidas en los navegadores utilizados por la gran mayoría de los usuarios de Internet", por lo que, en cierto sentido, un componente que representa el 15 por ciento del paquete general, sólo es utilizado por menos del uno por ciento de todos los usuarios de Internet.

Ahora, hay otras razones para distribuir estas funciones como un SDK. Dado que rara vez cambia, la mayoría de los usuarios ya han descargado el paquete a su dispositivo. Y aunque no lo hayan hecho, el tiempo que se tarda en descargar es sólo marginal.

Pero si todas las grandes empresas siguen el mismo enfoque, las cosas empiezan a sumar - y esto podría tener un impacto negativo en el rendimiento.

Regenspan calcula que el kit de Facebook tarda unos 50 ms (1/20 de segundo) en cargarse en el nuevo MacBook Pro, pero este número se duplica en el Pixel de Google, donde tarda 1/10 de segundo en cargarse.

Otra molestia es que socava los esfuerzos de los desarrolladores para optimizar el código. Imagina trabajar duro durante días para afeitarte una décima parte de tu propio código, sólo para ver este espacio lleno de un enorme trozo de código que en su mayoría no se usa. No es exactamente satisfactorio.

Sí, hay algunas soluciones que mitigarán el impacto total del SDK. Una de estas técnicas consiste en optar por cargar el kit de desarrollo de software de Facebook sólo cuando sea necesario. Pero, una vez más, esto es más bien un engaño que una solución legítima. De hecho, este es exactamente el mismo enfoque que tomamos con nuestra sección de comentarios aquí en TNW.

Pero entonces otra vez, la mayoría de la gente sólo necesita el SDK para obtener el botón dedicado Facebook Like en su sitio; y dado que el peso pesado de los medios sociales ha estado haciendo poco a poco el contador de Como de las páginas menos prominentes en su plataforma, ¿este movimiento vale la pena?

¿Eres un desarrollador que trabaja regularmente con el kit de desarrollo de software de Facebook? Únase a la discusión y háganos saber cuál es su posición en el debate y cómo se ha expresado en los comentarios. 


EmoticonEmoticon