Java или PHP серверное веб-приложение и почему? [закрытый]

Я создаю веб-приложение, которое включает в себя много доступа к БД и анализа и анализа данных , Java-это язык, с которым мне наиболее комфортно, но недавно мне сказали, что я должен рассмотреть возможность использования PHP, поскольку это делает протоколы доступа к БД намного проще.

У меня нет больших знаний о PHP, но я был бы готов учиться для использования , если бы это был лучший вариант, что касается функциональности, переносимости ect.

веб-приложение будет работать против Oracle DB и используйте Flex для GUI, пожалуйста, любой опыт подобных проектов и то, что сделало ваш выбранный подход лучше, поможет или просто мнения любого рода.

8 ответов


Если Вам удобно с Java, я не вижу необходимости изучать/использовать PHP. Нет ничего, что PHP может сделать, что Java не может.

Это правда, что по большому счету PHP является гораздо более разрешительным языком, и некоторые задачи могут быть выполнены быстрее и с меньшим количеством кода. PHP, безусловно, имеет меньше встроенной абстракции,чем Java. Но если вам удобно с Java, я бы сказал, придерживайтесь его.

(Я говорю это как разработчик PHP.)


IMHO если вы знаете java, используйте JPA.

Если вы хотите узнать что-то новое и быстрое прототипирование, используйте python/django.


существует огромная разница между синтаксисом, phuilosophy и реализацией 2 языков. Я бы предположил, что "делает протоколы доступа к БД намного проще" не является особенно хорошей причиной в изоляции для выбора одного языка над другим.

мой фон - программист PHP, но в настоящее время я поддерживаю несколько больших веб-приложений Java. Если бы вы начинали с одной и той же точки с обоих языков, я бы определенно предпочел PHP Java - но полный обсуждение причин, почему это займет намного больше времени и пространства, чем доступно здесь. Однако, если у вас уже есть сильные навыки Java, то вам нужно взвесить затраты на приобретение правильного уровня навыков в PHP - из-за различий в том, как эти системы работают, вы найдете свои знания Java как помеху, так и преимущество в достижении мастерства в PHP.

другие факторы, которые я бы предложил вам взглянуть на:

1) архитектура - PHP требует гораздо лучшего понимания базовых протоколов, чем Java (где много функциональности обеспечивается libs/ Framework)

2) простота развертывания

3) соображения производительности-использование кэша кода операции означает, что разница между простыми программами, написанными на Java и PHP, невелика, поскольку первые обычно написаны внутри очень сложных фреймворков, PHP часто может иметь преимущество. Он, конечно, не имеет такой же сложности для памяти mngmnt

4) TCO - PHPs простота использования - это обоюдоострый меч - вам нужно много знать о Java, чтобы запустить программу, но мир и его собака думают, что они могут написать хороший код на PHP. IME его труднее найти компетентных программистов PHP, чем программистов Java.


для меня это сводится к производительности. Когда вы смотрите на PHP он, безусловно, был развернут на очень больших платформах (Facebook использовал его почти исключительно в начале), но в целом он используется на небольших платформах. Java, для меня, когда вы смотрите на его преимущества масштабируемости, превосходит, но только когда вы знаете, что будете масштабироваться.

понимание жизненного цикла запроса-это очень важно. То есть, зная, что такое контейнер Java и как Запуск сервера Tomcat помог мне понять чрезвычайно последствия для производительности.

Не пытайтесь выбирать один над другим по отдельным атрибутам, таким как "простота кодирования" или "подключение к базе данных"- они достаточно разные, что, сосредоточившись всего на нескольких "важных" вещах, вы будете по существу выбирать на основе предвзятой информации. То есть PHP облегчает подключение к БД, если смотреть на них на поверхностном уровне - " тьфу! Я должен установить JDBC, wtf это???", и т. д. - Но это оправдание ленивого человека. Нет ничего, что Java не может сделать, что PHP может (что я знаю).

для меня вопрос в том, как вы реально (читать: реально) см. приложение работает - вы планируете получать тысячи посещений в час или вы говорите сто посещений в день, как великое большинство проектов там?

