Didn't know it was used so much out of Google, that's a lot of downloads and that just for NPM, I would guess maven and direct downloads are even bigger? not counting clojurescript and scalajs which bundle closure in their compiler.
The closure compiler is one of these engineering secrets that I wish more people knew about. The advanced compilation with dead code elimination [0] is insane. It needs a bit of extra work on top to fully utilise but you get a payoff that you can't achieve with other minifiers.
Clojurescript is what introduced me to the Closure compiler. It killed three birds with one stone: it unbloated the client build, saved me from writing validation logic twice in two different languages, and I can stop writing JavaScript.
It depends on the code base. When I've migrated from js code base with 100% gcc type coverage to TypeScript, gcc(without tsickle) in advanced mode stopped rewriting many methods into simple functions, didn't minified many symbols, with 100% type coverage gcc minified all symbols.
When I've tried synthetic UI benchmarks, code with 100% type coverage on desktop machines had the same performance, on old mobile phones it was 0-10% faster(depends on the use case).
Minified code size with 100% type coverage were slightly smaller on small projects, but with the API for building UI Components that I've used, minified code with 100% type coverage should be significantly smaller on a large project.
10 comments
[ 907 ms ] story [ 780 ms ] threadhttps://www.npmjs.com/package/google-closure-compiler
https://www.npmjs.com/package/prettydiff
[0]: https://developers.google.com/closure/compiler/docs/api-tuto...
[0]: https://github.com/angular/tsickle
[1]: https://github.com/google/closure-compiler/wiki/Type-Based-P...
When I've tried synthetic UI benchmarks, code with 100% type coverage on desktop machines had the same performance, on old mobile phones it was 0-10% faster(depends on the use case).
Minified code size with 100% type coverage were slightly smaller on small projects, but with the API for building UI Components that I've used, minified code with 100% type coverage should be significantly smaller on a large project.