LINUX.ORG.RU
ФорумTalks

Откуда растут ноги ненависти к php?

 , , , ,


1

0

В очередной раз натыкаюсь на лучи ненависти в сторону php, сам не программист и сабж тыкал только в составе готовых продуктов (wordpress, drupal, zabbix, freepbx) ну и самое «страшное» - это что для zabbix надо в конфиге php прописать правильный часовой пояс, а в остальном работает в фоне и норм (ну для высоконагруженных сайтов рекомендуют ставить связку nginx+apache, но это уже другая история, тут и с другими языами понадобятся оптимизации).

Из страшилок, которые про него слышал:

  • В одном из интервью кто-то и разработчиков ляпнул, что: «проще раз в день перезапускать демон php чем искать проблему почему он падает»
  • «Неполноценное ООП» - так про каждый второй язык пишут (оно вообще где-нибудь полноценное кроме smalltalk?), но подробностей не приводят
  • Жрет ресурсы как не в себя - а js/python/go на бекенде не жрут?
★★★★★

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

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

Это про сейчас.

В конце девяностых начале нулевых основным порогом вхождения в питон было то, что про него никто не знал. И почти всё что будет нужно под веб, придётся писать самостоятельно.

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

Поэтому миллионы вебмакак строчили нечитаемые простыни

Если они их могут читать, а ты не можешь, может быть это ты макака?

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

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

всё хорошо переносится

На масштабах больше хелловорлда с переносимостью похуже, один php.ini и различия в наборах установленных на хостинг расширений чего стоят. Но на таких масштабах уже поздно.

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

Вообще-то есть bigint

Массовой поддержке BigInt в браузерах ОДИН ГОД. То есть, считай что её и не было почти.

Потому все number в реализации js - double. isInteger - это просто просто костыль, который проверяет, что у double нет дробной и что это - не спецзначение

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

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

А автор - нормально

Ты с чёткими пацанами во дворе никогда не общался? (в литературе - у Пелевина ткачи в «Чапаев и пустота»).
Вроде разговаривают, даже смысл какой-то есть. Но ты в их дискурс никогда не въедешь, а от разговора накатывает такая экзистенциальная сартровская тошнота, что до раковины добежать не успеваешь... И ведь это большинство, жир и соль земли.

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

в стандарте.

Ненавижу JS. Особенно в браузере.

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

Нет, он был простым удобным процедурным ЯП с динамической типизацией. Но он выполнялся ВНУТРИ HTML страниц внутри тега <? ?>.
Поэтому миллионы вебмакак строчили нечитаемые простыни на десятки тыщ строк смеси HTML с php процедурами и непонятным для не-автора результатом выполнения/отображения

Вот. Много лет назад я видел этот же ответ, но почему-то не придал ему значения и не запомнил толком. А он ведь много поясняет.

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

Но я про сам язык.

На VBA пишут не потому что язык такой хороший, а потому что это самый простой способ автоматизировать ексель с вордом. На JS пишут не потому что язык такой хороший (по крайней мере до пришествия nodejs и подобного), а потому что это был самый простой способ исполнить какой-нибудь код в браузере.

Так и php как язык весьма убог, но это был в совокупности самый простой способ состряпать динамическую страничку во времена становления сегодняшнего веба.

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

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

Решение парадокса таково, что на самом деле автор тоже не мог разобраться в этой лапше. Он просто даже не пытался — он пишет, не понимая работы имеющегося кода: допишет тут, допишет здесь — вроде заработало, да и черт с ним, если прод завалится — не беда, подопрём костылём. Herak-herak driven development. В итоге код обрастает дублирующими друг друга костылями, и происходит это до достижения критической массы костылей, после достижения которой любое изменение кода приводит софтину в неработоспособное состояние, а восстановление работоспособности её будет более трудозатратно, чем переписывание с нуля.

byko3y ★★★★
()

