LINUX.ORG.RU

PHP масштабируется не хуже Java


0

0

В этой статье рассматривается вопрос расширяемости веб сервисов построенных на PHP.

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

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

>>> Статья

★★★★

Проверено: Shaman007 ()

Ответ на: комментарий от anonymous

> Слышали о HP OpenView SD?

видел я этот SD, и код его видел. ощущения не из приятных. хотя на PHP наверное было бы ещё страшней

(зы: думаю что в HP не используют PHP потому что названия похожи)

anonymous
()
Ответ на: комментарий от Toxa

>можно на пхп написать шедевр .... врят ли это кто то оспорит:)

Оспорит, оспорит! Продемонстрируй, плиз, хоть один "шедевр" на РНР (не hello world, конечно), что-бы в нем не находили регулярно десятками дыры.

anonymous
()
Ответ на: комментарий от mutable

> Яблоко от яблони недалеко падает ;)

...так что ты там говорил про байт-код?

или слив можно считать засчитанным?

anonymous
()
Ответ на: комментарий от mutable

> А еще расскажите мне где вы нашли теорию по которой ИНТЕРПРЕТАЦИЯ высокоуровнего языка быстрее интерпретации БАЙТКОДА?

Хм... Я почему то считал, что рантайм-интерпретация исходника умерла вместе с бейсиком. О ПХП ничего сказать не могу так как терьпеть его не могу, но, к примеру, перл искодник не интерпретирует, он его компилирует, причем -- в идеале -- в байт-код, а на некоторых платформах -- в мышинный код, который, как мне почему то кажется, выполняется побыстрее байт-кода :)

> но она НЕ МЕДЛЕННЕЕ. Она не сложнее.

Да-да :) Раскажи это не-фанатикам жабы. Кстати, если уж о сложности, то если некая задача на перле была реализована в 20 строк, а на жабе -- в 20 классов, то попроще будет перл, наверное...

> имеет за своей спиной БОЛЬШЕ монстров, которые ее двигают.

Согласен, но имеет меньше "монстров" которые ее используют :)

arsi ★★★★★
()
Ответ на: комментарий от mutable

>Яблоко от яблони недалеко падает ;)

причем тут яблокo и яблоня? РНР было написано с нуля. Зря оставили название похожее на PHP/FI - теперь каждый РНРфоб считает нужным крикнуть "Personal Home Page" :)))

AcidumIrae ★★★★★
()
Ответ на: комментарий от anonymous

> ...так что ты там говорил про байт-код?

> или слив можно считать засчитанным?

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

Итак: Hot Spot специальный подход оптимизации кода во время выполнения. Причем не просто оптимизация чего не попадя, а анализ наиболее важных (требовательных к ресурсам) участков кода, затем их анализ и оптимизация. На java можно смело писать кучи проверок и безтлковые циклы. Если они начнут отъедать заметные вычислительные (по отношению ко всему времени выполнения) ресурсы, они будут отсечены без потери хода выполнения алгоритма.

mutable
()
Ответ на: комментарий от arsi

>...мышинный код, который, как мне почему то кажется, выполняется побыстрее байт-кода :)

когда 'кажется' креститься надо ;) не всегда быстрее :)

AcidumIrae ★★★★★
()
Ответ на: комментарий от arsi

> Однажды админ написал страничку по учете (точнее -- визуализации всей энтой хрени из БД в хтмл-виде) траффика юзверями, на ПХП (соко это заняло времени не знаю не спрашивал)... Но время идет, все меняется... Появился новый дистриб, админ его поставил... Вирсия ПХП там отличалась в н-ном знаке субверсии... Естественно, его страничка не заработала.

Сказочник. Либо админ тот - дурка. В минорных версиях если что и поменяется - так это хаки отломают или костыли приберут. Если не заработало при смене минорной версии - ищи ошибки в своем ДНК.

Серьезные проблемы бывают при переходе с 4.х на 5.х. Там дофига чего поломали. А внутри 4-ки - сильно сомневаюсь.

AngryElf ★★★★★
()
Ответ на: комментарий от AcidumIrae

