В основном ответ на то, что Clojure — это JVM. Мол, эта хрень такая тяжёлая.
Это появилось на канале ZA Tech в группе Slack несколько недель назад. Во время некоторых выступлений по Clojure спикеры делали такое замечание снова и снова.
По этому поводу я выступил в Slack. Теперь запишу для более широкого чтения и обсуждения.
Предисловие
Я тоже раньше думал, что JVM тяжёлая. Это было в начале 2000-х, в сравнении с PHP. Там были и другие тяжеловесы, вроде .NET и ColdFusion. Были и более лёгкие альтернативы вроде Perl и Python, но я тогда сидел на Windows, так что ActivePerl и ActivePython тоже были несколько тяжеловаты.
Впервые я преодолел свой «страх» перед JVM, когда развернул небольшое производственное приложение JRuby на Heroku. Этот маленький монстрик должен был выполнять только одну задачу в день. Он генерировал ряд PDF'ов, потом загружал их на iSign (сейчас не функционирует) для хранения и распространения. Сам iSign был классическим приложением Rails, которое хостилось на трёх AMI. Этот маленький динозавр на стоковом JVM (за исключением -server -Xmx=512M
) производил PDF'ки так быстро, что он буквально убивал трёхнодовый кластер при каждом запуске.
Я по-прежнему думал, что он немного тяжеловат в работе, но влюбился в этого гадкого утёнка.
Читать полностью »