Сведения о вопросе

Fhohir

19:49, 8th August, 2020

Теги

Java    

в чем преимущества Java перед php в веб приложениях

Просмотров: 337   Ответов: 15

Приветствую всех,
но интересует мнение в первую очередь java программеров,
скажите пожалуйста в чем на Ваш взгляд преимущество Java перед php при написании веб приложений,
один факт понятен — писать под джавой говнокод сложнее чем на php, и это существенный аргумент, но какие есть ещё?
php изучать проще, примеров больше, библиотек навалом, использовать проще… тех же серверов навалом, насчет производительности несогласен — тот же FarmVille с 70 млн. юзеров имеет php на бэкэндах.

Никоем образом не хочу развести холивар,
всем спасибо.



  Сведения об ответе

baggs

18:30, 18th August, 2020

Преимущества Java «вообще» железа не касаются в принципе. Это строгий язык, на котором можно решать в принципе любую задачу, которая будет работать почти где угодно. Чисто «идейный» аспект — на нем сложнее учиться, но легче писать, он более логичен и этим не раздражает программиста, он развит и расширяется «до бесконечности». Это действительно инструмент на все случаи жизни. Но у него «тяжелая» инфраструктура.

PHP прост в изучении, «легок» в нагрузках, работает внутри HTML страниц. Из-за чего востребован и распространен. Но все хорошо только в начале. Потом отсутствие строгих ограничений становится источником трудноуловимых ошибок, а сам язык воспринимается нелогичным и непредсказуемым. Большие проекты на PHP — это кромешный мрак. Но это тоже все аргументация «идейная».

А в реальной ситуации все решает задача, средства и среда. Так что ответа вы не получите :)


  Сведения об ответе

SEEYOU

09:52, 25th August, 2020

В споре между Java и PHP побеждает Python! :)

Java тяжеловеснее PHP. VPS для простого приложения будет более загружен для java нежели для php. И потребует больше памяти. Для сложных и тяжеловесных — как написано так и будет.
Да, я что-то не слышал про shared хостинг под java.

С точки зрения стоимости разработки PHP лучше — быстрее и дешевле. В случае разработки больших приложений, можно говорить про прототипирование на PHP, с последующим переписыванием на что-нить компилируемое — это может быть и java. Хотя связка python/C выглядит лучше.


  Сведения об ответе

прога

07:02, 3rd August, 2020

В общем в Web приложениях никакого преимущества Java перед PHP нет, обратное также верно.
В Web2.0 — Java из коробки работает уже лучше, а вот пхп уже нужно, и самое главное можно(!) крутить.
По своему опыту скажу что лично на моем опыте — программы написанные на пхп обычно работают раза в 3-4 быстрее чем (моиже :) ) приложения на java.
А теперь внимания вопрос — почему.
Ответ — потому что они так написаны.


  Сведения об ответе

PIRLO

16:30, 29th August, 2020

>писать под джавой говнокод сложнее чем на php
Это просто стереотип. Писать говнокод на java сложнее только потому, что на java любой код писать сложнее, чем на php. Плохое понимание ООП вкупе с его возможностями в Java приводят иногда к таким кривым решениям, которые пхпшникам не снились.
Я вижу большое приемущество Java в том, что скомипилированная в байт-код программа будет работать везде одинаково, в то время как для php целый букет разных опткэшеров.
PHP — Hypertext Preprocessor, он прекрасно работает с текстом. В этом приемущество PHP, web-приложения — его специализация. PHP-скрипты легче писать, легче править, в нем нет того, что не имеет отношения к web'у, в отличии от Java.


  Сведения об ответе

nYU

21:21, 21st August, 2020

Преимущество Java — существование Google Web Toolkit, который позволяет на одном языке, довольно-таки «прозрачно», писать как серверный кусок приложения, так и клиентский. (В том числе, используя общие классы в том и том коде, и незаметно гоняя объекты с клиента на сервер.)


  Сведения об ответе

nYU

14:31, 29th August, 2020

>насчет производительности несогласен — тот же FarmVille с 70 млн. юзеров имеет php на бэкэндах.

Абсолютные цифры ничего не говорят, надо сравнивать пускай даже количество пользователей (а не хитов, не говоря уж о сценариях), отнесённое к задействованным ресурсам. Может там где для PHP надо кластер поднимать, для Java VPS хватит, а может наоборот, не знаю. Сам сейчас мечусь между разными языками, выбирая что лучше подойдёт для сервера с пиком в 100 запросов/секунду, если это вообще реально на 4-х ядернике с 8Гб ОЗУ, получается 40 мс на запрос. По некоторым тестам Java показывает примерно 4-х кратное превосходство по производительности перед PHP и сравнимое с C# в сторону, которого смотрю.


  Сведения об ответе

