PHP по категориям
PHP - это только клейкий язык, такой же, как BASH или Perl. Это хорошо, но не хорошо во всем остальном, оставьте без внимания серьезную работу. Язык не предназначен. Он просто развивается путем случайного объединения различных кодов в случайном порядке (код и исправление).
Скомпилированные языки
В отличие от PHP, Java - это скомпилированный язык, который был должным образом спроектирован. Существуют JSR, определяющие язык, многие корпоративные среды и концепции, такие как EJB, JMS, ESB, Spring, Struts, Hibernate и другие.
Корпоративное ПО
С точки зрения корпоративных систем Java EE - это решение, которое подходит для этой цели (Enterprise Edition), тогда как PHP используется в компаниях, которые пытаются сократить расходы, нанимая дешевую рабочую силу с меньшей квалификацией.
Было приложено немало усилий, чтобы перетащить PHP в сегмент Enterprise, используя различные фреймворки. В частности, Zend Framework 2 . Фундаментальная проблема здесь не в объектно-ориентированной PHP, а в отсутствии дизайна, отсутствии строгой типизации, нестандартных решениях стандартных проблем (вроде взломов для всего) и полном отсутствии какой-либо предписанной архитектуры.
Разработка программного обеспечения (обсуждается архитектура)
С PHP, бремя архитектуры программного обеспечения по-прежнему полностью ложится на разработчиков, которые выполняют очень плохую работу, то есть часто вообще не имеют никакой архитектуры, просто случайным образом кодируют и исправляют. Безопасность и транзакции отсутствуют и должны быть включены разработчиками. В Java одно решение аннотировано EJB. Также учтите тот факт, что в PHP ничего не происходит, если вы пропускаете перехват исключений или допускаете различные ошибки. Это до времени выполнения. С Java вы получите предупреждение и ошибки прямо во время разработки. Это называется надежностью, но с PHP вы можете только продолжать мечтать.
Многопоточность
PHP не поддерживает многопоточность. Код всегда один поток. Это ухудшает его производительность для нетривиальных задач при большой нагрузке. В Java EE многопоточность полностью поддерживается, например, через интерфейс Runnable.
Поддержка и Стандарты
Также рассмотрите развертывание, веб-сервисы и другие стандарты. В то время как в Java есть такие крупные компании, как Oracle, IBM, RedHat, Apache и многие другие, в PHP есть только Zend.
Вывод
В заключение, PHP - очень плохой объектно-ориентированный язык. Строго говоря, он даже не объектно-ориентированный, а гибридный, что плохо для версий> 5, потому что ООП смешивается с процедурным программированием. Я бы рекомендовал PHP только как клей, как BASH, но для серьезной работы я бы использовал Java EE.
Связанные мысли
Основная задача последнего Zend Framework 2 заключается в том, что он пытается быть похожим на Java EE, но полностью не может предоставить хотя бы удаленно сопоставимый набор доступных пакетов, функций, инструментов, средств автоматизации, проверки ошибок, архитектуры, дизайна и все.
По моему опыту, использовать PHP для сложных проектов дороже, чем с Java.
Также ходят слухи, что PHP означает «довольно ужасное программирование» . Я могу подтвердить это.