Desde PowerArchiver 2017 no escribía nada acerca de compresión, una de mis pasiones desde que empecé con la informática junto a los antivirus.

Hoy voy a hablar otra vez sobre Optimización de archivos .ZIP, esta vez, en cuanto a la evolución del software.

En tiempos en que al menos en España, triunfaba LHARC y ARC, y todavía quedaban rastros de ZOO estaba PKZIP. La herramienta de compresión escrita por Phil Katz en PKWare como evolución de su anterior creación PKARC / PKPAK era para mi increíble, con una velocidad de ejecución nunca antes vista.

En 1989 aparece PKZIP 0.8, e iría evolucionando hasta el final de su vida, al menos bajo DOS, en 1999 con PKZIP 2.50. Diría que su época dorada ocurrió con la versión 2.0 a partir de 1993, que además del algoritmo de compresión Implode, agregaba Deflate.

Nadie hubiera pensado, con la popularización posterior de ARJ, que gracias que el formato era abierto y documentado, Info-ZIP crearía ZIP / UNZIP y Jean-loup Gailly y Mark Adler crearían ZLIB.

El formato ZIP se extendería tan ampliamente, que hoy, en 2018, casi 30 años después de su lanzamiento sigue siendo probablemente el algoritmo de compresión más popular. Con el paso del tiempo, surgieron mejoras menores, como Deflate64 que ampliaba el tamaño de la ventana de un máximo de 32K hasta 64K, y posteriormente ZIPX de WinZIP mezclando otros codecs especializados dentro de ZIP. Claro que esas mejoras, no serían adoptadas fácilmente. Por ejemplo, tuvimos que esperar hasta Windows Vista de 2006 para poder extraer nativamente Deflate64.

Pero el verdadero hecho admirable es que un ordenador de 1993 con PKZip 2 sería capaz de descomprimir archivos creados en 2018, y viceversa, por supuesto. Un ordenador actual, puede manejar esos archivos comprimidos sin ningún tipo de problema, incluso de 1989 con PKZip 0.8.

A pesar de que el algoritmo es el mismo, algo obligatorio para mantener la compatibilidad, el paso del tiempo ha permitido aplicarle ciertos ajustes, lo que unido a una muy superior potencia de cálculo nos permiten algo asombroso. Que esos archivos sean más comprimibles que antaño, sin perder un ápice de su retrocompatibilidad.

He realizado una prueba con un proyecto web. Ocupaba 5.395.118 bytes y constaba de 141 archivos, 14 carpetas. Veamos como ha ido evolucionando su compresión a lo largo de los años.

ProgramaVersión (año)CompresiónTamaño comprimido en bytes
PKZIP1.1 (1990)-ex -r -p1.275.082
PKZIP2.04g (1993)-ex -r -p1.131.493
PKZIP2.50 (1999)-exx -r -p1.132.011
7-Zip17.01 (2017)Ultra. Deflate. fb=2581.095.298
PowerArchiver18.00.22 (2018)Extremo. Deflate.1.089.740

Los resultado muestran una mejora notoria, en torno al 15%, no es abismal, pero recordemos que siguen siendo compatibles. Lo curioso es la versión 2.50 de PKZIP, una implementación brillante, que si hubiera llegado unos años antes, habría conquistado el mercado, gracias a sus capacidades en cuanto al uso de hardware más moderno. Sin embargo, al menos en esta medición, logrando unos resultados imperceptiblemente peores.