На ум быстро приходят две причины. Во-первых, стандартная библиотека PHP неизвестна и страдает от плохой документации. Веб-сайт php.net широко считается лучшим активом языка, но многие новые встроенные классы (такие как SPL, API отражения, DomDocument и т. Д.) Представляют собой не более чем список методов без большого контекста.
Что еще более важно, похоже, что полный SPL никогда не поставляется по умолчанию с какой-либо версией PHP до (не выпущенной) 5.3. Это убийца, насколько усыновление идет. Обычно люди, пишущие код PHP, не имеют контроля над тем, что попадает в их двоичный файл PHP. Этим занимается их веб-хост и / или операционная команда, и веб-хосты и / или операционные команды имеют другие цели, чем разработчик, и не собираются устанавливать каждое дополнительное расширение, которое приходит вместе. Это также означает, что проекты, такие как Drupal, Joomla, Wordpress и т. Д., Не могут полагаться на SPL, установленный везде, поэтому они не используют его.
Часть причины, по которой PHP «одержал победу» над perl, заключалась в том, что в одной установке было все необходимое. Дополнительные расширения никогда не получили широкого распространения, пока они не стали частью базовой установки.