Каковы преимущества PHP? [закрыто]

14

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

В этом особом случае PHP: как вы утверждаете, используя PHP в качестве выбранного вами языка программирования для веб-приложений? Каковы преимущества, где PHP лучше, чем ColdFusion, Java и т. Д.?

кульминация
источник
5
PHP - это региональный, малоинвазивный подход к лечению рака, который в настоящее время проходит клинические испытания II и III фазы. PHP также может помочь лучше понять коллизию хешей. Организаторы проекта PHP также помогают различным правоохранительным органам бороться с частными и коммерческими нежелательными правами массовой рассылки и общей работой, чтобы помочь уменьшить количество спама, отправляемого и получаемого в Интернете. PHP предлагает группы поддержки в нескольких десятках мест по всему Массачусетсу. PHP - это программа, используемая для лечения психических заболеваний и токсикомании. PHP находится на уровне 3 MPLS VPN (RFC2547).
Работа
У каждого языка есть свои ненавистники / поклонники. Я бы не сказал, что PHP особенно ненавидят по сравнению с другими языками. Инфек Я бы сказал, что чем больше восхищается языком, тем больше ненавистников. Я уверен, что мы могли бы кодифицировать это (admirers lang X/haters lang X) = AcmeConstant . AgeFactor(Lang X Age). Где AcmeContant неизменен для всех языков <(;-)
Martin York
1
Я использую php, чтобы продемонстрировать людям, как не создавать языки.
dan_waterworth

Ответы:

13

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

Это интерпретируется.

Просто FTP / SSH в вашу учетную запись, изменить вещи должны быть изменены и Presto! Нет необходимости компилировать, развертывать, перезагружать сервер.

Конечно, это то, что привлекает людей, работающих в неформализованной среде разработки, без контроля версий, автоматических тестов, автоматических сборок и т. Д.

Это на самом деле легко

Шутки в сторону. По крайней мере, для настоящего новичка это действительно легко. Настолько легко, что, когда мой двоюродный брат проявил интерес к обучению программированию, я вместо этого купил ему книгу по Python. Соглашения PHP могут научить вас некоторым вредным привычкам.

Способен

У меня пожизненная взаимная вражда с языками Си / Си ++. Почему-то мы не любим друг друга. В то время как в университете, когда мне приходилось делать проекты, включающие вычисления, я выбирал PHP вместо C ++, и в каждом случае я мог достичь того, что хотел. Возможно, выполнение программы было на самом деле медленнее, чем если бы оно было написано на C ++, но в данном случае это не имело значения.

В любом случае: нейронные сети, генетические алгоритмы, нечеткая логика ... Я делал все это на PHP. Да ... люди говорили мне, что я странный.

MCHL
источник
+1 за толкование и способность. Одна вещь, которая всегда мешала мне работать в сети с Java, это постоянная необходимость перекомпиляции и развертывания. Использование чего-то вроде Grails облегчает некоторые из них, но это далеко не так хорошо, как PHP.
Джош К
Интерпретированный и способный действительно хороший аргумент. +1 Все ответы были хорошими и дали несколько хороших аргументов, но ваши довольно хорошо суммируют.
Acme
Просто посмотрите на этот код для работы с 64- битными целыми числами: mysqlperformanceblog.com/2007/03/27/… Вы серьезно это называете легким?
ThomasX
Нет я не Обратите внимание, я написал: «По крайней мере, для настоящего новичка это действительно легко». Настоящим новичкам обычно не нужно беспокоиться о переносимости между платформами (если это хорошо - это совсем другой вопрос). Общий совет: если вы планируете иметь дело с большими целыми числами в PHP, используйте расширение BCMath (и да, я знаю, что это не лучшее решение, которое может быть ... но именно
таков
17

Это то, с чем не все согласятся, но я думаю, что еще одна причина популярности PHP в том, что легко получить бесплатный хостинг.

Многие молодые студенты, которые хотят заняться веб-разработкой, выбирают PHP, потому что настройка сервера в сети будет стоить им ничего, поэтому они могут поиграть с ним / узнать об этом бесплатно.

Хотя существуют бесплатные варианты хостинга для других языков (java, ruby, .net), их гораздо сложнее найти.

mrwooster
источник
Стоимость, безусловно, является основным фактором в широком распространении.
Orbling
14

шаблонирование

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

портативный

PHP может работать практически на любом сервере и на большинстве платформ. На самом деле это будет работать на большинстве каждом сервере. Вы можете запустить его под IIS, Apache, Nginx и т. Д. Это означает, что у вас есть возможность однократной записи и запуска в любом месте. Эта переносимость имеет некоторые ограничения в зависимости от параметров среды, которые вы должны поддерживать. Это будет отличаться между коммерческими приложениями и приложениями с открытым исходным кодом / широко распространенными.

Популярный

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

Стоимость

Сам PHP бесплатен, и большинство элементов, с которыми он работает «из коробки» (Apache, PostgreSQL, MySQL), бесплатны. Это дает вашему проекту очень низкий порог первоначальной стоимости.

Джош К
источник
Я бы не сказал, что переносимость была сильной стороной PHP. Если вы действительно хотите писать переносимый PHP, вы должны обойти тот факт, что язык можно настроить множеством разных способов, например, вам нужно проверить опцию config для магических кавычек и запустить, stripslashes()потому что у некоторых есть опция config, а у некоторых нет «т.
Джим
2
@ Джим - Это намного более портативно, чем большинство вещей.
Orbling
@ Orbling - Правда? О каких похожих особенностях других языков вы думаете?
Джим
1
@Jim: я пишу код, который ожидает "лучшую практику" среды. Если бы я делал проект ОС я бы предписывал ряд вариантов / настроек (например, magic_quotes_gpcоказался выключено ). Лучший способ справиться с этим (если бы вам пришлось) заключался бы в инкапсуляции этих блоков обработки if / else в вспомогательные функции, что исключало бы необходимость встроить проверку кавычек в код вашего приложения.
Джош К
1
@ Джош - я бы поступил так же, как и ты, если бы я все еще писал PHP в больших количествах в наши дни, но если твой код зависит от среды "наилучшей практики", он не переносим. В частности, он будет иметь ошибки повреждения данных на многих паршивых хостах, поскольку ложные обратные слеши добавляются ко всем предоставленным пользователем данным. Учитывая, что повсеместное использование PHP-хостинга считается одним из основных преимуществ использования PHP, я думаю, что будет справедливо принять во внимание все эти дрянные хосты. Вспомогательные функции, которые вы описываете, являются типичным способом решения этой проблемы, но это обходной путь для проблемы переносимости.
Джим
5

PHP везде. Неважно, какой у вас сумасшедший странный хостинг, вряд ли на нем будет установлен PHP. Это означает, что если вы пишете веб-приложение, которое должно работать на серверах других людей, вы всегда можете зависеть от некоторого набора функций PHP (классы PHP 4/5 и расширения по умолчанию) и увеличивать пользовательскую базу при уменьшении поддержки.

Дэвид Кендал
источник
5

Доступность Почти каждый веб-хостинг поддерживает это

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

Простота установки Даже если она не установлена, она проста в установке, даже поставляется в комплекте с серверами LAMP / WAMP

Документация Есть множество примеров, групп поддержки, книг и т. Д.

wildpeaks
источник
1

Некоторые преимущества PHP:

  • Встроенная обработка загрузки файлов
  • Встроенная обработка данных из GET, POST и COOKIES
  • Встроенное управление сессиями
  • Быстро написать
  • Легко смешивать код и HTML (примечание: это также считается недостатком)

Теперь у него также есть несколько явных недостатков:

  • Нет понятия о локальных переменных ... переменные являются либо глобальными, либо функциональными. Это будет гореть вам в каком - то момент, особенно если вы используете петлю.
  • Глобальные переменные недоступны в области действия функции, если вы не запросите их с globalключевым словом.
  • Среда программирования изменяется в зависимости от php.ini. Это включает в себя изменения в поведении определенных функций и встроенных массивов (например, $_GETи $_POSTизменения значений в зависимости от magic_quotes_gpcнастроек)
Powerlord
источник
1
Никто в здравом уме не будет magic_quotes_gpcвключен. Я подвергаю сомнению здравомыслие человека, который добавил это бесполезное раздувание к двигателю во-первых.
Джош К
1
«Глобальные переменные недоступны в области действия функции, если вы специально не спросите их» - не понимайте, в чем заключается их недостаток. Есть языки, которые делают это таким образом, есть другие, которые этого не делают.
MCHL
1
@Mchl: большинство языков не делают этого, и это определенно понятно, если вы не знаете об этом. Вдобавок ко всему, TCL - единственный другой язык, который я использовал, который делает это.
Powerlord
1
@Josh K: Основной сервер моей предыдущей компании все еще работает, так как до этого мне нравился главный программист, и поэтому большая часть старого унаследованного PHP-кода опиралась на него. Нет времени перекодировать сотни сайтов. : - /
Orbling
1
@Mchl: Ада имеет тенденцию привыкать, где неудачи могут привести к смерти, много смерти. adaic.org/advantages/projects
Orbling
1

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

Мне лично нравится PHP, потому что я могу запустить его практически где угодно. Вы можете получить много помощи по сети, и это бесплатно. Также есть несколько хороших фреймворков, таких как Zend Framework. Но большинство людей не могут получить голову вокруг этого.

Pimmetje
источник