Десять лет назад 8 июня 1995 года Rasmus Lerdorf официально анансировал Personal Home Page Tools, сейчас известный как PHP: Hypertext Preprocessor - платформо-независимый язык скриптов.
> Так если на этой легковушке предлагают через болото ехать?
Хто тебе такое предлагает? Кругом прекрасные скоростные автобаны.
По болотам ездят только маргиналы и геологи. На любой приличной дороге
тебя пошлют далеко и больно с твоими гусеницами.
>В таком случае, наверное, некорректно и ругать php, который честно делает свою работу и не претендует на универсальность?
Некорректно. Свою работу он делает. На универсальность не претендует. Вы же не будете ругать пылесос за то что он не умеет кофе варить? Сайты на нём писать можно. На сервере это прекрасно исполняется. А то что php под webbrowserом не работает это от него не требуется. Это все го лишь удобный (серверный) скриптовой язык.
>Мне хватает c++ для написания cgi, но это не значет что надо php хаять. Если php прожил 10 лет и им до сих пор пользуются - знать кому то это надо. А по поводу дырявости так старый добрый закон гласит что все созданное человеком ненадежно
собственно вопрос. скажите пожалуйста, если после деления на ноль программа продолжает выполняться, это нормально ? более того, переменная, в которой хранится результат этой операции используется далее по коду.
если это норма, не могли бы вы (или другой php-гуру) объяснить почему ? в php своя особенная математика со своими уникальными законами ?
> собственно вопрос. скажите пожалуйста, если после деления на ноль программа продолжает выполняться, это нормально ?
А что тебя смущает? Вообще-то операция деления на ноль -- это отнюдь не катастрофа вселенского масштаба, тем более, что интерпретатор предупреждает тебя об этом. Warning: Division by zero in PHPDocument1 on line 4
> более того, переменная, в которой хранится результат этой операции используется далее по коду.
Переменная принимает булевое значение false и при дальнейшем её использовании в математической операции будет приведена к нулю.
> объяснить почему ? в php своя особенная математика со своими уникальными законами ?
Java, насколько я знаю, в этом случае бросает исключение. Возможно, в PHP тоже до этого дойдут, но мне это по барабану -- совершенно не напрягает. А про уникальные законы языка -- они есть в каждом языке.
>> более того, переменная, в которой хранится результат этой операции используется далее по коду.
>Переменная принимает булевое значение false и при дальнейшем её использовании в математической операции будет приведена к нулю.
вы считаете это правильным поведением, гарантирующим корректный результат математических операций ? по моему, это не так. математики, ау. проясните вопрос.
>> объяснить почему ? в php своя особенная математика со своими уникальными законами ?
>Java, насколько я знаю, в этом случае бросает исключение. Возможно, в PHP тоже до этого дойдут, но мне это по барабану -- совершенно не напрягает. А про уникальные законы языка -- они есть в каждом языке.
Java бросает exception, да. если вы его специально не обработаете, программа завершится. разница между поведением Java и php очевидна, я думаю.
> вы считаете это правильным поведением, гарантирующим корректный результат математических операций ? по моему, это не так. математики, ау. проясните вопрос.
Не берусь судить о правильности такого подхода, но его порочности я тоже не вижу. Это можно принять как данность. А в математике результат такой операции будет +бесконечность. Тоже себе неплохой результат -- с ним можно работать. :) А, кстати, что говорит Java при попытке извлеч тангенс из угла 90 градусов? PHP говорит, что он равен 16331778728384000. :D
> если вы его специально не обработаете, программа завершится. разница между поведением Java и php очевидна, я думаю.
Естесственно. Я и не говорил о схожести методов. И подход Java мне нравится больше. Но в PHP вам ничего не мешает перехватывать эту ошибку и делать, что вам заблогарассудится -- он прерывания программы, до перезагрузки сервера. set_error_handler, если интересует.
Не совсем верно. Вы получаете вполне определённое исключение. Вот только продолжить выполнение программы с места исключения уже не получится. (Если такая возможность есть в Java, то хотел бы узнать, как это сделать.)
>И что только люди не придумают, лишь бы не учить перл
на всякое дело свой инструмент. перл менее удобен для веб пагесов чем пшп. зато в скриптописании системном он выигрывает. избавляйтесь от юношеского максимализма. за него работодатель на платит, а нах посылает
Мне кажется, поведение программы при возникновении ошибки деления на
ноль должно быть конфигурируемым. Есть много случаев, когда остановка
программы из-за такого пустячка неоправдана. Бывает, конечно, и наоборот.
> Мне кажется, поведение программы при возникновении ошибки деления на ноль должно быть конфигурируемым.
Согласен. И тут PHP лучше (гибче?), чем Java и любой другой язык, бросающий исключения при делении на нуль, т.к. он (PHP) предоставляет средства управления этим поведением. В принципе, PHP тоже можно научить бросать исключения в таких случаях. И несложно -- до 10 строчек.
> > /me ждет Perl6. Судя по текущему положению, это будет the end of all things ;)
> Второе пришествие случится раньше
Даладно. Учтя, что "общее видение" было завершено полтора года наза, и посмотрев на текущее состояние Parrot/Pugs, можно скорее удивиться скорости разработки.
В принципе, я знаю. Перловка - один из самых страшных языков, чтобы не ней хорошо писать - требуется определенная самодисциплина (как и для плюсов). "Perl gives you enough rope to hang yourself while shooting yourself in the foot" (C) Wall, IIRC.
Зато при соблюдении гигиены он очень, очень мощен. И еще у него есть CPAN.
>Маленький тест:
>"site:gov php" Results 1 - 10 of about 4,230,000 for site:gov php.
Дык на PHP маленькие сайтиы лобают - по тому как проще язык (в силу низкого функционала).
Этак самый хороший язык - бейсик
в том же google
"security hole in java" 587
"security hole in php" 27 000 ;-))))
"security hole in perl" 761
Может по этому крупные проекты пишут на java?
Sony, HP наш job.ru
А для простых вещей годится perl, надежней и удобней чем php.
Нет, с практической точки зрения, во время отладки кода бывает очень полезно, если транслятор внятно объясняет что ему не нравится. Иначе ты, с большой вероятностью, словишь ситуацию "прога глючит и хуй поймёт почему она это делает".
>> Мне кажется, поведение программы при возникновении ошибки деления на ноль должно быть конфигурируемым. Есть много случаев, когда остановка программы из-за такого пустячка неоправдана. Бывает, конечно, и наоборот.
> Дык, это и есть --- обработка исключений.
Ну, скажем, я словил исключение, посмотрел на него -- и решил забить по причине его малой важности или же исправил ситуацию. Могу ли я теперь продолжить выполнение программы с того места где оно было прервано?
А ХЗ, о любом, где есть исключения. Скажите, в каком языке можно возобновлять выполнение программы при возникновении исключения? Само понятие исключения, если я правильно помню, опровергает такую возможность.
> Ну, скажем, я словил исключение, посмотрел на него -- и решил забить по причине его малой важности или же исправил ситуацию. Могу ли я теперь продолжить выполнение программы с того места где оно было прервано?
Если ты подумаеш то поймеш почему "продолжить выполнение программы С ТОГО места где оно было прервано" - очень редко имеет смысл.
По теме. Да уж, значительное событие. Скажите мне, чем php удобнее, чем perl? IMO, он стал популярен только потому, что он embedded, и там не надо думать о "Content-type: text/html\n\n", и как следствие - вообще не надо думать.
>Yilativs, ты бы чем жабу ПЕАРИТЬ выучил бы лучше как к приватным полям через reflection обращаться. Элементарных вещей не знаешь мля, а тудаже.
А ты знаешь? Без настроек security.manager код в студию ;-)