Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2017.01.15;
Скачать: CL | DM;

Вниз

PHP и Java для Web   Найти похожие ветки 

 
DayGaykin ©   (2015-10-26 15:03) [0]

Интересно порассуждать на тему, что лучше для Web-а, PHP или Java.

Имея некоторый опыт работы с тем и тем я могу сделать следующие выводы:
Плюсы PHP перед Java:
- Дешевле хостинг, дешевле программисты
- Работает очень надежно. За мой многолетний опыт работы с Apache+PHP не было ни одного случая, чтобы Apache падал. Tomcat иногда падает даже при отладке.
- Возможность задать ограничение по памяти на отдельный запрос.
- Гораздо проще обновлять скрипты на сервере. Можно даже вести разработку и тестирование на боевом сервере без перезапусков.

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

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


 
Kerk ©   (2015-10-26 15:11) [1]

В контексте нагруженных систем что тут можно обсуждать? Фейсбук и Вконтакте написаны на PHP, Linkedin - на Java. Вроде и там, и там достаточно нагрузок и все нормально.

Как язык Java конечно намного приятнее, чем PHP. Тем более, что Java - это целая платформа, где языков много.

Существенное отличие Java от PHP - это наличие статической типизации. В достаточно большом проекте это может очень сильно помочь.


 
ksergey ©   (2015-10-26 16:21) [2]

Мне от чего-то C# видится приятнее. В том числе и в смысле быстродействия. Но цифр у меня нет, конечно.

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

А вот том это кэт - в самом деле жутко падучая фигня!


 
Empleado ©   (2015-10-26 16:25) [3]

JavaScript


 
кгшзх ©   (2015-10-26 16:33) [4]

JavaScript + php


 
кгшзх ©   (2015-10-26 16:36) [5]

- Есть мнение, что он быстрее работает.

если абстрактно-сферически, то быстрее,
если в реальных проектах то фик.


 
Kerk ©   (2015-10-26 16:50) [6]


> кгшзх ©   (26.10.15 16:36) [5]
>
> - Есть мнение, что он быстрее работает.
>
> если абстрактно-сферически, то быстрее,
> если в реальных проектах то фик.

Тем не менее сервер для форекс-торговли на пхп представить себе сложно, а вот на Java оно вполне себе есть.


 
кгшзх ©   (2015-10-26 16:57) [7]

а вот на Java оно вполне себе есть.

А в абрамсах (танках) был интребейц потому что интербейц это самая-самая-самая субэдэшная субэдэ


 
Empleado ©   (2015-10-26 17:10) [8]

JavaScript и для серверной части тоже.


 
DayGaykin ©   (2015-10-26 18:36) [9]


> Тем не менее сервер для форекс-торговли на пхп представить
> себе сложно,

А в чем именно PHP не устраивает?


 
Kerk ©   (2015-10-26 18:40) [10]


> DayGaykin ©   (26.10.15 18:36) [9]

Конкретно в больших и сложных проектах пхп не устраивает отсутствием статической типизации. Такой код намного сложнее сопровождать.

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


 
кгшзх ©   (2015-10-26 20:31) [11]

Так благодаря отсутствию строгой типизации "большие сложные" проекты как раз и превращаются в маленькие и простые.

точнее это одни и те же проекты.


 
Kerk ©   (2015-10-26 20:39) [12]

Хороший наброс, но можно было лучше :)


 
кгшзх ©   (2015-10-26 20:43) [13]

ну я честно не представляю, что такое большойсложныйпроект на веб.

это когда как и сто лет назад на сервере рожают и данные и разметку?
другого не могу предположить.


 
кгшзх ©   (2015-10-26 20:45) [14]

роль похапе в веб приладе - поставлять данные для гуи.
больше он ничего делать не должен.

и для большого сложного проекта в веп этот код умещается на 5-дюймовой дискете в ста экземплярах без архивации


 
кгшзх ©   (2015-10-26 20:48) [15]

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


 
Kerk ©   (2015-10-26 20:56) [16]

Ну если сводить задачу сугубо к шаблонизации, то в принципе пофиг на чем писать. Лишь бы проще и быстрее.


 
кгшзх ©   (2015-10-26 21:00) [17]

так это же (шоблонизация) те же яйца, только в профиль.

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

в этих контекстах конечно можно напугаться большого сложного проекта


 
Kerk ©   (2015-10-26 21:33) [18]

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


 
DayGaykin ©   (2015-10-26 21:39) [19]

Как я понял "сервер-приложений" как задумывался в больших проектах не используется. Java, по сути, используется в "режиме PHP".


 
Kerk ©   (2015-10-26 21:42) [20]

Booking.com вообще на перле написан.
Они когда в это ввязывались наверно тоже думали, что не бывает больших и сложных веб-приложений :) Сейчас наверно проклинают тот день.


 
DVM ©   (2015-10-26 21:43) [21]


> что лучше для Web-а, PHP или Java.

ASP.NET MVC лучше :)


 
кгшзх ©   (2015-10-26 22:17) [22]

Сейчас наверно проклинают тот день.

Снова не показатель.
А просто наша реальность.

Я видел, как хорошие и безпроблемные проекты не требующие поддержки разработанные в одиночку заменялись на "большие сложные серьезные решения".

итог: нужен взвод поддержанцев в 24х7, на каждое желание-чих - дополнительные $000, время поиска проблем от нуля до бесконечности.

