Probablemente deberíamos comparar manzanas con manzanas y naranjas con naranjas. JRE es un tiempo de ejecución, no un kit para desarrolladores. Podemos comparar: el tamaño de origen del kit de desarrollo, el tamaño del kit de desarrollo compilado y el tamaño compilado del tiempo de ejecución mínimo.
El paquete fuente OpenJDK 7 es de 82 MB (download.java.net/openjdk/jdk7) frente al paquete fuente GHC 7, que es de 23 MB (haskell.org/ghc/download_ghc_7_0_1). GHC no es grande aquí. Tamaño de tiempo de ejecución: openjdk-6-jre-headless en Ubuntu es de 77 MB sin comprimir frente a Haskell helloworld, vinculado estáticamente con su tiempo de ejecución, que es <1 MB. GHC no es grande aquí.
Donde GHC es grande, es el tamaño del kit de desarrollo compilado:
GHC en sí ocupa 270 MB, y con todas las bibliotecas y utilidades que se unen, ocupa más de 500 MB. Y sí, es mucho, incluso con bibliotecas base y una herramienta de compilación / administrador de dependencias. La plataforma de desarrollo de Java es más pequeña.
GHC:
$ aptitude show ghc6 | grep Size
Uncompressed Size: 388M
contra OpenJDK con dependencias:
$ aptitude show openjdk-6-jdk openjdk-6-jre openjdk-6-jre-headless ant maven2 ivy | grep Size
Uncompressed Size: 34.9M
Uncompressed Size: 905k
Uncompressed Size: 77.3M
Uncompressed Size: 1,585k
Uncompressed Size: 3,736k
Uncompressed Size: 991k
Pero todavía tiene más de 100 MB, no 26 MB mientras escribe.
Las cosas pesadas en ghc6 y ghc6-prof son:
$ dpkg -L ghc6 | grep '\.a$' | xargs ls -1ks | sort -k 1 -n -r | head -3
57048 /usr/lib/ghc-6.12.1/ghc-6.12.1/libHSghc-6.12.1.a
22668 /usr/lib/ghc-6.12.1/Cabal-1.8.0.2/libHSCabal-1.8.0.2.a
21468 /usr/lib/ghc-6.12.1/base-4.2.0.0/libHSbase-4.2.0.0.a
$ dpkg -L ghc6-prof | grep '\.a$' | xargs ls -1ks | sort -k 1 -n -r | head -3
112596 /usr/lib/ghc-6.12.1/ghc-6.12.1/libHSghc-6.12.1_p.a
33536 /usr/lib/ghc-6.12.1/Cabal-1.8.0.2/libHSCabal-1.8.0.2_p.a
31724 /usr/lib/ghc-6.12.1/base-4.2.0.0/libHSbase-4.2.0.0_p.a
Tenga en cuenta lo grande que es libHSghc-6.12.1_p.a
. Por lo tanto, la respuesta parece ser la vinculación estática y las versiones de creación de perfiles para todas las bibliotecas disponibles.