Чисто технические причины для PHP в качестве первого выбора?

Я знаю, что это может произойти как пламя-y /troll-y, но я надеюсь, что вы примете мое слово, что это не мое намерение. Я просто пытаюсь понять феномен PHP.

Рассмотрев многие технические проблемы с языковым дизайном PHP, мне трудно найти какие-либо искупительные технические преимущества, где PHP превосходит все остальные языки. Прежде чем приступить к выводу, что просто не будет оснований выбирать PHP как язык разработки на чисто технических основаниях , я хотел бы спросить, были ли все нетехнические факторы равными (например, какой язык разработчики уже знают, на каких языках предлагает хостинг-провайдер, язык существующего кода, стоимость, лицензия, корпоративный fiat и т. д.), будет ли какой-либо тип новой системы программного обеспечения, которая указала бы на то, что PHP первый выбор для развития? Если да, то какое техническое преимущество имеет у PHP более все другие языки, которые могли бы вы его выбрать?

EDIT: Мне не интересно сравнивать PHP «из коробки» с другими языками «из коробки». Если PHP имеет определенную функцию «из коробки», что другой язык имеет только после установки некоторого легкодоступного надстройки, то есть не считается преимуществом для PHP для целей этого вопроса.

6 голосов | спросил JoelFan 18 +04002011-10-18T21:33:13+04:00312011bEurope/MoscowTue, 18 Oct 2011 21:33:13 +0400 2011, 21:33:13

4 ответа


20

Если есть язык, который не имеет компромиссов, пожалуйста, дайте мне знать.

В то время как то, что вы устранили как «нетехнические» факторы, отнимает ряд общих преимуществ PHP, я могу придумать несколько технических факторов, для которых PHP может быть благоприятным:

  • PHP - это скриптинг. . Это означает, что развертывание может быть таким же простым, как один новый файл на сервере PHP.
  • PHP имеет OOP. OOP5 от PHP ни в коем случае не является ярким примером «хорошего» ООП, но он приличный.
  • PHP - это язык шаблонов. PHP и вывод (HTML или даже JSON) настолько легко переплетаются, что очень легко создать грубое разделение контроллера /представления. Это может быть так же просто, как два файла или даже один файл с четким разграничением.
  • PHP делает много вещей из коробки . Чтение файлов, HTTP-запросы, чтение /запись XML /JSON, манипуляция изображениями очень легкие, прямо на основном языке или повсеместные расширения. *

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

Ни один из них не обязательно является преимуществом в 100% случаев. Некоторые из них на самом деле являются негативами для некоторых разработчиков или некоторых потребностей проекта. Но вместе они могут просто предоставить правильный набор преимуществ для данного проекта.

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


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

  1. В библиотеках есть проблемы с установкой и обслуживанием.
  2. Библиотеки часто необходимо перемещать с помощью проекта (или использовать инструмент автоматизации сборки) вместо простого требования «использовать язык версии X.0.0»
  3. Каждая библиотека имеет свой собственный цикл обновления, который может или не может быть совместим с версией основного языка или другими библиотеками.
  4. Пусть небеса помогут вам, если вы закончите круговые зависимости и вам нужно что-то обновить.
ответил Nicole 18 +04002011-10-18T21:57:21+04:00312011bEurope/MoscowTue, 18 Oct 2011 21:57:21 +0400 2011, 21:57:21
11
  

Я просто пытаюсь понять феномен PHP.

PHP был в нужном месте в нужное время.

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

Преимущества использования PHP над другими языками лежат исключительно в его сообществе и доступны для программистов PHP (заметьте, я не упомянул о качестве;)). Было бы намного проще (и дешевле) передать часть приложения PHP, чем, скажем, приложение Erlang (заметьте, опять же, я ничего не говорил о качестве;)).

ответил Demian Brecht 18 +04002011-10-18T22:20:22+04:00312011bEurope/MoscowTue, 18 Oct 2011 22:20:22 +0400 2011, 22:20:22
6

PHP вырос (потому что вы действительно не можете сказать, что он был разработан ) из-за необходимости легко создавать веб-страницы. И ему это удалось:

  1. В сценарии использования по умолчанию (с Apache) он следует очень простой модели запроса /ответа. Нет многопоточности, ничего. Единственное, о чем вам придется беспокоиться, это использовать транзакции для доступа к БД при необходимости.
  2. Вы можете легко взять статическую веб-страницу и просто добавить бит логики здесь и там.
  3. Он динамически типизирован, очень прощает и имеет одну структуру данных общего назначения.

Из того, как он используется на веб-серверах, он не отличается от Perl, Ruby или Python. Однако эти три были разработаны как языки общего назначения (да, можно утверждать, что Perl не был), которые позже стали доступны в качестве инструментов веб-разработки.

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

ответил back2dos 18 +04002011-10-18T22:20:27+04:00312011bEurope/MoscowTue, 18 Oct 2011 22:20:27 +0400 2011, 22:20:27
2

Мой ответ: нет технической возможности, где PHP лучше, чем другие языки.

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

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

При динамическом объектно-ориентированном программировании существует множество функций, которые PHP пока не предоставляет. (пример нужен)

Относительно «сценариев ООП» и использования «языка как языка шаблона» может быть сделано со многими языками программирования (я думаю, что даже perl6 и, возможно, даже рубин предлагают это).

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

Кроме того, важно следить за тенденцией использования функционального программирования для веб-программирования. Это наоборот: очень сложные языки и рамки, которые подходят только для опытных программистов. С такими сложными вещами, как Монады, теория категорий, ленивая оценка.

Есть два очень хороших примера:
  1. Haskell и работа оснастки   2. Скала и подъемная рама
(и, возможно, также Clojure и http://webnoir.org/).

ответил mrsteve 21 12011vEurope/Moscow11bEurope/MoscowMon, 21 Nov 2011 23:41:03 +0400 2011, 23:41:03

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132