Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
2-1429430826
Олег Г.
2015-04-19 11:07
2017.01.15
Не находится существующий файл


15-1450042201
Юрий
2015-12-14 00:30
2017.01.15
С днем рождения ! 14 декабря 2015 понедельник


15-1451560078
Kerk
2015-12-31 14:07
2017.01.15
С новым годом!


2-1419657072
SKIPtr
2014-12-27 08:11
2017.01.15
получение времени из DateTimePicker


15-1451239135
Юрий Зотов
2015-12-27 20:58
2017.01.15
XML editor





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский