Мне не нравится слабая типизация когда, например, можно складывать строку и целое и получать непредсказуемые результаты, типа такого кусочка:
<?php echo "10" + 1, "\n"; echo "test" + 1, "\n"; echo "test" . 1, "\n"; ?>
который выводит вот это:
11 1 test1
Но с этим можно жить, например, используя методы безопасного программирования (по иронии поиск в Google выводит на первые места безопасное программирование для PHP :-). Но вот такое поведение функции substr() (в PHP 4.3.10, который, почему-то еще используют хостеры) мне понять сложно:
<?php var_dump(substr("test", 3)); var_dump(substr("test", 4)); var_dump(substr("test", -4, -3)); var_dump(substr("test", -4, -4)); var_dump(substr("test", -4, -5)); ?>
вот с такими результатами выполняется кусочек выше:
string(1) "t" bool(false) string(1) "t" string(0) "" string(0) ""
Почему когда позиция больше, или равна длине строки возвращается булевское false? Почему этого не делается, например, в последнем случае? Почему не возвращается ожидаемая по логике пустая строка, которая позволяет без проблем писать в функциональном стиле? Конечно слабая типизация спасает авторов в данном случае и объединение строк трактует false (кстати, тоже не очень логично) как пустую строку, но в итоге весь язык держится на наборе различного рода подпорок, которые вместе составляют очень неустойчивую конструкцию.
Comments All comments
Comment by spleaner on 11:54, 2008 4 29
php5 можно вполне себе юзать :) все зависит от того -- как :) я как-то даже писал себе махонький фреймворчек a-la ROR и все работало :)
а мы вот пишем тут PHP плюгин для IDEA :)
Comment by Dmitry Vasiliev on 12:05, 2008 4 29
Ну когда есть выбор я его просто не использую. :-) А вот когда его нет, приходится использовать что дают.
В PHP5 тоже работал - там уже и с классами получше и исключения есть. Но в целом, что бы быть удобным он должен быть другим языком. ;-)
Насчет плагина - правильно, все таки главный web-язык, "де-факто". ;-)
Comment by SW on 22:29, 2008 4 30
PHP - плохой язык. Проблема заключается в том, что он "работает". И куча леммингов уже написали на нем кучи, некоторые из которых плохо пахнут. Такое ощущение, что непроработанность концепции заменили на слабую типизацию. Это еще ничего, но сверху потом еще и недо-ООП прикрутили :).
Comment by SW on 22:31, 2008 4 30
Димка, только вспомни о скорости разработки. Сколько надо среднестатистическому юному гению от программирования времени для того, чтобы написать guestbook на python / perl? А на php? Вот так вот...
Comment by Dmitry Vasiliev on 12:28, 2008 5 2
Просто с PHP очень легко начать работать. Но, по идее, если ты развиваешься, то он перестает тебя устраивать. К сожалению большинство не развивается. :-(
С другой стороны есть много больших проектов сделанных на PHP и в этом случае работают профессионалы. Возможно им просто нравится PHP. :-)
Add comment