У меня возник закономерный вопрос, есть ли какие-то критические недостатки, которые эту технологию делают не такой популярной как php c его множеством фреймворков и CMS.
Популярность PHP, на мой взгляд, имеет следующую природу:
1. На заре интернета большинство людей были неподготовленными, они не имели навыков программирования, системного администрирования, верстки и т.д.. Большинство сайтов в то время были обычными статическими html или текстовыми страничками. То есть для того, чтобы сделать сайт надо было нанять программиста(верстальщика) и/или системного администратора, чтобы разместить, добавить или изменить информацию опять же нужен был обученный человек.
Интернет рос и развивался и вот, в какой-то момент, возможности статических страничек стало не хватать и их начали генерировать динамически. Но, опять же, простому пользователю который хотел домашнюю страничку, блог или простенький интернет магазин такие "развлечения" были недоступны в силу недешевой рабочей силы.
И тут на сцену выходит PHP (а особенно 4 ветка, дальше все в контексте 4 ветки и выше) с его потрясающей легкостью деплоя. RoR тогда еще не было, да и сам Ruby за пределами Японии не имел широкой известности. Ну так вот, с выходом PHP4, практически любой пользователь мог самостоятельно развернуть приложение на нем, просто скопировав папку по фтп, да и организовать хостинг под PHP было намного легче чем, например, под Java. Спрос рождает предложение. Начали появляться различные, как платные, так и бесплатные CMS на PHP, дешевые хостинги. Пользователь, который хотел дополнительный функционал для своего сайта, мог не нанимать программиста, а просто купить или найти бесплатный модуль под свою CMS. Это породило большое количество PHP программистов которые писали модули под популярные CMS-ки. В дальнейшем приложения стали более сложными и решали нестандартные задачи, а PHP программистов было довольно много и порог вхождения в язык был невелик, так начали появляться PHP фреймворки.
2. PHP при каждом запросе "рождается" и "умирает" в следствии чего неподготовленному пользователю, опять таки, легче устанавливать модули, темы, плагины и т.д. для своих CMS-ок. В RoR (unicorn) при установке gem-а придется перестартовать сервис, зачем такой геморой пользователю? Да и чтобы его(gem) установить, надо обладать некоторыми навыками программирования, а непросто щелкнуть мышкой в админке.
А вот в сложных и не стандартных проектах, с длительным сроком поддержки, все уже не так очевидно... Наверное паритет... Тут их хватает и на PHP, и на Ruby, и на Python, и на JVM...