LINUX.ORG.RU
ФорумTalks

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

 , , , ,


1

0

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

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

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

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

Да тут на каждый первый продукт так говорят. Что уж там говорить, если про сам "онтопик" Таненбаум в 91-м сказал "ненужно!"

Так что, полагаю, это традиция линуксоидов – быть ненужнистами.

Korchevatel ★★★★★
()

Когда-то он был действительно несколько страшным(на самом деле, там история сложнее) ЯП, потом изменился, но осадочек остался.

Проблема ресурсов — что-то из 3-4 версии. Позже ядро было переработано и обновлено.

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

Давным давно PHP был наспех сляпанным языком, по сути продвинутым движком для шаблонов. Это был самый простой способ написать динамический сайт, поэтому все нубы использовали его. Тут ещё пошло самораскручивающееся колесо - спрос, хостеры его предлагают, поэтому даже если он тебе не нравится, проще писать на нём, чем искать хостинг с перлом, например.

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

Legioner ★★★★★
()

Жрет ресурсы как не в себя - а js/python/go на бекенде не жрут?

Nyet.

В одном из интервью кто-то и разработчиков ляпнул, что: «проще раз в день перезапускать демон php чем искать проблему почему он падает»

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

сам не программист и сабж тыкал только в составе готовых продуктов

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

но это уже другая история, тут и с другими языами понадобятся оптимизации

Не понадобится. Другие платформы просто эффективнее. Там где с пхп уже надо приседать, для них - еще далеко не нагрузка.

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

Давным давно PHP был

Пхп либы и сопутствующий говнокод с его ваятелями никуда не делись и тоже идут за ним инерции. Сейчас можно дропнуть lamp и писать пхп демоны? Но зачем? Потому что ничего не умеешь и уметь не хочешь? А зачем нужен такой работник? А где из кучи пхп макак ты найдешь нормально разраба, который шарит в пхп7 и как там писать демоны на пхп правильно? Проще закопать, потому что ничего нового там нет, язык всех догоняет, чтобы соответсовать и морально устарел. Так-то можно втирать, что вба хороший язык и сейчас сделаем сцайт на макросне excel за nginx.

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

Nyet

Да нет, вполне себе жрут, кроме го.

Другие платформы просто эффективнее

Вероятно, слишком эффективные, чтобы подвинуть РНР.

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

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

Попытка хорошая, но нет: перл существовал задолго до PHP, потому найти хостера под перл сначала было проще, чем хостера под PHP.

Для меня причина популярности PHP до сих пор является загадкой. Получилось так не в последнюю очередь потому, что 99% кодеров на PHP обладают никакущими аналитическими способностями — потому они, собственно, и кодеры на PHP, и потому спросить «а что же случилось на самом деле» не у кого. Примерно та же ситуация в React и Vue, для получения годной аналитики по которым (то есть, глубже «не нужно») мне понадобилось собственноручно покопаться во Vue.

Я бы мог предположить, что PHP — инструмент (не язык), который позволял выполнить задачу быстро и грязно, но в истории было валом аналогичных инструментов, а взлетел почему-то именно PHP. Но жестких подтверждений у меня нет.

Насколько я знаю, сейчас это уже вполне современный язык

Сейчас он просто из узкоспециализированного инструмента для сайтов стал языком программирования. Уровня 90-х годов, конечно же, ничего современного в нём нет. Даже юникодных строк нет в 2021.

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

Да нет, вполне себе жрут

По сравнению с пхп, которое жрёт (жрало) 36 байт на число, ничего они не жрут.

Вероятно, слишком эффективные, чтобы подвинуть РНР.

Достаточно, чтобы не писать ничего крупее среднемелких магазинчиков и хоумпаг на вротпресе.

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

а взлетел почему-то именно PHP.

Пользователям нравилось название Personal Home Page?

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

Жрет ресурсы как не в себя - а js/python/go на бекенде не жрут?

Nyet

Питон очень близок к PHP по модели выполнения. Ты можешь возразить по поводу асинхронных либ/фреймворков, но я возражу. что они есть под оба языка.

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

Та же история с питоном.

Отсюда вытекает то, что веб на пхп - это lamp со всем гемором, когда тебе надо всё это масштабировать

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

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

Даже юникодных строк нет в 2021.

Аналитика уровня ЛОР.

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

