Чем конкретно чревата разработка сложных проектов на PHP?
От: 0K Ниоткуда  
Дата: 05.12.11 23:27
Оценка:
Хотелось бы услышать конкретные причины.
Re: Чем конкретно чревата разработка сложных проектов на PHP
От: __lambda__ Россия http://zen-hacker.blogspot.com/
Дата: 06.12.11 02:06
Оценка: 3 (3)
Здравствуйте, 0K, Вы писали:

0K>Хотелось бы услышать конкретные причины.


Не совсем про PHP, но пример я думаю показательный:
Как пропущенный var сорвал наш запуск
Computer science is no more about computers than astronomy is about telescopes (c) Edsger Dijkstra
Re: Самим PHP
От: Sheridan Россия  
Дата: 06.12.11 04:18
Оценка:
Язык сам по себе недодуман, не вычищен. От релиза к релизу вполне возможно разное поведение. Школоло, вобщем.
Matrix has you...
Re[2]: Самим PHP
От: 0K Ниоткуда  
Дата: 06.12.11 04:28
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Язык сам по себе недодуман, не вычищен. От релиза к релизу вполне возможно разное поведение. Школоло, вобщем.


В общем мы и так все знаем. А нужно конкретно.
Re: Чем конкретно чревата разработка сложных проектов на PHP
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 06.12.11 07:26
Оценка: +1
Здравствуйте, 0K, Вы писали:

0K>Хотелось бы услышать конкретные причины.


Хороший обзор. Суммарно:

1. Бессистемное именование функций, нелогичные аргументы и возвращаемые значения — приводят к постоянной путанице, ошибках в коде, сложность запоминания требует постоянного копания в справочниках. В сочетании с тем, что язык динамический, это значит, что контроль кода до запуска сильно усложнён.
2. Чрезмерно большое количество глобально видимых функций — неожиданные конфликты имён, плохая диагностика проблем от этого. Опять-таки, 16 функций вместо 1-2 — никакая память такого не выдержит, значит, листание справочников и медленный поиск решения, ослабление возможности code review глазами.
3. Отсутствие раздельных пространств имен (кажется, исправлено в самых последних версиях? но это значит, что ещё несколько лет будут тянуться хвосты и попадаться грабли).
4. Проблемы обработки пользовательских данных — по принципу "или всё сами делаем, или мучайся сам со всеми деталями".
5. Офигенная куча граблей-недоработок собственно в языке, дико непродуманная реализация, тёмные углы со странностями.

И любая разработка на нём будет означать тотальное топтание по этим граблям.
The God is real, unless declared integer.
Re: Чем конкретно чревата разработка сложных проектов на PHP
От: dimgel Россия https://github.com/dimgel
Дата: 06.12.11 07:30
Оценка: 1 (1) +4 -3
Здравствуйте, 0K, Вы писали:

0K>Хотелось бы услышать конкретные причины.


Тем, что динамика.
Re[2]: Чем конкретно чревата разработка сложных проектов на
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 06.12.11 07:34
Оценка:
Здравствуйте, dimgel, Вы писали:

D>Здравствуйте, 0K, Вы писали:


0K>>Хотелось бы услышать конкретные причины.


D>Тем, что динамика.


Для типичной области использования PHP это не проблема.
The God is real, unless declared integer.
Re[3]: Чем конкретно чревата разработка сложных проектов на
От: dimgel Россия https://github.com/dimgel
Дата: 06.12.11 07:43
Оценка:
Здравствуйте, netch80, Вы писали:

D>>Тем, что динамика.

N>Для типичной области использования PHP это не проблема.

Речь идёт о сложных проектах, не?
Re[4]: Чем конкретно чревата разработка сложных проектов на
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 06.12.11 07:50
Оценка: :)
Здравствуйте, dimgel, Вы писали:

D>Здравствуйте, netch80, Вы писали:


D>>>Тем, что динамика.

N>>Для типичной области использования PHP это не проблема.

D>Речь идёт о сложных проектах, не?


Да, о сложных, и это не противоречит.
The God is real, unless declared integer.
Re[2]: Чем конкретно чревата разработка сложных проектов на
От: Wolverrum Ниоткуда  
Дата: 06.12.11 08:34
Оценка:
Здравствуйте, netch80, Вы писали:

N>Здравствуйте, 0K, Вы писали:


0K>>Хотелось бы услышать конкретные причины.


С другой стороны, из собств. опыта:

N>1. Бессистемное именование функций, нелогичные аргументы и возвращаемые значения — приводят к постоянной путанице, ошибках в коде, сложность запоминания требует постоянного копания в справочниках. В сочетании с тем, что язык динамический, это значит, что контроль кода до запуска сильно усложнён.

N>2. Чрезмерно большое количество глобально видимых функций — неожиданные конфликты имён, плохая диагностика проблем от этого. Опять-таки, 16 функций вместо 1-2 — никакая память такого не выдержит, значит, листание справочников и медленный поиск решения, ослабление возможности code review глазами.

Как правило, на уровне ф-ций мало-мальски сложные проекты не пишутся. Организуется либо доменно-специфичный API в виде набора классов, либо идет кодирование поверх к-л библиотеки (yii, например) — что сводит пункты 1 и 2 (да и 4 тоже) на нет.


N>3. Отсутствие раздельных пространств имен (кажется, исправлено в самых последних версиях? но это значит, что ещё несколько лет будут тянуться хвосты и попадаться грабли).


Это также спорное утверждение. Хоть лично я склоняюсь к тому, что лучше с пространствами, нежели без них.


N>4. Проблемы обработки пользовательских данных — по принципу "или всё сами делаем, или мучайся сам со всеми деталями".

N>5. Офигенная куча граблей-недоработок собственно в языке, дико непродуманная реализация, тёмные углы со странностями.
Как-то неконкретно. Я то же самое могу сказать про любой другой ЯП


N>И любая разработка на нём будет означать тотальное топтание по этим граблям.
Re[2]: Чем конкретно чревата разработка сложных проектов на
От: Wolverrum Ниоткуда  
Дата: 06.12.11 08:35
Оценка: +1 -5
Здравствуйте, dimgel, Вы писали:


D>Тем, что динамика.

Миф. Распространенный.
Re[3]: Чем конкретно чревата разработка сложных проектов на
От: 0K Ниоткуда  
Дата: 06.12.11 12:09
Оценка: +1
Здравствуйте, Wolverrum, Вы писали:

D>>Тем, что динамика.

W>Миф. Распространенный.

А в чем практические преимущества динамической типизации? Недостатки очевидны: сложность поиска ошибок, невозможность рефакторинга.
Re: Чем конкретно чревата разработка сложных проектов на PHP
От: rttrtt  
Дата: 06.12.11 18:52
Оценка:
на определенном этапе, когда уровень сложности станет высок, тв перестанешь контролировать, что происходит в критических ситуациях
Re: Чем конкретно чревата разработка сложных проектов на PHP
От: Mamut Швеция http://dmitriid.com
Дата: 06.12.11 20:09
Оценка:
0K>Хотелось бы услышать конкретные причины.

Порядок в беспорядке, что вспомнил:

— Очень невнятными сообщениями об ошибках самого РНР

"Parse error: parse error, unexpected T_PAAMAYIM_NEKUDOTAYIM"


Потому что все на свете знают, что Paamayim Nekudotayim на иврите означает «два двоеточия»

— Невнятное развитие самого языка. Фичи добавляются в язык по желанию левой задней пятки неизвестно, кого. В последнее время это идет под эгидой «ну, язые же должен развиваться». При этом часто фичи добавляются со странным синтаксисом (типа пространств имен) только потому, что нятный синтаксис может сломать парсер или лексер.

