Der ein oder andere, der sich mit JavaScript-Entwicklung schon beschäftigt hat kennt sicher die bekannten Möglichkeiten der Komprimierung - den packer von Dean Erdwards oder auch den YUI Compressor von Yahoo!, welche beide wirklich hervorragende Kompressionswerte haben.
Mit dem Closure Compiler hat Google ein Tool zur Verfügung gestellt, mit dem man JavaScript brutal(und das meine ich, wie ich es schreibe) komprimieren kann.
Ein kurzer Vergleich mit dem JavaScript Framework Mootools hat gezeigt - Dean Edwards packer hat mit fast 60% die stärkste Kompressionsrate( mit Base62 und shrink variables Optionen an, nicht lesbar, keine Debugmöglichkeit), mit Yahoos! YUI Compressor habe ich das JavaScript Framework zu ca. 66kB herunter also etwa 38% Kompression. Zu guterletzt der Closure Compiler - er komprimiert das Framework auf ungefähr 52kB - ca. 48% Kompressionsrate also.
Man mag jetzt denken das ist nicht ganz so gut wie packer, doch das sind nur die Werte für ein einzelnes Framework. Aus der Erfahrung heraus zeigt sich die stärke des CCs erst, wenn man eigene Funktionen oder zusätzlich zum Framework Plugins, etc. mit einbindet.
Außerdem hat der CC einen unglaublich nützlichen Vorteil gegenüber den anderen - es gibt für Firebug ein Addon, mit dem man den Code zurückwandeln und analysieren kann.
Für die Interessierten habe ich hier nochmal ein kleines Beispiel mit dem, was der CC kann in Klartext und komprimiert:
var string = "Eine Zeichenkette";
var result = string.length;
document.write(result);
Die Ausgabe des CCs ist, wie gesagt, brutal und bricht jedes Byte, was nicht in den Code gehört, einfach weg:
document.write(17);
Man sieht also, der CC komprimiert nicht einfach nur, er optimiert auch gleich den Code und wirft unnötige Teile einfach heraus. Für mich eine wirklich sinnvolle Online-Applikation, denn optimierter, leichtgewichtiger Code verringert die Übertragenen Bytes, ergo läd die Seite schneller und die nicht außer acht zu lassende Möglichkeit, den komprimierten Code problemlos zu debuggen erspart einem, mit mehreren Codebases zu arbeiten.