По сравнению с пхп, которое жрёт (жрало) 36 байт на число, ничего они не жрут.

Числа хранятся в инте.

Достаточно, чтобы не писать ничего крупее среднемелких магазинчиков и хоумпаг на вротпресе.

https://bitly.com/ — достаточно крупно? Там ещё и вордпресс.

fernandos ★★★
()

зависть же

еще нет решения более массового, эффективного и с таким низким порогом вхождения

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

Уровня 90-х годов, конечно же, ничего современного в нём нет

Даже jit нет.

Даже юникодных строк нет в 2021

А как я тогда работал с символами юникода? Юникода нет в ядре, «юникодовые строки» вполне себе есть.

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

https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/

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

https://whydoesitsuck.com/why-does-php-suck/
Operator Madness

Пф-ф-ф, автор не писал на JS — это абсолютный рекордсмен по бессмысленности и беспощадности операторов с базовыми типами. Просто посмотри на это:

https://miro.medium.com/max/875/1*7qagwvx8Kwe2qPgD6FeJ-w.png

И это ещё даже не сравнение. Правда, сейчас пошла мода вообще не использовать оператор сравнения в JS, потому что слишком уж он сломан манагерами — вместо него применяют оператор строгого сравнения «===».

А вот отсутствие поддержки юникода — это серьезная проблема, на мой взгляд.

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

Попытка хорошая, но нет: перл существовал задолго до PHP, потому найти хостера под перл сначала было проще, чем хостера под PHP.

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

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

А вот рнр это был сразу готовый комплект для вебдева. В отличие от asp не завязанный на винду, которую на сервере держать было дорого. Но при этом в отличие от perl, быстро под винду появились готовые сборочки с пхп, апачем и мускулем (и часто перлом за компанию, но уже не помогло).

Ах да, мускуль. В рнр mysql_query всегда под боком. И у нас база данных, пускай не оракль, но можно писать почти настоящие sql-запросы. Что там в perl на эту тему было на тот момент не в курсе, но не удивлюсь если надо было идти шариться на CPAN.

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

может все из-за того, что появление php отодвинуло perl из вебдева на второй план?

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

Питон очень близок к PHP по модели выполнения.

Разве там cgi скрипты?

GitLab сделали на рельсах, и по итогу оно жрет пипец как много ресурсов в любых режимах эксплуатации.

Про рельсы я вообще молчу. Хотел локальный гит.

И, тем не менее, доходы сервиса окупают дичайшие затраты на хостинг.

Доходы там, расходы - не обсуждаются. Сделали бы нормально, не было бы дичайших расходов на хостинг и прочих проблем, вот и всё.

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

А вот отсутствие поддержки юникода — это серьезная проблема, на мой взгляд.

Да, наряду с необходимым расширением СПЛ.

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

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

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

Пф-ф-ф, автор не писал на JS

Там он вообще-то написал, что даже в жс такой дичи нет, как в этом вашем похапе.

Правда, сейчас пошла мода вообще не использовать оператор сравнения в JS

Лучше бы пошла мода не сравнивать строки с объектами.

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

Уровня 90-х годов, конечно же, ничего современного в нём нет

Даже jit нет

Ну типа диалекты пыха даже компилироваться умеют.

Юникода нет в ядре, «юникодовые строки» вполне себе есть

Не «юникодовые строки», а «юникодовые костыли». И эти костыли нужно прокладывать под каждой либой, которая хочет поддерживать юникод. И получается только уровень ссаного UTF-8, который категорически не подходит для работы с семантикой. Это авторам ОС легко отмазываться, мол «нас семантика не колышет» — но на самом деле вообще-то колышет и пользователи харкают кровью от того, что олдскульные никсы в 2021 на всех уровнях плохо дружат даже с банальным игнорированием регистра, не говоря уже про диактрику и пографемную обработку, но все уже привыкли, мол «деды страдали — и мы будем страдать».

byko3y ★★★★
()

Вообще мне кажется, люди, которые не любят php и приводят в качестве аргументов что там что-то не так в синтаксисе или бардак в стандартной библиотеке, немного лукавят.

Главная причина не любить php — унылость задач над которыми предстоит работать. И унылость людей, собирающихся вокруг этих задач, в основном заказчиков, а иногда и потенциальных коллег.

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

Вся морда, обслуживающая клиентов, на вордпрессе.

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

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

