Probabilmente dovremmo confrontare le mele con le mele e le arance con le arance. JRE è un runtime, non un kit di sviluppo. Possiamo confrontare: dimensione della sorgente del kit di sviluppo, dimensione del kit di sviluppo compilato e dimensione compilata del tempo di esecuzione minimo.
Il pacchetto sorgente OpenJDK 7 è 82 MB (download.java.net/openjdk/jdk7) rispetto al pacchetto sorgente GHC 7, che è 23 MB (haskell.org/ghc/download_ghc_7_0_1). GHC non è grande qui. Dimensioni di runtime: openjdk-6-jre-headless su Ubuntu è 77 MB non compresso vs Haskell helloworld, staticamente collegato con il suo runtime, che è <1 MB. GHC non è grande qui.
Dove GHC è grande, è la dimensione del kit di sviluppo compilato:
GHC stesso richiede 270 MB e con tutte le librerie e le utility che si uniscono ne superano i 500 MB. E sì, è molto, anche con le librerie di base e uno strumento di compilazione / gestore delle dipendenze. La piattaforma di sviluppo Java è più piccola.
GHC:
$ aptitude show ghc6 | grep Size
Uncompressed Size: 388M
contro OpenJDK con dipendenze:
$ 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
Ma è ancora più di 100 MB, non 26 MB mentre scrivi.
Le cose pesanti in ghc6 e ghc6-prof sono:
$ 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
Nota quanto è grande libHSghc-6.12.1_p.a
. Quindi la risposta sembra essere il collegamento statico e le versioni di profiling per ogni libreria là fuori.