Я добавлю про популярность у хостеров.
В то время всё выполнялось с помощью apache, который динамику мог запускать или внутри собственного процесса (без fork), или выполняя cgi в форке. При этом apache крутился в chroot песочнице, а cgi был единственным способом выполнить скрипт с личными правами пользователя (выполнялся простой враппер с правами set uid, который после смены юзера выполнял в себе cgi скрипт).
fast-cgi был экзотикой, которую сисадмины не всегда осиливали.
Внутри собственного процесса апач запускал интерпретаторы, собранные как «Модули».
Основным модулем были shtml (простой апачевский шаблонизатор) и perl, потом добавился php3.
Перл требовал много телодвижений, имел потенциально дыры, которые можно было эксплуатировать хитрыми скриптами, слишком много возможностей «положить» сервер, поэтому его оставляли ТОЛЬКО для cgi (которые легче было засунуть в песочницу chroot и лимитов).
А в php3 из коробки была gd для манипулирования картинками и т.п.

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

порог входа в питон ниже, чем в пхп.

хелло ворлд одинаково низко, всякое ООП да декораторы - одинаково высоко.

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

Я говорил, что порог входа в питон ниже, чем в пхп

Не вижу никакого низкого порога. Под виндой питон до сих пор не научился в кодировки консоли. Под онтопом, может быть, питон и есть в дистре из коробки, но вебсайт за пять минут ты на нём даже в таком виде не запустишь. Зато мог запустить рельсовый вебсайт за пять минут на маке.

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

Под виндой питон до сих пор не научился в кодировки консоли

под виндой

не является целевой платформой, поддерживается по остаточному принципу.

Зато мог запустить рельсовый вебсайт за пять минут на маке.

На бидоне точно так же это делается.

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

На бидоне точно так же это делается

Сейчас, с появлением pip и виртуальных окружений, действительно, ставится и запускается всё намного проще. Но совсем недавно деплой у питона был кромешным адом.

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

...а причина популярности Delphi кроется там же, где причина популярности C++ Builder. Или нет?
Я к тому, что хрень сказал.

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

Под виндой питон до сих пор не научился в кодировки консоли.

Есть же переопределение даже для 2.7. Да, только для винды, но всё же...

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

Сейчас, с появлением pip и виртуальных окружений

дружище, ты последние 10(13) лет в криокамере провел?

Не говоря уж о том, что пока пип развивается, гем продолжает надрачивать на P=NP и пытается решить задачу с циклическими зависимостями.

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

Добавлю, что всё это УЖЕ было написано на perl.

Ну так прочитать никто не мог :)

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

Преподавали != получил популярность в индустрии.

Pascal тоже преподавали, но популярность получил Delphi.

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

Причина популярности PHP кроется там же, где и причина популярности Delphi

Преподают в школе? Можно крякнуть и не платить разработчику?

byko3y ★★★★
()

Меня в целом бесит только синтаксис, потому что это долбанный препроцессор для html превратившийся в язык

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

Под виндой питон до сих пор не научился в кодировки консоли.

Есть же переопределение даже для 2.7. Да, только для винды, но всё же...

Там тяжелоустранимая кривизна, вызванная тем, что на виндовую версию всем пофиг. У них официальны установщик третьих версих хрен знает сколько вообще не умел устанавливать отладочные символы — оно когда-то отвалилось и его никто не чинил. И еще где-то в районе 3.6-3.7 сломали заголовки, из-за чего отладочная конфигурация вообще перестала собираться. Просто бинго.

А всё, потому, что питон — это все-таки unix-only костыль, он в таком духе был создан, он в таком духе и развивался, то есть, в духе однопоточной неинтерактивной консольной утилиты аля bash.

byko3y ★★★★
()
Последнее исправление: byko3y (всего исправлений: 1)

Он просто нелепый. Это же изначально шаблонизатор HTML с кучей функций. И на всё это попытались навернуть язык общего назначения.

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

дружище, ты последние 10(13) лет в криокамере провел?

Я понимаю, что здесь для некоторых 10-13 лет — это вообще весь субъективный срок существования IT индустрии. Но в контексте данного треда мы обсуждаем горизонт примерно в 30 лет, и в рамках онных питон таки провел первые 20 лет своего существования в режиме «на моей машине всё работает, проблема на вашей стороне». Вот я выше ругал JS, ну тем временем в JS минорные релизы не ломают совместимость, а в питоне такое изредка происходит.

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