— fire-and-forget. Это, безусловно, хорошо в большинстве случаев и, возможно, для REST'а. Но нет никакой возможности нормально запустить в сторонке долгоиграющий процесс на РНР, чтобы он что-то там делал. Например: загрузили картинку, положили ее в очередь, вернулись к клиенту. Очередь обрабатывается запущенным в сторонке скриптом. Хухъ.

— досаточно медленный сам по себе, но это надо смотреть конкретные задачи.


dmitriid.comGitHubLinkedIn
Re[2]: Чем конкретно чревата разработка сложных проектов на
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 07.12.11 09:13
Оценка:
Здравствуйте, netch80, Вы писали:

0K>>Хотелось бы услышать конкретные причины.


N>Хороший обзор. Суммарно:


Чёрт побьери, я тут собирался ссылку выложить, но что-то не то нажалось.
Вот что там должно было быть: http://nuclight.livejournal.com/107170.html

Вчера ещё открывалось, сегодня ЖЖ совсем "того", но это не повезло наложением на российские выборы. Когда закончатся — рекомендую таки прочитать. Там сводка, ссылки и обсуждения.
The God is real, unless declared integer.
Re[3]: Чем конкретно чревата разработка сложных проектов на
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 07.12.11 09:16
Оценка:
Здравствуйте, Wolverrum, Вы писали:

[...]
N>>5. Офигенная куча граблей-недоработок собственно в языке, дико непродуманная реализация, тёмные углы со странностями.
W>Как-то неконкретно. Я то же самое могу сказать про любой другой ЯП

См. ссылку в follow-up (когда закончится DDoS на ЖЖ), там достаточно конкретных примеров этих недоработок.
The God is real, unless declared integer.
Re[4]: Чем конкретно чревата разработка сложных проектов на
От: Miroff Россия  
Дата: 07.12.11 09:27
Оценка: -2 :))
Здравствуйте, 0K, Вы писали:

0K>А в чем практические преимущества динамической типизации? Недостатки очевидны: сложность поиска ошибок, невозможность рефакторинга.


Скорость разработки на порядок быстрее.
Re[4]: Чем конкретно чревата разработка сложных проектов на
От: gegMOPO4  
Дата: 07.12.11 10:13
Оценка:
06.12.11 14:09, 0K написав(ла):
> А в чем практические преимущества динамической типизации? Недостатки очевидны: сложность поиска ошибок, невозможность рефакторинга.

Более простой, естественный код, меньше синтаксического шума. Быстрее компиляция. Ну и всё, что из этого следует.
Posted via RSDN NNTP Server 2.1 beta
Re[3]: Чем конкретно чревата разработка сложных проектов на
От: gegMOPO4  
Дата: 07.12.11 11:57
Оценка:
07.12.11 11:13, netch80 написав(ла):
> Чёрт побьери, я тут собирался ссылку выложить, но что-то не то нажалось.
> Вот что там должно было быть: http://nuclight.livejournal.com/107170.html

Спасибо, интересно. Со многим согласен. Некоторые недостатки уже частично устранены (но попробуйте-ка пораспихивать 4 тыс. стандартных функций по неймспейсам), а большинство неисправимы в принципе. И это с точки зрения перловика, по сравнению с Питоном недостатков ещё больше.
Posted via RSDN NNTP Server 2.1 beta
Re[5]: Чем конкретно чревата разработка сложных проектов на
От: hardcase Пират http://nemerle.org
Дата: 07.12.11 18:36
Оценка:
Здравствуйте, Miroff, Вы писали:

M>Здравствуйте, 0K, Вы писали:


0K>>А в чем практические преимущества динамической типизации? Недостатки очевидны: сложность поиска ошибок, невозможность рефакторинга.


M>Скорость разработки на порядок быстрее.


Дану?
/* иЗвиНите зА неРовнЫй поЧерК */
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.