преимущества PHP для небольших проектов, особенно для программист, который не полностью понимает архитектуру ООП, огромен - но не ленитесь и просто возьмите PHP, потому что это проще из коробки. Java является чрезвычайно мощным и просто изучая его может научить вас больше, чем вы поняли, вы не знали об ООП и хороших практиках программирования в целом (если вы пришли из области самоучки, как я).

в принципе, я бы сказал, проанализируйте свою предполагаемую нагрузку на проект плюс время нарастания, если вам нужно узнать одно или другое, оцените свой требования к эффективности и масштабируемости, продолжайте задавать вопросы, а затем решите, какая платформа лучше.

надеюсь, это поможет....!


PHP позволяет вам делать много веб-вещей с меньшими усилиями и меньшим количеством строк кода, чем Java, я думаю (и я говорю только о своем собственном опыте - всегда есть некоторые, кто говорит вам: "Используйте Java, PHP-дерьмо", и будут те, кто скажет вам: "PHP намного лучше, чем Java". Не слушайте нас, просто попробуйте, или вы никогда не узнаете!). Я делаю много вещей Java, но что касается веб-приложений, я не доволен этим. Для большинства наших клиентов невозможно использовать Java, так что у меня нет особого выбора.

есть некоторые хорошие фреймворки PHP (например, Yii, которые мне нравятся больше всего) и действительно хорошие orms как доктрина или активная запись. Если вы должны изучить язык и заинтересованы в гибкой разработке, также подумайте о Ruby (Ruby on Rails) или Python (Django), поскольку это крутые дети в городе:)


ну, реальная проблема здесь в том, что вам нужны библиотеки, чтобы сделать вашу работу проще. JVM как платформа имеет намного больше возможностей, чем PHP, если по какой-либо другой причине вы можете гибридизировать свое приложение со встроенными языками. Кроме того, Hibernate фантастичен как ORM (Object Relational Mapping), в основном принимая ваши таблицы и глядя на них как POJOs.

Если вы делаете много "сырых" вещей, мне действительно нравится использовать сиквел, который является библиотекой Ruby и очень хорошо работает на JRuby. В вообще, я нахожу, что утка-набрав/сжатый код, который нравится людям о PHP, абсолютно воспроизводим в Ruby через JRuby (или Jython для вас типы энтузиастов Python).

Лучшая библиотека будет продиктовано напуганность, схемы Вы имеете дело с, в дополнение к типу работы, которую вы проделываете. Вам нужно сделать много сложных запросов, извлекая столбцы из нескольких таблиц сразу? Или это больше похоже на " мне нужно получить все заказы для определенного клиент и отобразить его в диаграмме истории заказов"? ORMs лучше подходят для последнего, что и есть веб-приложения, но ваше упоминание о разборе и анализе заставляет меня задаться вопросом, является ли это более первым.

Hibernate дает вам наибольшую гибкость, я нахожу. Не очень хорошая идея использовать автогенерированный материал без его просмотра, но если вы используете Eclipse, есть плагин, который будет генерировать классы для вас.

еще одна причина пойти с Java: если вы посмотрите на контейнер Glassfish для вашего веб-приложения, он встроен в пулы JDBC для вас, и вы можете посмотреть статистику и управление пулом. Если у вас много доступа к базе данных, это может быть очень полезно.


Я думаю, что нет необходимости в PHP, вы можете просто пойти с Java.Если вы считаете, что это приложение является веб-приложением, вы можете использовать PHP.Таким образом, вы можете получить доступ к нему из любого места


Почему бы не использовать оба? Quercus будет запускать PHP на Java. Вы можете вызвать Java-код, как если бы это были собственные функции PHP. Вы получите лучшее из обоих. И ваш PHP будет работать быстрее, чем под Apache.

Я программист PHP, и хотя протоколы доступа к PHP DB могут быть "проще" (спорными), я бы не сказал, что они лучше. Java может использовать пул соединений DB и может" сохранять " данные, код и объекты.