Форум: "Прочее";
Текущий архив: 2017.01.15;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.56 MB
Время: 0.048 c