Я чего так неадекватно реагирую на PHP... Он не одинок. Так же я реагирую на .NET.

Эти "технологии" слиз с жабы. PHP до 5.0 был клоном перла, ужасно порезанного. Сейчас же это клон жабы. Зачем нам 10 разных жаб? Потому что это круто быть PHP программером?

mutable
()
Ответ на: комментарий от Davidov

>Кстати, про ruby: его можно поставить на shared хостинге (при наличии доступа к htaccess, cgi-bin)?

можно, будет отлично!

anonymous
()
Ответ на: комментарий от mutable

>Я чего так неадекватно реагирую на PHP... Он не одинок. Так же я реагирую на .NET.

зачем? ;) нервы не восстанавливаются?

>Эти "технологии" слиз с жабы. PHP до 5.0 был клоном перла, ужасно порезанного. Сейчас же это клон жабы. Зачем нам 10 разных жаб? Потому что это круто быть PHP программером?

PHP популярен потому что очень прост и быстр в разработке и обучении и соответсвенно программеры дешевле ;)

AcidumIrae ★★★★★
()
Ответ на: комментарий от mutable

---------- Итак: Hot Spot специальный подход оптимизации кода во время выполнения. Причем не просто оптимизация чего не попадя, а анализ наиболее важных (требовательных к ресурсам) участков кода, затем их анализ и оптимизация. На java можно смело писать кучи проверок и безтлковые циклы. Если они начнут отъедать заметные вычислительные (по отношению ко всему времени выполнения) ресурсы, они будут отсечены без потери хода выполнения алгоритма. ----------

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

А вообще - всё надо писать на C/C++. И встраивается куда хочешь, и под любую платформу/архитектуру есть.

anonymous
()
Ответ на: комментарий от AcidumIrae

>>Сказочник. Либо админ тот - дурка

>+1 >register_globals? ;)))

Да, точно. Оно и было, скорее всего...

Под "реанимированием", наверняка предполагалась беготня по исходникам с заменой $var на $_{POST|GET}['var'].

Так что второй вариант :)

AngryElf ★★★★★
()
Ответ на: комментарий от AcidumIrae

PS: забыл добавить - под PHP можно написать легко и просто расширение на любом языке который можно в SO скомпилить. Ту же бизнес-логику. Этим он тоже нравится :)))

AcidumIrae ★★★★★
()
Ответ на: комментарий от anonymous

> А вообще - всё надо писать на C/C++. И встраивается куда хочешь, и под любую платформу/архитектуру есть.

Встрой мне C/C++ в пятибаксовый хостинг ;-)

AngryElf ★★★★★
()
Ответ на: комментарий от anonymous

Терпеть не могу php, но flickr на нем таки написали.

anonymous
()
Ответ на: комментарий от anonymous

>А вообще - всё надо писать на C/C++. И встраивается куда хочешь, и под любую платформу/архитектуру есть.

ну, дык, PHP вам в руки - пишите расширение :)))

AcidumIrae ★★★★★
()

ребза... на ПХП можно написать ВСЕ что угодно и это будет работать! А на джаве... только муть. //гоблен

anonymous
()
Ответ на: комментарий от anonymous

> ребза... на ПХП можно написать ВСЕ что угодно и это будет работать! А на джаве... только муть. //гоблен

Гоблен, а какое отношение ты имеешь к программированию? На курсах за месяц освоил PHP?

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

mutable
()
Ответ на: комментарий от mutable

> Тебе говорилось про Hot Spot.

угу, канешна.

а кто тогда орал про ИНТЕПРЕТАЦИЮ?

> А еще расскажите мне где вы нашли теорию по которой ИНТЕРПРЕТАЦИЯ высокоуровнего языка быстрее интерпретации БАЙТКОДА? Не рассказывайте мне про компиляцию налету (она требует памяти и времени процессора). Как вы представляете себе реюзинг кода в терминах ресурсов компьютера, при использовании ИНТЕРПРЕТАЦИИ КОДА?

а после того как тебя ткнули мордочкой в твоё невежество, перешёл на ответы в стиле "+1", из чего очевидно что c PHP ты не знаком.

не знаком -- ну и ладно, но какого хрена строить из себя тут бойца с ветряными мельницами?

> На java можно смело писать кучи проверок и безтлковые циклы.

смеялсо. пиши исчо

anonymous
()

И как же это раком PHP масштабируется? Разве там уже появились потоки или есть возможноть построить на нем кластер?

Extremal
()
Ответ на: комментарий от AngryElf

> ищи ошибки в своем ДНК.

Не получиццо, если у мну там ошибки то ниче я там найти не смогу, дава лучше я те лог компиляции энтого самого ДНК сброшу, а ты такой безошибочный мне безошибочно скажешь что в там не так :)))

arsi ★★★★★
()
Ответ на: комментарий от arsi

>дава лучше я те лог компиляции энтого самого ДНК сброшу, а ты такой безошибочный мне безошибочно скажешь что в там не так :)))

Давай. Стоимость аудита - 10баксов/строка лога. PHP-программеры может и дешевые, но не бесплатные :)

AngryElf ★★★★★
()
Ответ на: комментарий от anonymous

> Не бывает плохих языков программирования, бывают плохие программисты. Ас программирования и на бейсике вытворит такое, что средний кодер на Си хрен напишет.

Хрен напишет, ибо нужно нахрен. Не тратить время на фигню -- признак жизненного опыта и профессионализма.

shimon ★★★★★
()
Ответ на: комментарий от anonymous

>> Тебе говорилось про Hot Spot.

> угу, канешна.

> а кто тогда орал про ИНТЕПРЕТАЦИЮ?

Опа... Молодой человек, что-то вы тормозите. Но это ничего. Для писанины на PHP я так понимаю это приветствуется.

ИНТЕРПРЕТАЦИЯ сама по себе никаким образом не отсекает возможности использования Hot Spot ибо блягодаря именно интерпретации байт кода его возможно проанализировать и подменить налету. В сегменте кода, извините, прав не хватит подменить код.

Далее. Код на PHP должен быть "скомпилирован" налету (как уже говрилось и я не отрицаю, что PHP компилирует код во внутреннее представление). НА ЭТО НУЖНО ВРЕМЯ!!! Если вы напишите хорошое сложное корпоративное приложение, которое возможно будет поддерживать - оно будет состоять из тысячи отдельных файлов. И вот вопрос - не накладно их каждый раз анализировать? Тут люди говорили про кэширование ранее скомпилированного байт кода. С этим я соглашусь - это выход.

mutable
()
Ответ на: комментарий от vada

>>Автор приходит к выводу, что разработка больших проектов на PHP является быстрой и дешевой.

>Достаточно взглянуть на это (уязвимости по ключевому слову php) http://www.securitylab.ru/vulnerability/index.php?arrFilter_ff%5BSECTION_ID%5... А потом на это уязвимости по ключевому слову java http://www.securitylab.ru/vulnerability/index.php?arrFilter_ff%5BSECTION_ID%5... Соотношение 1908/363

И это при том что под java попадает и J2ME и j2EE и javaScript(к java не имеещий отношение) да и програм на java написано раза в N по более.

Yilativs ★★★★
()
Ответ на: комментарий от arsi

> Угу, оч быстрая и дешевая, но вот потом...

Однажды админ написал страничку по учете (точнее -- визуализации всей энтой хрени из БД в хтмл-виде) траффика юзверями, на ПХП (соко это заняло времени не знаю не спрашивал)... Но время идет, все меняется... Появился новый дистриб, админ его поставил... Вирсия ПХП там отличалась в н-ном знаке субверсии... Естественно, его страничка не заработала. Он день убил в попытках все это реанимировать, а на следующий день до конца обеднего перерыва он (хоть и не без сторонней помощи в моем лице) переделал все это на перл. После этого случая перл выдержал несколько обновлений и страничка работать не перестала. Занавес.

Эта история оч хорошо отражает масштабитуемость и быстроту разработки веб сервисов на ПХП...

Если не умеет программить на php, пусть подойдёт к зеркалу и попинает его. Ставишь в конфиге error reporting E_ALL и смотришь на много интересных вещей типа deprecated и т.д. в идеале в работающем коде ничего не должно выводиться. Странно, на C/C++/Java никто сразу не лезет ничего сложнее hello world писать, а про php думают, щас я изучу как тут скобочки расставлять и я крутой web кодер.

gloomdemon
()
Ответ на: комментарий от AcidumIrae

>под PHP можно написать легко и просто расширение на любом языке который можно в SO скомпилить. Ту же бизнес-логику. Этим он тоже нравится :)))

Вот. Соотв - вопрос: кусок ПХП кода скомпилить в so - реально? (без стеба))

grinn ★★
()
Ответ на: комментарий от mutable

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

Для справки -- define (как ни странно), include* и require* кушают памяти и времени более всего.

shimon ★★★★★
()
Ответ на: комментарий от anonymous

> Слышали о HP OpenView SD? Мощная система! А на чем написана? Нет. Пыхпыхом на и не пахнет. Java + perl. Быдлокодеры сосут леденцы...

Слышали про МегуТруПорталОтМегаТруРогов&Копыт? Так вот, нописоно на PHP, жабой и прочими пионерскими недоделками там и не пахнет. Хотя пых-пых такое же говно, как и жаба.

anonymous
()
Ответ на: комментарий от grinn

> Вот. Соотв - вопрос: кусок ПХП кода скомпилить в so - реально? (без стеба))

Ты не понял, о чем AcidumIrae написал. Он написал, что берешь свой, скажем, C, и ваяешь на нем решение критичных по памяти/времени задач в виде расширения пхп, после чего компилируешь и имеешь пару новых функций или классов -- заточенных и оптимизированных.

Это не относится к компиляции пхп в машинный код.

shimon ★★★★★
()
Ответ на: комментарий от grinn

>Вот. Соотв - вопрос: кусок ПХП кода скомпилить в so - реально? (без стеба))
нет, а нахера ? народу хватает того что можно скомпилить в байткод, аля *.java файлов (чтоб не парсить каждый скрипт и заодно зашифровать)

anonymous
()
Ответ на: комментарий от AcidumIrae

> под PHP можно написать легко и просто расширение на любом языке который можно в SO скомпилить.

look-at JNI

mutable
()
Ответ на: комментарий от mutable

>ИНТЕРПРЕТАЦИЯ сама по себе никаким образом не отсекает возможности использования Hot Spot ибо блягодаря именно интерпретации байт кода его возможно проанализировать и подменить налету. В сегменте кода, извините, прав не хватит подменить код.

>Далее. Код на PHP должен быть "скомпилирован" налету (как уже говрилось и я не отрицаю, что PHP компилирует код во внутреннее представление). НА ЭТО НУЖНО ВРЕМЯ!!! Если вы напишите хорошое сложное корпоративное приложение, которое возможно будет поддерживать - оно будет состоять из тысячи отдельных файлов. И вот вопрос - не накладно их каждый раз анализировать? Тут люди говорили про кэширование ранее скомпилированного байт кода. С этим я соглашусь - это выход.

Извините что вмешиваюсь, исходники php не смотрели? Внури он перед выполнением компилит всё в свой собственный код наподобии байт-кода, а потом выполняет. По поводу оптимизации и скорости, лезем на zend.com и смотрим zend performance suite, zend guard (для тех кто в танке zend inc. если не создатели php, то основная двигающая сила php)

gloomdemon
()
Ответ на: комментарий от shimon

>Ты не понял, о чем AcidumIrae написал. Он написал, что берешь свой, скажем, C, и ваяешь на нем решение критичных по памяти/времени задач в виде расширения пхп, после чего компилируешь и имеешь пару новых функций или классов -- заточенных и оптимизированных.

В смысле можно ли так сделать? Да легко, ничего сложного, более того если найти все .h файлы и что где лежит (я девелопился под php4, документации не нашёл никакой, лазил по сырцам и h) то можешь юзать все пхпшные функции.

gloomdemon
()
Ответ на: комментарий от gloomdemon

Тю. Неужели я проворонил чего-то и они даже примера не предоставили, какой интерфейс должно предоставлять расширение?

shimon ★★★★★
()
Ответ на: комментарий от r

