LINUX.ORG.RU

А чего так все на php психуют?

 


0

2

Вот решил выучить его, нахожусь в процессе так сказать. Язык как язык, ничего особенного. Не понимаю. Что с ним не так?

★★★★★

Последнее исправление: Dron (всего исправлений: 1)
Ответ на: комментарий от AS

Поведение написанного на PHP приложения зависит от конфигурации установленного PHP. Чтобы приложение запустить, надо ещё угадать конфиг этого пых-пыха.

Всякие regsiter_globals или safe_mod уже не просто depricated, а физически выпилены. short_tags и т.п. лет 10 как не рекомендуются и по дефолту отключены. Что там ещё может быть такого? Уже сколько лет, как вся работа к конфигами php сводится только к мелкому тюнингу, типа подстроек лимитов на выделяемую память или время работы.

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

Оставим задачу вычисления факториала на css+html в качестве упражнения читателям. Да, оно ограничено, но и обычные языки программирования ограничены (например, размером RAM) и об их неполноте по Тьюрингу не говорят.

x3al ★★★★★
()
Последнее исправление: x3al (всего исправлений: 1)
Ответ на: комментарий от KRoN73

Сколько раз уже разбирали его

Так сколько? Потому что все разборы, что я видел, выглядят как глупые отмазки типа «это всё незначительно, и, вообще, мы все уже привыкли», а также полны отсылками к неким «профессианальным» программистам, которые способы писать код, держа в голову кучу багов собственно языка.

И, да, в 2014 году PHP всё ещё течет.

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

И ещё PHP настолько отличный язык, что Facebook уже второй раз запиливают собственную реализацию, потому что стоковая - чудовищный кал.

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

Потому что все разборы, что я видел, выглядят как глупые отмазки

Ну, мне лениво заводить по третьему разу.

И, да, в 2014 году PHP всё ещё течет.

Для классического использования это не актуально. В варианте с форками тоже. У меня демон месяцами работал без всяких утечек ещё пару лет назад :) В варианте однопоточном и персистентном — да, утечки в _хитрых_ случаях могут быть, GC в PHP сложные случаи кольцевых зависимостей не разруливает. Но это сложно назвать фатальным недостатком.

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

Для тех кто читает пофигу, им ближе даже) А мне так тем более)

kukara4 ★★
()

Когда в похапе приходит плюсовое быдло, оно начинает ловить неиллюзорный батхерт оттого, что когда они писали на быдлоплюсах, им сильно били по рукам, и, методом тыка они писали какой-никакой код, который работал. Точней компилятор за них писал. А тут они обнаруживают, что язык позволяет слишком много. Пару раз сделав rm -rf / они убеждаются, что из них прогеры как из бабки футболист, начинается тема «мартышка и очки», надо же кого-то обвинять в собственном бессилии.

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

Ага, хорошая книжка.

Dron ★★★★★
() автор топика

Кстати, Дуров вроде обещал выкатить написанный (для вконтакта) с нуля совместимый с PHP интерпретатор. Без блекджета и ООП, зато быстрый и (ещё более) стабильный. Может кто знает как там ситуация с ним.

tommy ★★★★★
()

Ну и добавлю от себя, что php далеко не плохой язык.

В новых версиях ожидается много вкусностей. Имеется composer, который позволяет разруливать зависимости. Есть стандарты от php-fig (на подобии pep-ов в пистоне). Есть еще интересная штука: http://stackphp.com Словом, есть много хороших инструментов и библиотек.

Но я считаю, что если и писать на похапе, то только для себя, ибо если идти работать в какую-нибудь контору, где клепают сайты на каком-нибудь битриксе, то удовольствия от этого будет мало.

Kilte ★★★★★
()

Люто проиграл с вялых оправданий похапешников в этом треде.

Deleted
()

потому, что хорошие программисты - аторы си, а остальные - унылое гавно

anonymous
()

Язык как язык, ничего особенного.

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

Плохого при этом хватает.

Например долбанутый базовый контейнер array, который еще и value type, это прямо морская свинка епт. Как hash работает отвратно - не поддерживает ничего кроме строк и чисел в качестве ключей. Как list - дико тормозит. В обоих режимах использования жрет память так как другим языкам из той же группы и не снилось, что усугубляется паршивеньким GC. Является до кучи value типом, хотя чаще всего нужен как reference. Функций для работы с array море, часть пашет странно, часть имеет нюансы вызванные hash/list двойственностью типа. Многие также тормозят по сравнению с аналогами в других ЯП.

