Язык программирования 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 — с вероятностью 95% знает Django, а вот в PHP такого явного лидера среди платформ просто нет.

С 2004 года мы успели поработать с очень разными платформами и технологиями. И первые 9 лет мы занимались  разработкой проектов только на PHP. Это дало нам много опыта и хорошее понимание внутреннего устройства многих технологий и платформ.

В 2013 году мы приняли решение обновить наш технологический стек для разработки новых проектов. Цель была достаточно простая — нам нужны были технологии, которые были бы более перспективными с точки зрения возможностей и качества разработки. И эта цель была достигнута благодаря переходу на Ruby on Rails.

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

Узнать больше →

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

Ruby — интерпретируемый мультипарадигмальный язык программирования, ориентированный на удобство для разработчиков.

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

Узнать больше →

Elixir — функциональный компилируемый язык программирования общего назначения. Он построен поверх языка Erlang, то есть Elixir — это почти тот же самый Erlang, но с «синтаксическим сахаром».

Использование Elixir с Erlang OTP обеспечивает распределённость и отказоустойчивость, исполнение в режиме мягкого реального времени, возможности метапрограммирования с макросами и полиморфизмом на базе протоколов.

Узнать больше →

Python — высокоуровневый интерпретируемый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода.

Язык поддерживает несколько парадигм разработки: структурное, объектно-ориентированное, функциональное, императивное и аспектно-ориентированное программирование. Python — отличный инструмент для задач по обработке данных и для машинного обучения.

Узнать больше →

Тематические технологии:

Язык программирования Go
Фреймворк Ruby on Rails
Фреймворк Phoenix
Язык программирования Erlang
Websockets
Система управления сайтами UMI.CMS
Yii
Symfony

Cтатьи по теме:

Язык программирования PHP
PHP — язык программирования, который наиболее распространён в сфере веб-разработки.
Серверные языки программирования
Серверные языки программирования нужны для реализации бизнес-логики, то есть разработчик при помощи языка программирования описывает возможные сценарии использования сайта или приложения.
Язык программирования Ruby
Ruby (ruby — рубин, руби) — интерпретируемый мультипарадигмальный язык программирования: динамический, объектно-ориентированный, рефлективный, императивный, функциональный. Активно используется в веб-разработке, в системном администрировании и в работе операционных систем (Mac OS X, Linux, BSD).
CMS — коробочные системы управления сайтами
Система управления сайтом — это программный продукт, который создан для упрощения создания основных видов сайтов. Как правило, системы управления достаточно универсальны, то есть на них можно собрать что угодно: от информационного сайта до интернет-магазина или портала.
Фреймворки в веб-разработке
Фреймворки — это программные продукты, которые упрощают создание и поддержку технически сложных или нагруженных проектов. Фреймворк, как правило, содержит только базовые программные модули, а все специфичные для проекта компоненты реализуются разработчиком на их основе. Тем самым достигается не только высокая скорость разработки, но и большая производительность и надёжность решений.
Выбор между CMS и фреймворком
​Технически любой функционал может быть реализован как на CMS, так и на фреймворке. Однако некоторые проекты проще сделать на CMS, а некоторые — на фреймворке.
Рекомендации по выбору CMS и фреймворков
При выборе конкретной платформы для разработки часто возникают сложности. Бывает непросто принять взвешенное решение, в этом случае будет полезен формализованный алгоритм выбора.