Pascal тоже преподавали, но популярность получил Delphi

И какие были альтернативы? Турбо паскаль был настолько хорош, что просто уделал все альтернативы. Когда у тебя на каких-то дровах с 2 МГц процессором и 64 кБ оперативы проект компилируется настолько быстро, насколько позволяет дискета/жесткий диск, и при этом в машинные коды — это было что-то уникальное на то время.

Именно паскаль еще был популярен где-то в девяностых, но интересная политика Borland и отсутствие альтернативных реализаций (что в том числе есть политика Borland) привела к тому, что FPC появился только в конце девяностых, а Lazarus — в начале нулевых, когда Delphi уже подыхал и Borland выпустил .NET-only версию, пытаясь сменить нишу.

byko3y ★★★★
()

Мне кажется, в 2021 PHP вот прям ненавидеть — моветон, такой же, как, не знаю там, ненавидеть модемы на 33.4 в пользу модемов на 56.1.

Оно уже старенькое, нишевое, не пытается завоевать мир массовостью, обладает многими фичами современных языков программирования, пионеры перешли писать микросервисы на го, программисты PHP сегодня — вполне зрелые ветераны.

А во времена его славы у PHP была, пожалуй, наилучшая в своем роде документация, к которой люди даже оставляли полезные заметки. Как оно не скатилось в троллинг и спам, не представляю вообще.

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

Охереть, наверное, как сложно прочитать мануал по такому тупому языку как js, чтобы так не обсираться.

А мануалы по пыху читать не надо чтоли чтоб не обсираться?

Psilocybe ★★★★
()

Откуда растут ноги ненависти к php?

Огромное количество дыр в готовых продуктах. Даже сейчас проскакивают отчёты о найденных уязвимостях в очередном форумом движке или CMS. А чуть дальше в прошлое их количество было просто огромным.

С точки зрения программиста огромное количество глобальных переменных и отсутствие возможности обслуживать клиентов в одном процессе. Лет 10 назад это было гемором, а в современном вебе это никуда не годится.

js/python/go

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

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

Для меня причина популярности PHP до сих пор является загадкой.

В чем тут загадка? А на чем ещё можно было запилить сайт и разместить его на копеечном хостинге в 2000 году? Кроме php и perl никого не было. Но последний был тем ещё уродцем и прогнозируемо потерял разрабов.

foror ★★★★★
()

Ноги растут из жопы школьников-илитариев.

no-such-file ★★★★★
()

PHP не идеален, но в целом JS хуже PHP

Psilocybe ★★★★
()

Это такой тонкий презерватив над C, что не смешно.

Студенческая поделка уровня JS, надо бы поржать, а кто-то сдуру проникся и в продакшн сунул.

Или по-другому: любовь да и даже уважение к языку надо заслужить. PHP даже не пробовал.

t184256 ★★★★★
()

Ненависть или нет сильно зависит от опыта, от опыта работы за деньги и тем более работы за хорошие деньги.

Есть те, кто считает ниже своего достоинства писать что на php, что на js, что на ещё с десятке языков, которые на заре своего существования были чем-то игрушечным. Как много среди них нормально зарабатывает? Как много из них писало крупные проекты? Лично мне в таких случаях важно то, какой у человека опыт. Если опыта мало, то его кудахтанье мимо. Если много - интересно послушать. Особенно интересно послушать тех, кто сталкивался с набором кадров и знает что такое кадровый голод как не поднимай планку зп. Ну то есть поднять до небес можно, но потянет ли бюджет? Вот те, кто имеет опыт, знают что каждое решение имеет свои плюс и минусы. Конечно можно пилить крупный веб проект хоть на C++, хоть на Ocaml, хоть на Smalltalk, но где взять кадры и каков будет бюджет?

В целом же сейчас php вполне на уровне. Писать средние и крупные проекты при срейдней же стоимости разработки можно вполне. А это самое главное.

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