Вероятно, мы должны сравнить яблоки с яблоками и апельсины с апельсинами. JRE - это среда выполнения, а не набор разработчика. Мы можем сравнить: исходный размер комплекта разработки, размер скомпилированного комплекта разработки и скомпилированный размер минимального времени выполнения.
Исходный пакет OpenJDK 7 составляет 82 МБ (download.java.net/openjdk/jdk7) по сравнению с исходным пакетом GHC 7, который составляет 23 МБ (haskell.org/ghc/download_ghc_7_0_1). GHC здесь не большой. Размер среды выполнения: openjdk-6-jre-headless в Ubuntu составляет 77 МБ в несжатом состоянии по сравнению с Helloworld Haskell, статически связанным с его средой выполнения, которая составляет <1 МБ. GHC здесь не большой. </p>
Если GHC большой, это размер скомпилированного комплекта разработки:
Самому GHC требуется 270 МБ, а вместе со всеми библиотеками и утилитами он занимает более 500 МБ. И да, это много, даже с базовыми библиотеками и инструментом построения / менеджером зависимостей. Платформа разработки Java меньше.
GHC:
$ aptitude show ghc6 | grep Size
Uncompressed Size: 388M
против OpenJDK с зависимостями:
$ 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
Но это все равно больше 100 МБ, а не 26 МБ, как вы пишете.
Тяжелые вещи в ghc6 и ghc6-prof:
$ 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
Обратите внимание, насколько велика libHSghc-6.12.1_p.a
. Таким образом, ответом для каждой библиотеки является статическое связывание и профилирование версий.