lesha

10:48, 1st August, 2020

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

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

По поводу библиотек на PHP их конечно несколько побольше, чем на Java (в веб направлении). Но я решал эту проблему через RPC (на не критичных участах) или через JNI (нативный вызов Си\Си++ функций через специальный интерфейс). С другой стороны фундаментальные вещи типа ORM или веб-фреймворки сделаны намного качественее.

Качественее сделано управление зависимостями, сборка и продакшн проекта. Всё автоматизировано и заточено под Java.

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

В ближайшее время появится возможность вызова Python, Ruby библиотек или фреймворков прямо из Java. Можно уже сейчас это делать, но в Java7-8 это будет значительно оптимизировано. Так что проблема с библиотеками будет решена.

Если сейчас хотите начать работать с Java в вебе, присмотритесь к веб-фреймворкам Grails или Tapestry 5. Первый не совсем Java (построенный на Groovy), но имеет большое количество интеграций с библиотеками. Второй полностью на Java, но меньше интегрированных библиотек.

Также Spring сейчас является мейнстримом в разработке веб-проектов. Выше перечисленные фреймворки либо построены на нём, либо имеют возможность интегрироваться с ним.


  Сведения об ответе

VCe znayu

07:37, 4th August, 2020

php соблазняет «писать быстро», а с ростом проекта растет и куча исключений, написанных «по-быстрому». правильное проектирование помогает в любом проекте, но в случае с java язык помогает, а в случае с php вечное стремление сделать «чтобы работало» вместо «как правильно» сбивает с пути.


  Сведения об ответе

SKY

21:06, 1st October, 2020

В чем преимущество кресла перед столом?
Хотя я прекрасно понимаю, чем такие вопросы формируются=)


  Сведения об ответе

pumpa

00:57, 2nd August, 2020

Нету никаких преимуществ, в вебе мы не часто приходится волноваться насчет памяти и скорости. В JAVA типы строгие, что и делает разработку медленным. А на PHP можно быстро сделать многое, и разнице почти незаметная. Но если ты там собираешься писат видео конвертер, то лучше сразу на C/C++/Perl.


  Сведения об ответе

prince

06:07, 9th August, 2020

Я сам не делаю сайты профессионально, но если нужно что то сделать на php почему то сразу делаю на классах, так удобнее и проще потом в поддержке. С крупными проектами не работал поэтому пока незнаю в чем появляются сложности если их делать на php, используя ООП.

Собственно к чему я этот вопрос запостил — хочу написать для себя фрэймворк для создания веб приложений, везде вижу что профессионально это java, а на php большие проекты не пишутся.

Может тогда кто нибудь ответит что за сложности появляются при написании больших проектов на php?


  Сведения об ответе

ITSME

10:25, 4th August, 2020

но мы обсуждаем php и java :) в ruby я совершенно некомпетентен и сказать мне нечего


  Сведения об ответе

Chhiki

06:19, 5th August, 2020

Скорее все зависит от задачи которую надо решать, если работа с оборудованием или написание полноценного приложения(не WEB). То лучше Java, если нужна серверная часть для отработки REST запросов то PHP7 mysql nginx


  Сведения об ответе

appple

00:07, 17th August, 2020

У PHP есть еще одно важное для веба преимущество: Выполнение скрипта можно ограничить по времени, и по памяти. И это ограничение никак не повлияет на остальные подключения.

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


  Сведения об ответе

PAGE

09:45, 14th August, 2020

На java есть EJB, JSTL, JSF, Spring, hibernate , JPA, JSP , Servlet . На php и остальных языках программирования для веб нет ни чего подобного и не предвидится. По этой причине писать на JAVA проще что-то отличное от сайта визитки. Визитка просто летает на java. PHP только развивается в сторону java, а в java все технологии есть. Только нужно XML-ники писать для добавления функционала. Если сравнивать быстродействие то у JAVA приемущество по сравнению с PHP. 1000 запросов к страничке на java обрабатываются секунды 3 в servlet. У других такой быстроты не наблюдается. Да и по ресурсам java не очень требовательна если не криво код писать. Я бы даже сказал, что на java как и на с++ все хорошо работает, но нужно изучать. Учить java ee трудное дело.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться