PHP и с чем его едят....

akick

letter to god
Cris
на мой взгляд он прост только отсутствием типизации и привязанностью к вебу.. и еще конечно для echo 'hello world';
а для решения сложных задач все языки одинаковы имхо просто где-то больше за вас решили девелоперы где-то меньше да и только..
главною грудью на мины не кидаться а искать уже решенное и понимать то что там внутри оно не навредит тому куда это будет впихуемо.

Все отличается уровнем абстракции от assemby language вот..

ЗЫ: отсутствие типизации оно проще только для тех кто не понимает ее выгоды ;)
Типизация нужна, типизация важна ! (с) пионер вася
 

PainKiller

Пастафарианец
Команда форуму
Супер Модератор
Ну я смог разобраться с ООП и со строгой типизацией только после явы. Строгая типизация и человеческая инкапсуляция спасут мир. ВОт ЖСП - красивая штука=)
 
Ну я смог разобраться с ООП и со строгой типизацией только после явы. Строгая типизация и человеческая инкапсуляция спасут мир. ВОт ЖСП - красивая штука=)
Дима, мир спасут расстрелы тех, кто считает что строгая типизация и человеческая инкапсуляция, а тем более в jsp спасут мир. Не хотелось бы начинать тут флейм, но совершенно непонятно, какая разница конечному пользователю, что программист Василий может умножить в php переменную $var строкового типа со значением "22" на 2 и получит 44 (мало ли зачем ему это нужно, но тем не менее - он может), а программист Геннадий проделав подобное в коде сервлета получит эксепшн о несоответсвии типов данных?
 

dreamer

Member
Не хотелось бы начинать тут флейм, но совершенно непонятно, какая разница конечному пользователю, что программист Василий может умножить в php переменную $var строкового типа со значением "22" на 2 и получит 44 (мало ли зачем ему это нужно, но тем не менее - он может), а программист Геннадий проделав подобное в коде сервлета получит эксепшн о несоответсвии типов данных?
Потому что Геннадий, получив ексепшн, исправит ошибку если она там есть, а Василий будет долго разбираться почему оно не работает.
Хотя это конечно зависит от степени профессионализма девелопера ;)
 
Потому что Геннадий, получив ексепшн, исправит ошибку если она там есть, а Василий будет долго разбираться почему оно не работает.
Хотя это конечно зависит от степени профессионализма девелопера ;)
У Васи изначально все работает в вышеприведенном примере, ему не нужно исправлять ошибки, а вот Геннадий опечален: ему нужно определить тип переменной через getType(), перевести ее из строкового в целочисленный вид Integer.toString(), а может и не целочисленный, если передаваемая строка выглядит как "22.22", то нужен уже float или double. В то время, как Вася пишет в своем IDE echo ('22.22'*2); и получает 44.44. Это, еще раз повторюсь, это просто абсурдный пример, хотя и не лишенный смысла, к примеру, если разбираете xml rpc ответ, где забыли указать или неверно указали тип возвращаемых данных (<value><string>22,22</string></value>) или парсите html файл.

Ну а если Василию становится совсем одиноко и у него действительно высокий уровень профессионализма, то он занимается отладкой не через вывод эксепшенов браузер (речь же о jsp и php), а через дебагер Zend Studio или что-то другое.

А кто может привести пример, когда без строгой типизации не обойтись? Мне так, чисто для повышения степени профессионализма =)
 
Останнє редагування:

Cris

Member
А кто может привести пример, когда без строгой типизации не обойтись? Мне так, чисто для повышения степени профессионализма =)
когда есть строгие критерии на используемую память, и когда есть типизация оно будет быстрей работать поидее.
 
A

AkeL.php

Guest
А как на счёт такого фактора, как скорость работы на больших проектах ?
 

dreamer

Member
А кто может привести пример, когда без строгой типизации не обойтись? Мне так, чисто для повышения степени профессионализма =)
Пример довольно простой: допустим Вася получает свое число не тривиально а например как-то так:
PHP:
if (preg_match('#(\d+)#', $somData, $t)) {
    $shouldBeNumber = $t[1];
    $anotherValue = 23 * $shouldBeNumber;
}
И так уж вышло, что он не выспался и вместо (\d+) написал (\w+).
Что мы имеем? $anotherValue будет нулем, и отследить это может быть непросто, а потом еще и найти причину...
Или он вообще напишет $shouldBeNumber * 23 и получит здоровую строку вместо числа.
Если же гипотетическая IntToStr вызовет ексепшен он быстро все исправит.

Я не утверждаю что строгая типизация спасет мир, но слишком большая свобода часто приводит к ошибкам.
 
dreamer, похоливарили и будет, я с тобой согласен, помогает не хвататься за голову и дебагер после релиза. =)

Cris, AkeL.php не туда вы смотрите (конспекты старых пердунов из Политеха?), 21 век на дворе, эра серверов с десятками гигабайтов ram для memcached, а вы все экономите на байтах между float и double. Ну есть в Java, если не строгая, то статическая типизация. И толку? Apache + Tomcat + JSP будет в десятки раз медленнее Apache + PHP через FastCGI. И это не только мое мнение и опыт, введите в Google "php jsp benchmark" и получите с 10 ссылок с тестами.

Вот к примеру:


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

PainKiller

Пастафарианец
Команда форуму
Супер Модератор
Дима, мир спасут расстрелы тех, кто считает что строгая типизация и человеческая инкапсуляция, а тем более в jsp спасут мир. Не хотелось бы начинать тут флейм, но совершенно непонятно, какая разница конечному пользователю, что программист Василий может умножить в php переменную $var строкового типа со значением "22" на 2 и получит 44 (мало ли зачем ему это нужно, но тем не менее - он может), а программист Геннадий проделав подобное в коде сервлета получит эксепшн о несоответсвии типов данных?
Серьезно? Я конечно же не спорю, пхп спасет мир и т.д. Однако, я хотел бы посмотреть на php-реализацию чего-нибудь "потяжелее". Ты же сам писал, что не надо читать старые конспекты студентов. Чем вызвано бытущее мнение о том, что ява медленна и не может держать нагрузки?
Можно обратиться к первоисточнику, даже почитать немного Sun.com. В результате мы узнаем что:
1. Виртуальная ява машина разработана для обеспечения кроссплатформенности.
2. Код, написанный программистом компилируется ява компилятором в "байт-код".
3. При выполнении код проверяется ява машиной и только затем выполняется.
Касательно скорости. В начале 2008 года Java умудрялась рвать в клочья по производительности хваленый с++ на его же платформе. Ссылку может любезно предоставить тов. GrAndSe.
А вот я попрошу ссылочку, где показаны тесты php vs java. Именно против явы. Пофиг под чем запускать пхп, но чтобы ява приложения были собраны исключительно javac, запускались java %filename%.
Кто там ругался насчет памяти для java? А -xmx1024m для кого придумали? Если гига мало, ставьте столько, сколько надо. Да и не зря, наверное, Zend засунули поддержку *.class в ппх =)
В яве не строгая типизация? О_о
Открываем первую страницу учебника по java:
"Следует помнить, что ява это прежде всего строго типизированный язык программирования".
 
Зверху