исторических? что ты имел в виду?

PHP — старый и при этом давно популярный язык одной ниши. Если там что-то исправлять, у всех всё сразу сломается. Вон питон вроде бы совсем чуть-чуть подправили-сломали (я бы сильнее подправил), а сколько криков было.

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

Просто посмотри на это:
https://miro.medium.com/max/875/1*7qagwvx8Kwe2qPgD6FeJ-w.png

Всё вполне логично (кроме parseInt(«123foo»)), не знаю, что у тебя вызывает там шок.

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

Не «юникодовые строки», а «юникодовые костыли»

Костыли, поэтому это действительная проблема, только поддержка юникода есть.

fernandos ★★★
()

Да нет никакого специфического хейта. Стандарное «фу древнее говно». То ж самое сейчас выливается на Perl и C. тренды девелоперские со временем меняются и ожидаемо старые инструменты подхейчиваются, где-то больше где-то меньше. Вцелом как инструмент он уже морально-социально устарел, что не делает его плохим инструментом. А как язык программирование он себе вполне ничего.

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

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

«Вполне себе ничего» сидеть на перевернутой табуретке — сразу четыре человека помещаются. Как и в случае питона, никому не нужен язык — все пользуются только готовыми решениями под этот язык. Другой вопрос — почему вообще возникло столько желающих сесть на эту перевернутую табуретку, чтобы написать готовые решения на ней?

byko3y ★★★★
()
Ответ на: комментарий от byko3y
+'' 
//преобразование в число единственного операдна
'' => false => 0

[]+[] 
//работает также, как и сложение строк
[] => ""

-{}
//преобразование в число * -1
{} => "[Object object]" //(если нет функции valueOf, в противном случае её результат)
+"[Object object]" => NaN * -1 => NaN

Логично, говоришь?

Складывать пустые массивы и пытаться кастить пустые объекты в число - очень. Что хотят этим доказать - непонятно.

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

Складывать пустые массивы и пытаться кастить пустые объекты в число - очень. Что хотят этим доказать - непонятно

Я хочу доказать, что перегруженность операторов в JS еще хуже, чем в пыхе. PHP хотя бы несколько программистов писали, а JS писали сплошные манагеры и вахтеры. Это сейчас, когда за руль встал гугл, JS приобрел хоть какое-то человеческое лицо, а иначе он был бы до сих пор сплошной прогулкой по граблям.

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

Другой вопрос — почему вообще возникло столько желающих сесть на эту перевернутую табуретку, чтобы написать готовые решения на ней?

Ну а на чём ещё в самом начале нулевых писать движки для бложиков и первые попытки e-commerce? Что там ещё было? Perl для юниксоидов, asp сугубо на винде, java для ентерпрайза в пиджачках, который в веб поверит, но немного позже.

Не, особо продвинутые и на лиспе писали, но это уже что-то из ряда вон выходящее.

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

Ну а на чём ещё в самом начале нулевых писать движки для бложиков и первые попытки e-commerce?

Python, Perl, ASP, Java)

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

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

Очевидно, вещи, которые ты считаешь важными, не решают, а решают какие-то другие.

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

Я про конкретно выражение parseInt(«123foo»). Про бред в жс я осведомлён

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

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

Про бред в жс я осведомлён.

Редкостный тупах. Хер автор не знает про Floating Point Maths, чем отличается typeof от instanceof, юзает sort без колбека и еще что-то удивляется. Как начинается вой про "1"+2, так каждый раз ничего кроме бездарности и неосиляторства.

Хотя вот, parseInt / parseFloat - нормальный пример действительно косячных функций, которые лучше вообще не юзать.

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

java для ентерпрайза в пиджачках, который в веб поверит, но немного позже

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

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

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

Очевидно, вещи, которые ты считаешь важными, не решают, а решают какие-то другие

Да ради бога, пусть решают и не решают что угодно — почему именно PHP доминирует в вебе?

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

Попытка хорошая, но нет: перл существовал задолго до PHP, потому найти хостера под перл сначала было проще, чем хостера под PHP.

Я лично писал форум на перле для своей группы в универе и у меня были большие проблемы найти бесплатный хостинг для перла. Приходилось писать в поддержку хостерам, пока не нашёлся один админ-доброхот. При этом для пхп такой проблемы не было вообще.

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