Nous devrions probablement comparer les pommes aux pommes et les oranges aux oranges. JRE est un runtime, pas un kit de développement. Nous pouvons comparer: la taille de la source du kit de développement, la taille du kit de développement compilé et la taille compilée du runtime minimal.
Le bundle source OpenJDK 7 est de 82 Mo (download.java.net/openjdk/jdk7) par rapport au bundle source GHC 7, soit 23 Mo (haskell.org/ghc/download_ghc_7_0_1). GHC n'est pas grand ici. Taille d'exécution: openjdk-6-jre-headless sur Ubuntu est de 77 Mo non compressé par rapport à Haskell helloworld, lié statiquement à son exécution, qui est <1 Mo. GHC n'est pas grand ici.
Là où GHC est grand, c'est la taille du kit de développement compilé:
GHC lui-même prend 270 Mo, et avec toutes les bibliothèques et utilitaires qui se réunissent, il prend plus de 500 Mo. Et oui, c'est beaucoup, même avec les bibliothèques de base et un outil de construction / gestionnaire de dépendances. La plate-forme de développement Java est plus petite.
GHC:
$ aptitude show ghc6 | grep Size
Uncompressed Size: 388M
contre OpenJDK avec des dépendances:
$ 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
Mais c'est toujours plus de 100 Mo, pas 26 Mo au moment où vous écrivez.
Les éléments lourds dans ghc6 et ghc6-prof sont:
$ 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
Veuillez noter sa taille libHSghc-6.12.1_p.a
. La réponse semble donc être des versions de liaison et de profilage statiques pour chaque bibliothèque.