Список вопросов
Как зайти в Даркнет?!
25th January, 01:11
8
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
899
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
952
0
Очень долго работает Update запрос Oracle
27th January, 09:58
916
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
907
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
942
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1727
0
период по дням
25th October, 10:44
3957
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3722
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4614
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4382
0
Помогите пожалуйста решить задачи
24th November, 23:53
6087
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4352
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4400
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
в чем преимущества Java перед php в веб приложениях
Просмотров: 337
 
Ответов: 15
Приветствую всех,
но интересует мнение в первую очередь java программеров,
скажите пожалуйста в чем на Ваш взгляд преимущество Java перед php при написании веб приложений,
один факт понятен — писать под джавой говнокод сложнее чем на php, и это существенный аргумент, но какие есть ещё?
php изучать проще, примеров больше, библиотек навалом, использовать проще… тех же серверов навалом, насчет производительности несогласен — тот же FarmVille с 70 млн. юзеров имеет php на бэкэндах.
Никоем образом не хочу развести холивар,
всем спасибо.
Преимущества Java «вообще» железа не касаются в принципе. Это строгий язык, на котором можно решать в принципе любую задачу, которая будет работать почти где угодно. Чисто «идейный» аспект — на нем сложнее учиться, но легче писать, он более логичен и этим не раздражает программиста, он развит и расширяется «до бесконечности». Это действительно инструмент на все случаи жизни. Но у него «тяжелая» инфраструктура.
PHP прост в изучении, «легок» в нагрузках, работает внутри HTML страниц. Из-за чего востребован и распространен. Но все хорошо только в начале. Потом отсутствие строгих ограничений становится источником трудноуловимых ошибок, а сам язык воспринимается нелогичным и непредсказуемым. Большие проекты на PHP — это кромешный мрак. Но это тоже все аргументация «идейная».
А в реальной ситуации все решает задача, средства и среда. Так что ответа вы не получите :)
В споре между Java и PHP побеждает Python! :)
Java тяжеловеснее PHP. VPS для простого приложения будет более загружен для java нежели для php. И потребует больше памяти. Для сложных и тяжеловесных — как написано так и будет.
Да, я что-то не слышал про shared хостинг под java.
С точки зрения стоимости разработки PHP лучше — быстрее и дешевле. В случае разработки больших приложений, можно говорить про прототипирование на PHP, с последующим переписыванием на что-нить компилируемое — это может быть и java. Хотя связка python/C выглядит лучше.
В общем в Web приложениях никакого преимущества Java перед PHP нет, обратное также верно.
В Web2.0 — Java из коробки работает уже лучше, а вот пхп уже нужно, и самое главное можно(!) крутить.
По своему опыту скажу что лично на моем опыте — программы написанные на пхп обычно работают раза в 3-4 быстрее чем (моиже :) ) приложения на java.
А теперь внимания вопрос — почему.
Ответ — потому что они так написаны.
>писать под джавой говнокод сложнее чем на php
Это просто стереотип. Писать говнокод на java сложнее только потому, что на java любой код писать сложнее, чем на php. Плохое понимание ООП вкупе с его возможностями в Java приводят иногда к таким кривым решениям, которые пхпшникам не снились.
Я вижу большое приемущество Java в том, что скомипилированная в байт-код программа будет работать везде одинаково, в то время как для php целый букет разных опткэшеров.
PHP — Hypertext Preprocessor, он прекрасно работает с текстом. В этом приемущество PHP, web-приложения — его специализация. PHP-скрипты легче писать, легче править, в нем нет того, что не имеет отношения к web'у, в отличии от Java.
>насчет производительности несогласен — тот же FarmVille с 70 млн. юзеров имеет php на бэкэндах.
Абсолютные цифры ничего не говорят, надо сравнивать пускай даже количество пользователей (а не хитов, не говоря уж о сценариях), отнесённое к задействованным ресурсам. Может там где для PHP надо кластер поднимать, для Java VPS хватит, а может наоборот, не знаю. Сам сейчас мечусь между разными языками, выбирая что лучше подойдёт для сервера с пиком в 100 запросов/секунду, если это вообще реально на 4-х ядернике с 8Гб ОЗУ, получается 40 мс на запрос. По некоторым тестам Java показывает примерно 4-х кратное превосходство по производительности перед PHP и сравнимое с C# в сторону, которого смотрю.
С 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 сейчас является мейнстримом в разработке веб-проектов. Выше перечисленные фреймворки либо построены на нём, либо имеют возможность интегрироваться с ним.
Я сам не делаю сайты профессионально, но если нужно что то сделать на php почему то сразу делаю на классах, так удобнее и проще потом в поддержке. С крупными проектами не работал поэтому пока незнаю в чем появляются сложности если их делать на php, используя ООП.
Собственно к чему я этот вопрос запостил — хочу написать для себя фрэймворк для создания веб приложений, везде вижу что профессионально это java, а на php большие проекты не пишутся.
Может тогда кто нибудь ответит что за сложности появляются при написании больших проектов на php?
У PHP есть еще одно важное для веба преимущество: Выполнение скрипта можно ограничить по времени, и по памяти. И это ограничение никак не повлияет на остальные подключения.
В Java для этого придется убить сервер приложений и запустить заново, а это долго по времени и затронет остальные подключения. Собственно поэтому в продакшене запускают по нескольку серверов на одной машине.
На 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 трудное дело.
Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться