15 de febrero de 2012

Grasa web

Vía reddit/r/programming, me encuentro con la noticia de los nuevos foros de la web del lenguaje "D", que han sido reescritos en ese mismo lenguaje. Por curiosidad entro y navego un poco en el nuevo foro (notable que parece que también soportan acceso vía "news" NTTP). Y caramba, da gusto ver un foro tan ligero y veloz como este. Y no es que esté inactivo, según el admin.

En los comentarios del hilo de reddit lo resaltan, seguramente acostumbrados -como lo estamos todos- a que Internet esté plagado de foros y páginas notoriamente más lentos. Pero más allá de la respuesta del servidor, que no parece ser nada del otro mundo, y de alguna optimización, parece que el secreto en realidad consiste en ser simple: Las páginas del foro de D son, esencialmente, el HTML estrictamente necesario con algo de CSS y muy poquito de JS. El peso de un listado cualquiera de un subforo pesa 37 KB, de los cuales 10 KB son imágenes. Y nada de ello tiene torturas para el navegador.

La mayoría de páginas modernas cada vez son más complejas y pesan cada vez más: la página de un artículo aleatorio de engadget.com, buen ejemplo de página recargada: son 3.5 MB en total, y las imágenes sólo son 1.3 MB, y tienen 1.2 MB en scripts JS y 650 KB en CSS. Vale, es cierto que es una comparación injusta: un foro como el de D no tiene, en realidad, mucho que mostrar, y engadget en cambio está lleno de contenido y tiene cacharritos de botones +1, comentarios, anuncios, y etcéteras que usan montones de librerías JS. Y desde luego no es la página más ejemplar de internet.

Aun así, las páginas ligeras de internet, no mucho más lentas que el foro de D, y nada lentas ni pesadas (pongamos, meneame) ya llegan a los cientos de KB. Claro, basta enlazar a jquery para que se note, y que conste que no lo critico. Una página moderna de Google, como mi vista principal de G+ roza los 2MB.

En fin, que en un tiempo donde el "engorde" de las páginas web es algo inevitable (el número y complejidad de librerías javascript no va a disminuir, desde luego, ni tampoco la necesidad de usarlas) aunque no necesariamente sinónimo de lentitud, gusta encontrar algo como el foro de D. Que, por cierto, utiliza como base de datos sqlite y un servidor web propio.

Por cierto, por si no lo sabían habrá soporte de D en GCC, aunque no será en GCC 4.7 como se esperaba y habrá que esperar a GCC 4.8.

5 comentarios:

  1. Anónimo1:14 a. m.

    De todas formas de todos esos datos o no se transmiten o solo se trasmiten la primera vez, cache mediante.

    ResponderEliminar
  2. Anónimo, puede que si, pero igual debe cargarlas desde el disco, parsear los js-css y dibujar todo el CSS. por más caché, igual los tiempos de carga se notan.

    Y es lógico, entre menos código haya que analizar, más rápido se verá el resultado en pantalla.

    ResponderEliminar
  3. Antonio6:11 p. m.

    "Y caramba, da gusto ver un foro tan ligero y veloz como este."

    Y yo añadiría: bonito.

    ResponderEliminar
  4. Albert Vaca5:51 p. m.

    Si que se nota más rápido, pero a veces vale la pena hacer las cosas un poco más lentas a cambio de poder escalarlas en el futuro, o de que sean más portables, etc. Por eso no nos da por reescribir código en ensamblador para ganar rendimiento, porque modificarlo en un futuro será una putada, no será portable... En ese sentido, me parece un error lo de usar sqlite, y probablemente lo de tener un servidor web própio (que deberán mantener y adaptar).

    ResponderEliminar
  5. Realmente da gusto visitar una pagina tan ligera, supongo que tiene lo mínimo indispensable de js

    Jquery es una maravilla, pero aveces prefiero librerías como las de jsan (openjsan.org), aunque el proyecto parece medio muerto.

    ResponderEliminar