Какие есть объективные причины?. кроме туевой хучи кода сайтов, написанных новичками..
Давайте сравним, например, с Python-ом, который хвалят почем зря..
в чем php проигрывает?.
— скорость работы, производительность?.
— простота использования?.
— отсутствие каких либо нужных библиотек?.
— ошибки дизайна, нехватка средств языка?.
— отсутствие хороших средств разработки?.
последнее время складывается ощущение, что у php просто плохая репутация и все его боятся
Здравствуйте, neFormal, Вы писали:
F>Собственно, сабж..
F>Какие есть объективные причины?. кроме туевой хучи кода сайтов, написанных новичками.. F>Давайте сравним, например, с Python-ом, который хвалят почем зря.. F>в чем php проигрывает?. F>- скорость работы, производительность?. F>- простота использования?. F>- отсутствие каких либо нужных библиотек?. F>- ошибки дизайна, нехватка средств языка?. F>- отсутствие хороших средств разработки?.
Внутренняя логика и последовательность дизайна языка.
Здравствуйте, neFormal, Вы писали:
Г>>Внутренняя логика и последовательность дизайна языка.
F>ничего не сказало.. F>раскройте тему
Эхма. "История создания и использования PHP является следствием того, что этот язык практически лишен внутренней логики и последовательного подхода к созданию ментальной модели программиста; преимущественный стиль кодирования на этом языке отличается специфической многословностью (даже в рамках достаточно профессиональных проектов); кроме того, в API стандартной библиотеки внутренняя логика и последовательный подход отсутствуют начисто".
Здравствуйте, Roman Odaisky, Вы писали:
F>>Собственно, сабж.. F>>Какие есть объективные причины? RO>Причина: PHP — это Personal Home Page. RO>Следствия: большое количество спагетти-кода,
RO>и недостаток грамотного дизайна в самом языке.
вот, блин.. все так говорят.. иногда непонятно, кто это придумал первый, и почему за ним повторяют..
поскольку я в php не углублялся, то можно примеров?.
Здравствуйте, neFormal, Вы писали:
F>Здравствуйте, Roman Odaisky, Вы писали:
[cut] RO>>и недостаток грамотного дизайна в самом языке.
F>вот, блин.. все так говорят.. иногда непонятно, кто это придумал первый, и почему за ним повторяют.. F>поскольку я в php не углублялся, то можно примеров?.
Здравствуйте, neFormal, Вы писали:
RO>>и недостаток грамотного дизайна в самом языке.
F>вот, блин.. все так говорят.. иногда непонятно, кто это придумал первый, и почему за ним повторяют.. F>поскольку я в php не углублялся, то можно примеров?.
Анахронизмы: <?php ... ?>, $переменные_с_долларами, бестолковые правила видимости переменных, ориентированность на веб без фреймворков. И т. д.
Нарушение собственных правил: «$f = return_some_function(); $f()» — можно, «return_some_function()()» — нельзя. $_GET и компания — superglobals, но свои создавать нельзя. И т. д.
Меня больше всего бесит остутствие "проверки во время компиляции" (т.е. я не могу написать код и сразу узнать что там явная ошибка, это всплывет только в рантайме, причем зачастую приведет не к явному показу ошибки а просто к некорректной работе) и отсутствие средств рефакторинга.
Здравствуйте, neFormal, Вы писали:
F>Здравствуйте, Гест, Вы писали:
Г>>кроме того, в API стандартной библиотеки внутренняя логика и последовательный подход отсутствуют начисто".
F>можно примеров?.
Да возьмите хотя бы строковые функции. Часть имен позаимствована из C (strcmp), часть — собрана по тому же принципу, но более человечны (str_replace), часть вроде перловые (trim), str_split делает не то, что делает split во всех языках (в PHP это делает explode), а превращает в массив символов, и т.п. В Руби, например, если я знаю несколько строковых функций — я могу просто угадать имена других (потому что все единообразно), в php — тупо "пересмотреть все функции с похожими именами", что, учитывая три десятка функций с именами типа strнрзбр, удовольствие крайне сомнительное. И это я еще молчу про порядок передачи аргументов (привычное "сказуемое(подлежащее, [дополнения])" нарушено как минимум в explode, где СНАЧАЛА надо передать разделитель, а потом уж — "что делить").
Здравствуйте, neFormal, Вы писали:
Г>>кроме того, в API стандартной библиотеки внутренняя логика и последовательный подход отсутствуют начисто F>можно примеров?
Имена содержат str где попало: parse_str, str_replace, strtoupper.
Вообще именование крайне непоследовательное: операция, обратная htmlentities, называется html_entity_decode.
Указание нечувствительности к регистру — то i, то case: strstr/stristr, strnatcmp/strnatcasecmp.
Псевдонимы: strchr = strstr, а strichr не существует. Да и вообще strstr — ненужное в динамическом языке наследие C.
Порядок аргументов: strstr(где, что), str_replace(что, чем, где).
Здравствуйте, MozgC, Вы писали:
MC>Меня больше всего бесит остутствие "проверки во время компиляции" (т.е. я не могу написать код и сразу узнать что там явная ошибка, это всплывет только в рантайме, причем зачастую приведет не к явному показу ошибки а просто к некорректной работе) и отсутствие средств рефакторинга.
какой проверки?. на что?.
имхо в питоне то же самое..
Здравствуйте, Mr.Cat, Вы писали:
MC>А можно и с питоном. Все-таки мы говорим о недостатках PHP, а не системы типов.
Я не знаю что вы относите к недостаткам PHP, я отношу то, о чем я написал выше.