LINUX.ORG.RU
ФорумTalks

[rant] Самая надоевшая причина, по которой PHP сосет


0

0

Это не дебилизмы в языке.
Это не идиотские решения в стандартной библиотеке.
Это — отсутствие нормального дебаггера и нормального фронтэнда к нему.

XDebug теряет соединение к фронтэнду чаще, чем работает.
Когда работает, сегфолтится через каждые два раза.

Нетбинс при попытке слежения за переменной сваливается в висяк и шуршит домашней директорией непонятно зачем.

Эклипс чаще всего тормозит и падает сам по себе.

Если проект чуточку сложнее домашней страницы В. Пупкина и его сраной кошки, а особенно, если это громадина на полтора миллиона строк кода, то разбираться в его структуре и дебажить его — это унизительная жопа, простите мне мой французский.

★★★★★
Ответ на: комментарий от greatpower

Это не монолит. Оно модульное, но, с-ка, огромное.

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

Если проект чуточку сложнее домашней страницы В. Пупкина и его сраной кошки, а особенно, если это громадина на полтора миллиона строк кода, то разбираться в его структуре и дебажить его — это унизительная жопа, простите мне мой французский.

В особенности если его прородители сумели родить эти полтора миллиона строк таким образом, что работают они исключительно все вместе как единое целое без малейших шансов разбить монстра на модули... Да, PHP тут действительно корень зла, факт.

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

> В особенности если его прородители сумели родить эти полтора миллиона строк таким образом, что работают они исключительно все вместе как единое целое без малейших шансов разбить монстра на модули... Да, PHP тут действительно корень зла, факт.

Можно, конечно, и разбить, но это сложнее, чем дебажить на бумажке.

У продукта просто нет lite версии, он поставляется с этим вагоном модулей. Ну и тестировать, ессно, надо все вместе (иногда взаимодействие рожает занимательные баги).

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

>Да, PHP тут действительно корень зла, факт.

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

abraziv_whiskey ★★★★★
()

Большой проект на пхп это 100-200 тыс. строк. Что у тебя там за код и почему ты еще не уволился, я не понимаю.

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

> Когда слышно чихание соседа на три этажа выше, то полтора миллиона строк на пхпы не кажутся особенно огорчительными.

Что-то типа «причиной kernel panic в драйвере сетевой платы оказался дедлок в драйвере RAID-адаптера» (ошибка выдуманная, есличо)?

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

> Большой проект на пхп это 100-200 тыс. строк. Что у тебя там за код и почему ты еще не уволился, я не понимаю.

Я там только недавно заработал, зачем так сразу?

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

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

abraziv_whiskey ★★★★★
()

Пыхеры настолько суровы, что обходятся отладочной печатью.

var_dump
print_r
echo

вам в помошь.

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

Знаю.

Использовал.

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

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

мм... как насчёт zend studio и zend debugger?
почти уверен, что упомянутый полуторамиллионострочный проект начинал воздвигаться ещё во времена четвёрки, следовательно, неймспейсов там не валялось

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

>> может дебаг не нужен?

А что предлагаешь? Кофейную гущу?

Раз оно модульное, в нем должны быть юнит-тесты. Локализировать ошибку. Ну а дальше суровым принтом, да.

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

почти уверен, что упомянутый полуторамиллионострочный проект начинал воздвигаться ещё во времена четвёрки, следовательно, неймспейсов там не валялось

Неймспейсов не валяется в php-ис-каропки в 2010м году в RHEL5 & K, Debian etc. Так что можно сказать, что нету в PHP пространств имен и по сей день.

bibi
()

Если проект чуточку сложнее домашней страницы В. Пупкина и его сраной кошки, а особенно, если это громадина на полтора миллиона строк кода

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

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

Да, PHP тут действительно корень зла, факт.

виноват не PHP, а тот, кто его выбрал.

name_no ★★
()

Хмык, ну ни фига себе. Я думал что к 2010 году к этому поделию хоть дебагер нормальный прикрутят... оказывается до сих пор проблемы.

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

> почти уверен, что упомянутый полуторамиллионострочный проект начинал воздвигаться ещё во времена четвёрки, следовательно, неймспейсов там не валялось

Не совсем.

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

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

Полтора миллиона строк кода

> Вообще, спроектирован он грамотно.

Где взялось столько кода при нормальном проектировании??? Не верю!!!

toil_had
()

А вообще, конечно, приними соболезнования. Делать работу, которую ненавидишь - пытка.

r_asian ★☆☆
()
Ответ на: Полтора миллиона строк кода от toil_had

> Где взялось столько кода при нормальном проектировании??? Не верю!!!

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

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

> А вообще, конечно, приними соболезнования. Делать работу, которую ненавидишь - пытка.

Хочется прокачать тот же питон и руби (необязательно для Rails, отнюдь), но пока скиллы качаются, что-то кушать надо.

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

Хм ... ну если только для души. :-)

Ну почему для души? Вот щас чуть-чуть прокачает и кээээк размахнется и одним махом перепишет все это Г на рельсы. Может даже медальку дадут. Потом. Посмертно. Профит? Профит.

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

> Вот щас чуть-чуть прокачает и кээээк размахнется и одним махом перепишет все это Г на рельсы.

Простите, во-первых, это не Г.
Во-вторых, если за#бываться, то я предпочту в буквальном смысле, а не с рельсами.

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

перепиши всю программу на С
это будет Ъ

Harald ★★★★★
()

>шото там про неймспейсы

PHP это темплейтный язык если чё.

mantar
()

php - отличный язык для веба, умеет принимать на себя практически любые данные (2 вида форм) и выдавать что угодно в качестве результата (особенно хорошо заточен на HTML, темплейты тьюринг-полные), более продвинутой системы, которая сразу реализует View и Controller я не видел.

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

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

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

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

Я тебе уже дал совет. Бесплатный (!!!). А ты дальше продолжаешь искать кактус.

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

> Почему не пишем сразу на нормальном языке все?

Обычно «нормальный язык», позиционируемый как универсальный, не имеет достаточно задроченных плюшкек, которые имеет специализированный язык. А веб - ну никому оно завтра будет не нужно, а так переписал морду на что-то еще и поехал дальше.

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

> Ты хорошо владеешь копипастой

Это был ориджинал контент

но мне нужен непадающий дебаггер с непадающим фронтендом к нему

Это как приспособить пылесос в качестве реактивного двигателя (вспоминаем эксперимены с воздушной подушкой до кучи), а потом искать, почему же оно не взлетает

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

>> может дебаг не нужен?

А что предлагаешь? Кофейную гущу?

Я как-то даже в С++ почти дебагером не пользуюсь

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

> более продвинутой системы, которая сразу реализует View и Controller я не видел.

А мне, какписавшему в сумме на нем где-то час, показалось наоборот

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

Я как-то даже в С++ почти дебагером не пользуюсь

видимо не участвовал ты в проектах, где овер99999 строк кода, которые образовывают добрых пять десятков подпроектов... особенно если оно тянется с бог знает какого времени и на тебя, пока еще толком не вникшего в происходящее, выписывают багу - «вот там-то оно работает неправильно, надобно исправить»

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