В fractal уже писали - но обработка ошибок адовая. Ошибки и исключения работают отдельно, обрабатывать надо по-разному. Дебажить WSOD'ы - очень приятно и удобно. Другие яп используют исключения. Вывод ошибок тоже хреновый. Без стороннего аддона ( xdebug ) жить сложно, с ним - сильно легче, но до аналогов не дотягивает. Очень хочется чего-то вроде https://github.com/charliesome/better_errors или https://github.com/Kozea/wdb

Странная модель языка, дающая все недостатки динамической типизации и довольно мало плюсов. Нельзя ни переопределить функцию, ни добавить в класс или объект метод-другой, отсутствует метапрограммирование. ORM для пхп ( да и многие другие либы ) напоминают яву в худшем ее варианте. Код многословный и тормозной. Нет областей видимости, благодаря чему получаем улетные closures с ручным биндингом переменных - прямо как в самом динамически типизированном языке со сборщиком мусора - C++ Нет method references. Жуткий парсер, из-за которого array dereference внезапно становится фичей, а не чем-то ожидаемым и логичным.

Интерпретатор намного медленнее, чем мог бы быть. Например функции переопределять нельзя, но при этом каждый вызов функции выполняет ее поиск по имени, хотя можно же сделать это один раз и сохранить ссылку. Низкую динамичность языка можно было бы отличнейшим образом обыграть, сделав пых сильно быстрее аналогов, но разрабам, видимо, пофиг. Сам факт вот этого - http://news.php.net/php.internals/73888 говорит, что ранее оптимизацией никто нормально не занимался.

Еще есть stringly typed биндинги к mysql, дурацкое приведение типов, «удобная» работа с вебсокетами...

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

Уже давно на ЛОР была новость, поищи.

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

Кстати отличный вопрос при собеседовании программиста - попросить перечислить достоинства PHP. Если кандидат назвал больше одного-двух, то это уже не наш пациент.

скорее наоборот. Если назвал только недостатки, то это типичный задрот с ЛОРа.

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

Наглядное доказательство, что html+css достаточно для того, чтобы сделать программу без капли js.

Для технарей чуть ниже по треду я кидал линки на машину Тьюринга на чистом css+html. Из этого как бы следует, что html — язык программирования (хуже brainfuck, впрочем).

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

Для технарей чуть ниже по треду я кидал линки на машину Тьюринга на чистом css+html. Из этого как бы следует, что html — язык программирования (хуже brainfuck, впрочем).

ясно. Чем только люди не упарываются…

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

На сишке уеб же никто не кодерит. А на неподходящем для этого дела пыхе зачем-то пытаются.

anonymous
()

Вся проблема в том, что на PHP программисты часто используют нерациональные решения (ака говнокод).

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

На сишке уеб же никто не кодерит.

Наивный. Ты просто никогда не встречал C+CGI. Но это ещё цветочки. Когда-то давно знакомые, работающие в одном хостинг-провайдере, рассказывали про один сайт, написанный на паскале под дос. На сервере всё это крутилось в dosemu и было какой-то магией подключено к апачу через тот же CGI.

hateyoufeel ★★★★★
()

А кто психует? Огласите пожалуйста весь список:) Может кучка фанатиков и психует. А прагматики используют PHP, потому что он на сегодняшний день - самое оптимальное решение в сфере скриптовых ЯП для Web. Да, как язык, PHP был местами коряв. Но с версии 5.3 он стал вполне юзабельным. Не так изящен как ruby или Python, зато на нём уже написали тонну различных СМС, фреймворков и библиотек. И в этом его сила.

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

GC в PHP сложные случаи кольцевых зависимостей не разруливает

А ты не приведешь пример сложного случая кольцевых зависимостей, которые пхп не разруливает?

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

Вот, даже не сложный, просто с кольцевой зависимостью:

<?php

class A
{
    function __construct()
    {
        $this->ptr = new B($this);
        $this->data = range(0,1000);
    }
}

class B
{
    function __construct($object)
    {
        $this->ptr = $object;
        $this->data = range(0,1000);
    }
}

while(true)
{
    $foo = new A();
    unset($foo);
    echo memory_get_usage(), PHP_EOL;
}

Если же выкинуть $this->ptr = $object; в классе B, то всё будет ок.

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

Вот, даже не сложный, просто с кольцевой зависимостью

Так разруливание таких зависимостей появилось в 5.3. Правда оно запускается не в момент выхода из скопа а после N созданных объектов, что неприятно, когда объекты большие. Но тогда спасает gc_collect_cycles.

По сути в сборке мусора пхп уже довольно давно не уступает тому-же питону.

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