Эта статья была спонсирована AppDynamics . Спасибо за поддержку спонсоров, которые делают возможным SitePoint!
Это популярный вопрос. Почему на самом деле нужно выбрать PHP поверх одной из альтернатив? В конце концов, PHP часто называют хакерским , непригодным и плохо разработанным языком. Почему кто-то выбрал его, когда начинал проект с нуля?
Вместо того, чтобы перечислять причины, по которым люди выбирают его (в основном широко распространенный доступ), давайте вместо этого сосредоточимся на том, почему люди должны выбирать его. Однако мы не можем говорить об этом, не упомянув сначала, почему они не должны этого делать .
Когда вы не должны выбирать PHP
При рассмотрении приложений командной строки
Если вы создаете приложение для командной строки, PHP не является правильным выбором. Конечно, существуют подходящие подходы к созданию CLA с PHP, но он просто не предназначен для этого. Прежде всего, PHP — это веб-язык, а приложение с чистой командной строкой лучше встроено во что-то другое. Это не значит, что это невозможно, но это определенно быстрее и проще сделать на другом языке, не говоря уже о том, чтобы сделать его более производительным. Создание приложений CLI в PHP поддается метафорам, которые люди используют при сравнении PHP с молотком с двойными когтями. Это просто не инструмент, который предназначен для этого. Например — Python предустановлен в большинстве дистрибутивов * nix, поэтому у вас есть немедленный доступ к нему без необходимости взлома php.ini
Когда это кажется самым простым
Если PHP кажется самым простым из всех, и это ваш единственный мотиватор, ваше сердце не в том месте. PHP может быстро усложниться, и хотя путь входа, по общему признанию, проще, чем с другими языками, профессиональный уровень делится своей сложностью с альтернативами. Выполнение серьезной работы также сложно на любом языке.
Только потому, что ваш провайдер виртуального хостинга поддерживает это
Если вы используете общий хост и наслаждаетесь тем, что он поддерживает PHP (возможно, даже не полностью архаичную версию, такую как 5.3), остановитесь. Если вы называете себя разработчиком, вы никогда не должны использовать общие хосты ни для чего, кроме банальностей, таких как настраиваемая веб-почта, управление доменом или очень простые демонстрации. С альтернативами, такими как DigitalOcean, предлагающими виртуальные частные серверы, размещенные на твердотельных накопителях всего за 5 долларов в месяц, выбор общего хоста не имеет смысла — не тогда, когда частный экземпляр дает вам гораздо больший контроль. Если у вас есть что-то против DevOps и вам не нравится настраивать свой собственный сервер ( хотя вы действительно должны научиться это делать ), многие, многие провайдеры облачного хостинга предлагают бесплатные уровни, которые предварительно настроены для вас. Держитесь подальше от общих хостов.
Вычислительное программное обеспечение
Когда вы ожидаете, что будете иметь дело с большой математикой, сложными вычислениями, статистикой и т. П., Есть лучшие варианты — особенно, если приложение делает это в основном , и мало что еще. В частности, функциональные языки, такие как Scala или новичок Dart, будут выполнять эту задачу намного лучше, чем PHP , что может потребовать больше усилий, чем это стоит того, чтобы заставить их делать то, что вы хотите. Это также значительно медленнее в этих задачах, чем языки, специально предназначенные для них.
Иногда проще написать вычислительную часть приложения на языке, с которым вы уже работаете в текущем приложении, но чаще всего это ленивый ярлык. Дискомфорт от необходимости устанавливать язык помощника или виртуальную машину и создавать часть приложения как отдельного приложения довольно часто компенсируется долгосрочной выгодой, особенно когда трафик начинает требовать его. Есть причина, по которой все расчеты в Twitter сейчас в Scala, хотя их интерфейс все еще RoR .
PHP хорошо учится
Проблемы, перечисленные выше, являются проблемами неадекватных знаний и опыта, и, естественно, когда кто-то использует PHP для такой цели, конечный результат оказывается неоптимальным — добавление плохой прессы к уже запятнанной репутации PHP. Для чего хорош PHP, это любой веб-ориентированный сценарий, который нужно разрабатывать быстро и выполнять очень быстро.
PHP обладает огромным сообществом. Правда, подавляющее большинство — новички , но после того, как вы отсеете плевел, останется кучка преданных профессионалов, таких как Фил Стерджон , Джош Локхарт , Майк ван Риэль , Энтони Феррара и многие, многие другие. Десятка высококвалифицированных профессионалов, которые признают недостатки PHP, но также усердно работают над просвещением общественности и устранением этих проблем, могут предоставить массу знаний. В сочетании с отличными ресурсами, такими как форумы SitePoint , StackOverflow и PTRW , проблемы, с которыми сталкиваются в PHP, легко решаются, и прогресс, как правило, быстрый и высоко образовательный. Если вопросы, которые вы задаете, не являются совершенно глупыми (и да, есть глупые вопросы), сообщество не является элитарным и всегда готово помочь.
Количество проектов PHP с открытым исходным кодом, а также книг и курсов, из которых можно выучить, многочисленно, и с терпением и руководством можно за короткое время овладеть языком.
Разогнать плохую прессу
PHP значительно повзрослел с тех пор, как в последний раз люди коллективно его избивали, и он наследует все больше и больше современных функций от других языков. Предрассудки распространены, и нужно научиться их распознавать. Как говорится в этом отличном сообщении в блоге MailChimp от 2010 года , это не инструмент, а то, как вы его используете.
PHP позволяет быстро создавать прототипы всех типов приложений и может быстро приступить к работе. Это быстрый и надежный язык, который значительно превосходит RoR и Python в сложных веб-приложениях, а благодаря дополнительным преимуществам таких проектов, как HHVM и Phalcon , производительность PHP не вызывает сомнений в области динамических языков. Печатание идет как в обычном PHP, так и в Hack HHMM, по крайней мере, в некоторой форме, и поскольку гиганты, такие как Facebook, продолжают работать над этим напрямую, к PHP можно относиться все более серьезно .
Теперь, прежде чем вскочить на подножку и выкрикнуть «просто используйте NodeJS, это лучше !! 11» или «MailChimp было бы лучше использовать NodeJS с самого начала», пожалуйста, сначала рассмотрите, насколько хакерский и фрагментированный мир JavaScript в его текущем состоянии. сформироваться. Гораздо моложе, чем PHP, фреймворки, которые он предлагает, уже превосходят PHP — частая насмешка среди ненавистников PHP. NodeJS 5 лет, и его самая последняя версия на момент написания этой статьи — v0.10.25. Разработчики кажутся настолько неуверенными в этом, что отказываются позволить ему пройти даже 0,1 после пяти лет, не говоря уже о том, чтобы рисковать в 1.x водах. Существует также постоянное несоответствие между различными решениями, и каждое из них утверждает, что это «более простой / лучший / быстрый способ сделать X». Сообщество огромно, но ужасно фрагментировано. Этот твит звучит особенно верно:
Питьевая игра для веб-разработчиков:
(1) Подумайте о существительном
(2) Google «<имя существительное> .js»
(3) Если библиотека с таким названием существует — выпить— Шей Фридман (@ironshay) 22 августа 2013 г.
Я не собираюсь ругать другие языки — другие люди могут гораздо лучше справляться с JS, чем я, — я хочу подчеркнуть, что можно придираться к минусам абсолютно любого языка , Как и в жизни, если вы сосредоточены только на плохих вещах, то никогда не испытаете хороших — о недостатках PHP по большей части заботятся библиотеки и фреймворки, и хотя можно утверждать, что «настоящий язык» не Если для работы нужны исправления или помощь крупных компаний, можно было бы спросить, что такое библиотеки и пакеты Java, NPM или PUB, если не исправления и улучшения языка, добавив недостающую функциональность, которую кто-то другой любезно собрал.
Итак, давайте прекратим фокусироваться на том, насколько плох X-язык, и начнем работать над проектами, которые демонстрируют превосходную природу нашего выбора. Да, есть проекты, которые тянут его вниз — WordPress — один из таких проектов для PHP — но если мы будем настойчивы и создаем потрясающие знания с учетом лучших практик , мы сможем развеять эту плохую репутацию и начать перестраивать мир PHP, который мы любим.
Вывод
PHP — отличный выбор для новых проектов независимо от сложности. За последние несколько лет мир PHP развивался по-настоящему быстрыми темпами, и некоторые революционные новые функции могут быть использованы даже сегодня (см. Ссылки HHVM и Phalcon выше). Я далек от того, чтобы предположить, что PHP должен быть единственным инструментом в вашем наборе инструментов — владение более чем одним языком столь же полезно в языках программирования, как и в естественных, — но определенно не повредит его освоению. PHP предоставит вам возможность за несколько дней перейти от идеи, прототипа к производству — и это требование, которое могут сделать не многие языки. Последние достижения, такие как встроенный OpCache и виртуальные машины, такие как HHVM, расширяют возможности этого языка, позволяя значительно сократить расходы на облачный хостинг, а мониторы производительности, такие как AppDynamics , позволят довести его до предела.
При рассмотрении вашего следующего проекта — не спрашивайте себя «Кто ненавидит PHP?» Или «Что подумают люди?». Это вопросы тщеславия и отсутствия безопасности. Вы думаете, что кто-то предполагал, что MailChimp, система, которая работает с миллионами электронных писем в день, была построена на PHP до того, как они «стали чистыми»? Вместо этого просто делайте все возможное и строите.