Так что не показатель.


 
кгшзх ©   (2015-10-26 22:20) [23]

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

бывает и чего?


 
Омлет ©   (2015-10-28 00:16) [24]

На рельсах вообще быстро пишется. Но инструмент выбирается под задачу.
А задача не описана.


 
virex(home) ©   (2015-10-30 11:34) [25]

говорят китайцы отлично пользуются китайскими палочками, европейцы - ложками и вилками, кто-то - по старинке, руками

в походе одним охотничим ножом можно ограничиться

как по мне, для обеда в офисе - и чайной ложки хватает


 
DayGaykin ©   (2015-11-30 10:10) [26]

В чем преимущество строгой типизации перед иной?


 
Ринсвинд ©   (2015-11-30 10:17) [27]


> В чем преимущество строгой типизации перед иной?

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


 
кгшзх ©   (2015-12-02 11:23) [28]

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


 
Ринсвинд ©   (2015-12-02 11:40) [29]


> камбудто ошибки связанные с нетипизацией  - главное что
> мешает создавать рабочие приложения

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


 
Игорь Шевченко ©   (2015-12-02 11:43) [30]


> Но если среда будет выполнять проверку типов за программиста,
>  то у программиста будет больше времени


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


 
Ринсвинд ©   (2015-12-02 13:28) [31]


> Игорь Шевченко ©   (02.12.15 11:43) [30]

Мне сложно об этом судить. Мне еще и 30 нет. Но вчера я скачал WEB-сервер Apache версии 2.4.17 и PHP-модуль версии 5.6.16.


 
Ринсвинд ©   (2015-12-02 13:35) [32]


> Мне сложно об этом судить. Мне еще и 30 нет. Но вчера я
> скачал WEB-сервер Apache версии 2.4.17 и PHP-модуль версии
> 5.6.16.

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


 
кгшзх ©   (2015-12-03 11:04) [33]

больше времени для того чтобы сосредоточиться

этой умной мантре про талантливого художника, который не отвлекается а сосредотачивается на чем-то разумном добром вечном - лет 15 уже.

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

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


 
Юрий Зотов ©   (2015-12-03 11:36) [34]

Из моей практики - по поводу типизации.

За уже многие-многие годы программирования еще ни разу не было, чтобы например, я загнал в список объект не того класса.

Зато с появлением обобщенного программирования, если мы не допускаем предупреждений компилятора (а я их не допускаю), приходится  явно указывать тип. То есть, объем писанины вырос. И эта писанина ну никак не помогает мне сосредоточиться на прикладной задаче. Скорее, мешает.

Для примера - рассмотрим 2 варианта.

Map myMap = new HashMap();
myMap.put(myString, myInteger);

Map<String, Integer> myMap = new HashMap<String, Integer>();
myMap.put(myString, myInteger);


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


 
кгшзх ©   (2015-12-03 12:52) [35]

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

- гена, гена, давая я понесу чемоданы, а ты понесешь меня.


 
euru ©   (2015-12-03 13:40) [36]


> Map<String, Integer> myMap = new HashMap<String, Integer>();
> myMap.put(myString, myInteger);

Это издержки этого языка программирования.
В другом языке этот код будет проще:

var myMap = new HashMap<string, int>();


 
Ринсвинд ©   (2015-12-03 14:02) [37]


> Это издержки этого языка программирования.
> В другом языке этот код будет проще:

Учитывая слова о том, что без обобщений выводится предупреждение, можно предположить, что речь идет о яве. В яве, начиная с 7 версии, есть даймонд-оператор:

Map<String, Integer> myMap = new HashMap<>();


 
Kerk ©   (2015-12-03 14:12) [38]

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

А сама статическая типизация вещь суперполезная. Например, я хочу, чтобы проект перестал компилироваться, если я изменил сигнатуру метода, но не исправил все места его вызова. Полезность статической типизации растет пропорционально количеству и сложности кода.


 
ухты ©   (2015-12-03 15:26) [39]


> Map<String, Integer>
если такое часто писать надо, то отнаследуйтесь и будет проще, в дальнейшем окупится.


 
Limpo ©   (2015-12-03 20:05) [40]

Статическая компиляция позволяет среде разработки выводить подсказки. Вот это круто


 
DayGaykin ©   (2015-12-04 02:13) [41]


> Map<String, Integer> myMap = new HashMap<>();

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

Кстати, большой минус Java как мне показалось: в случае веба все запросы выполняются в одной java-машине с единой памятью. Поэтому при тяжелом запросе сервер (томкат, например) может грохнуться. Нет возможности память ограничить на отельный запрос. Нет возможности грохнуть запрос, который выполняется лишком долго (например, из-за ошибки). На моей небольшой практике томкат падал уже несколько раз. В отличие от него apache+php не падал никогда.



Страницы: 1 2 вся ветка

Текущий архив: 2017.01.15;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.028 c
2-1432218936
Пауло Сержио
2015-05-21 17:35
2017.01.15
поиск по подчинённой таблице


15-1453242651
Jeer
2016-01-20 01:30
2017.01.15
Jeer


2-1421904151
i2e
2015-01-22 08:22
2017.01.15
В MDI-приложении надо программно сделать окно активным


15-1451394616
Kerk
2015-12-29 16:10
2017.01.15
Сувениры


2-1420805898
sz1958
2015-01-09 15:18
2017.01.15
свернуть-восстановить главную и модальные формы