Язык программирования PHP
PHP — скриптовый язык общего назначения, часто применяемый для разработки веб‑сайтов. PHP — интерпретируемый язык программирования, позволяющий создавать программы в процедурном и объектно‑ориентированном стиле.
В качестве основных преимуществ PHP чаще всего называют широкую распространённость, достаточно высокую востребованность PHP‑разработчиков в сочетании с низким порогом входа при обучении.
PHP часто критикуют за несогласованный синтаксис функций, неортогональность дизайна, обратную несовместимость версий, а также за весьма низкий средний уровень культуры разработки.
На самом деле, простота освоения и высокий уровень востребованности в очень простых проектах как раз и являются причинами низкого среднего уровня технической экспертизы и культуры разработки на этом языке. Просто очень многие из тех, кто называет себя PHP‑разработчиками, на самом деле не имеют даже базовых знаний, достаточных, чтобы называться программистами. А большое количество проектов с низкими требованиями к качеству порождает почти повсеместное применение методологии, мягко называемой «фигак-фигак и в продакшн».
Разумеется, что в PHP‑разработке есть и очень хороший программисты, работающие с использованием лучших практик в сфере разработки ПО. Но их не так уж и просто найти, поэтому средний уровень по технологии определяют не они, а огромное количество веб‑мастеров, создающих тривиальные сайты по максимально простому технологическому процессу.
Мы столкнулись с кадровой проблемой при усложнении реализуемых проектов. На PHP достаточно просто найти разработчиков, которые могут собрать сайт на коробочной CMS‑системе, особенно, если нет никаких требований по скорости его работы, надёжности и безопасности. Как только ужесточаются требования к техническим характеристиками проекта или когда требуется разработка на фреймворке с качественной проработкой архитектуры, то кадровый рынок в экосистеме PHP оставляет желать лучшего.
Действительно хороших программистов в принципе мало на любом языке програмирования, но наша практика показала, что их поиск в рамках PHP‑стека более сложная задача в сравнении с другими языками: Ruby, Python, GoLang, Java. Это была одна из причин, по которой мы в 2013 году решились на смену технологического стека, перейдя от повсеместного применения PHP к применению Ruby для веб‑разработки и к использованию Python для анализа данных. Также свою роль сыграла и разница экосистем этих языков программирования — в Ruby и Python оказалось больше качественных инструментов, нужных нам для реализации сложных проектов. Еще в Ruby и Python сообщество разработчиков сконцентрировано вокруг небольшого числа мощных фреймворков и библиотек, тогда как в PHP несколько сотен в разной степени популярных фреймворков и CMS. Другими словами, случайно выбранный веб‑разработчик на Ruby в 99% случаев уже знает и работал с Ruby on Rails, веб‑разработчик на Python — с вероятностью 50% знает Django, а вот в PHP такого явного лидера среди платформ просто нет.