Чому PHP так ненавидять? [зачинено]


17

Останнім часом я стикався з кількома жартами та коміксами про те, як виглядає жахливо PHP.

Як повна незнання мови, чому це так? Це моє власне сприйняття чи це загальне загальне відчуття програмної спільноти?


2
Я пишу програмне забезпечення на c # і чую всі критики Майкрософт, це майже просто збиває іншу мову
Скотт Селбі


4
@Andy не слід забувати публікації в блогах Джеффа: Сингулярність PHP і PHP відстійні, але це не має значення

5
Не існує двох типів мов ... тих, кого всі ненавидять, і тих, які ніхто не використовує.
ГрандмайстерB

2
@HerrK Єдиний спосіб, на який можна відповісти (мій включений) - це думки щодо того, чому ви вважаєте, що php смокче. Це також призведе до невиробничих дискусій (це смокче! Ні, це не так! Java смокче так само!). Питання не оптимізує для хороших відповідей , як це в даний час письмове (це не означає , що хороший відповідь не може бути написано). Окрім того, гарне місце для запитань із обговореннями та думками - це програма «Інженерія програмного забезпечення» . Було б особливо корисно поспілкуватися з нашим Yannis про php та його сприйняття у галузі.

Відповіді:


29

Примітка. Це написано з дуже впевненою позицією.

Дивіться також: PHP: Фрактал поганого дизайну

Давно, коли Інтернет був молодим, ви написали веб-додаток в перл. Це було насправді. Це був ваш єдиний вибір (якщо тільки вам не сподобалося працювати зі струнами в С). (І так, я замовляю великі вершини ASP тощо). Я вважаю за краще забути ті дні.) В Інтернеті написано великі та великі додатки. І було багато, багато шматочків ... ну, лайно, написане в перлі. Ви все ще можете знайти їх , якщо ви подивитеся - баггі CGI скрипти , які хто - то ляснув разом , які навіть не приходять близько до дезінфікуючих їх входи.

По мірі того, як Інтернет став більш підприємливим, великі та величезні програми перейшли на інші рамки, які були краще розроблені для обробки тисяч підключень (perl на той час не було). Ті, хто міг вивчити нову мову, перейшли на Java (це був найкращий вибір для багатьох фреймворків). Тим, хто не міг, ну, була ця мова, яка дуже нагадувала perl, і робила щось краще (не потрібно розгортати процес для кожного запиту). Це був php.

Php ріс, органічно ... якщо можна назвати монстра Франкенштейна органічним. Багато хаків (ви знали, що оригінальна хеш-функція для імен функцій була strlen ?). Часткові речі, додані до основної мови (а не бібліотеки), які залишаються там і сьогодні. Це не так симпатично. (Тикайте на reddit / r / lolphp, який викликає задоволення від багатьох цих невідповідностей ... чи знаєте ви, що -1 monthце завжди 30 днів ?)

І хоча великі та величезні речі були побудовані в php (подивіться на wordpress як приклад), це все ще монстр під обкладинками з езотерикою про те, як вони працюють (або не працюють, або які частини речей працюють більшість час).

Це швидка та проста мова для вивчення, тому багато людей, які не хочуть витрачати час на вивчення мови, використовують її. І тоді, коли він ламається, і вам доведеться його підтримувати зараз? Що ж, мова, яка допускає таку недисциплінованість з боку кодерів, які не завжди розуміють, що вони роблять, створює дуже "цікаві" помилки.

Це мова швидко зібраних веб-сайтів та напівзапечених плагінів WordPress. Де десь 16-річний чоловік написав код для свого сусіда за 20 доларів чи студента коледжу за гроші на пиво… знаючи, що вони ніколи більше не переглянуть це. Перегляньте на PHP-тег Stack Overflow кілька разів і подумайте, що ви можете підтримувати цей код якийсь день.

Пам'ятайте, що код усіх інших завжди смокче. І якщо вам доведеться мати справу з чужим кодом у php - це смокче.


6
недарма люди ненавидять php, якщо вони беруть для прикладу wordpress ... рамки на зразок Symfony або класи на зразок Pimple - це краще написані чисті сценарії PHP, які я б хотів підтримувати. symfony.com/components pimple.sensiolabs.org
Фелікс Ганьон-Греньє

Кожна мова має помилки в ній. PHP мав тону цих помилок. Деякі сортуються, деякі - як є, але створюються альтернативи. PHP розвивався з часом. АЛЕ проблема в громаді. У ньому є спільнота, наповнена нообами та любителями. Мій старший одного разу сказав: "ніхто не знає php, навіть якщо у них 5 років досвіду". Це правда, більше половини розробників php не знають концепції OOP. вони просто виконують роботу за допомогою функції масиву та рядків, скопійованих із stackoverflow.
tejas.jaiswal
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.