>Нет. Новел и рядом не валялся по сравнению с порталом бимеров. ТАк себе корпоративный сайтик.

И чего же там не хватает до такого мега рулёзного портала как ibm.com?

gloomdemon
()
Ответ на: комментарий от gloomdemon

> Извините что вмешиваюсь, исходники php не смотрели? Внури он перед выполнением компилит всё в свой собственный код наподобии байт-кода, а потом выполняет. По поводу оптимизации и скорости, лезем на zend.com и смотрим zend performance suite, zend guard (для тех кто в танке zend inc. если не создатели php, то основная двигающая сила php)

Я еще раз повторюсь: я в курсе, что PHP компилит код во внутреннее представление. Но это происходит каждый раз при обращении к новому модулю(файлу) если он незакэширован. Если же он закеширован, происходит проверка на валидность состояния кэша. Я подчеркиваю - в этом есть суть проеба времени.

mutable
()
Ответ на: комментарий от shimon

>Тю. Неужели я проворонил чего-то и они даже примера не предоставили, какой интерфейс должно предоставлять расширение?

Это-то есть, а больше ничего не нашёл, мне надо было сделать интерпертатор зашифрованного пхп файла, неделю рабирался как у них происходит преобразование кода во внутренний (оно там есть, хотя может мне это всё превидилось), потом плюнул и расшифорванный код передавал в чего-то-там_eval (сишная функция которая вызывается когда вызываешь в php eval).

gloomdemon
()
Ответ на: комментарий от mutable

> Я еще раз повторюсь: я в курсе, что PHP компилит код во внутреннее представление. Но это происходит каждый раз при обращении к новому модулю(файлу) если он незакэширован. Если же он закеширован, происходит проверка на валидность состояния кэша. Я подчеркиваю - в этом есть суть проеба времени.

Ну так для этого и есть, долбаный продукт от zend, который раньше был zend optimazer, теперь perfomance suit чего-то там. Всё как раз компилит, а потом радостно выкладываешь к себе на сайт. Вроде так, подробности на zend.com, хотя могу и ошибаться.

gloomdemon
()
Ответ на: комментарий от gloomdemon

> Ну так для этого и есть, долбаный продукт от zend, который раньше был zend optimazer, теперь perfomance suit чего-то там. Всё как раз компилит, а потом радостно выкладываешь к себе на сайт. Вроде так, подробности на zend.com, хотя могу и ошибаться.

Тогда беру свои слова обратно.

mutable
()

Печально

Печально, что из-за того, что некоторые криворукие недопрограммеры пишут с register globals или из-за того что некоторые криворукие недоадмины register globals ставят по умолчанию для сайтов. которым он нафиг не нужен к РНР программерам стали относиться как к программерам на басике.

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

Ну объясните мне, зачем мега-языку джава, который разрабатывали совсем для другого отрисовывать веб-странички? Никто же не пытается (я надеюсь) программировать микроконтроллеры на РНР? Кесарю - кесарево.

Я пишу на РНР потому что это требует наименьших временных затрат.

a-x
()
Ответ на: комментарий от anonymous

>Java нужно мочить. Ruby намного удобнее, прозрачнее и навороченнее.

>а главное - на порядок быстрее и свободнее.

Ruby на порядок быстрее - это сильно! Судя по всему, он экстрасенсорно предугадывает нужный результат и просто не занимается такой фигнёй, как вычисления? :)

KRoN73 ★★★★★
()
Ответ на: Печально от a-x

>> Ну объясните мне, зачем мега-языку джава, который разрабатывали совсем для другого отрисовывать веб-странички? Никто же не пытается (я надеюсь) программировать микроконтроллеры на РНР? Кесарю - кесарево.

Только за тем, что в него вгрохали деньги. И вложения надо продать. Ловим дурачков и впихиваем .NET, JAVA, С# ... что там идет дальше?

anonymous
()
Ответ на: комментарий от anonymous

>> Только за тем, что в него вгрохали деньги. И вложения надо продать. Ловим дурачков и впихиваем .NET, JAVA, С# ... что там идет дальше?

Да, о качестве думают в последнюю очередь :((((

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.