Ответ 1
Я не использую CodeIgniter, поэтому мое сравнение уже неполное.
Вопрос: почему они запрашивают Java? Часто крупные компании предлагают только среду Java или .Net для продуктивных систем, чтобы у них не было людей для продуктивного запуска приложений PHP. Я знаю, что это не сложно, но люди, занимающиеся обслуживанием, определяют, что они работают.
Люди, говорящие на языках и их функциях, но когда обсуждается первый случай использования бизнеса, никакая инфраструктура не сэкономит вам столько времени, чтобы подсчитать. Большинство языков программирования каким-то образом решают проблему.
Java - это не только RichFaces или JSF. Есть много на выбор. МНОГО. Не преимущество.
Часто забываемая вещь - это поддержка инструмента. Java поставляется вместе с JVM, который может быть детально проанализирован, что он делает с его памятью, сборщиком мусора, потоками и так далее. Профилировщики на Java позволяют идентифицировать почти любую утечку памяти в течение нескольких часов. Большая часть мониторинга JVM работает в режиме реального времени (около 5% накладных расходов). Говоря об инструменте: поддержка рефакторинга намного превосходит возможности PHP IDE.
Вы правы, если первый взгляд на Java по сравнению с PHP выглядит как слоны и лошади. (ok логотип php - слон, идеальное сравнение...). Лошади более гибкие, чтобы поворачивать вокруг углов, но они могут не переносить так много вокруг. Я думаю, что с точки зрения языка Java еще более продвинута, чем PHP. Пространства имен, классы, тип безопасности. Они несколько доступны в PHP, но все еще совершенно новые.
Рамки вроде Spring позволяют вам использовать ваше приложение на архитектурном уровне и больше, чем просто библиотеки.
Я не самый большой поклонник Java EE, поэтому я не буду жаловаться на это.
Простым подходом для вас может стать Tomcat + Spring + SpringMVC и механизм шаблонов для графических интерфейсов. Существует также GWT (Vaadin), если вы нацелены на более высокоскоростное поведение клиента (все еще намного больше).
В Java также есть легкие подходы. Я согласен, что стандарты на Java имеют более жировую тенденцию.
По моему опыту, Java не имеет серьезных недостатков по сравнению с PHP. Выбор языка повлияет только на успех проекта, если люди имеют меньше знаний, чем требуется, и тратят слишком много времени на изучение предметов. И попытка найти правильную книгу о Java может быть проектом по своему усмотрению:) (считая как преимущество)
Но я не сомневаюсь, что PHP позволит вам завершить проект.
Я предпочел бы изучить цели и требования, прежде чем выбирать технологию. Это часто подразумевает или упрощает решение.
Надеюсь, я ответил хотя бы на один вопрос:)