Вместо того, чтобы дать готовый ответ на этот вопрос, я представлю вам некоторые факты о самом PHP, веб-технологиях и реалиях рынка. Благодаря этому каждый ответит для себя сам, потому что ... "на вкус и цвет..."
Часто можно услышать или прочитать, что технология PHP устарела или даже умирает (в пользу более модных node.js, .NET или Python), и когда мы смотрим на рейтинги наиболее используемых языков в веб-технологиях, то это PHP. То же самое и с CMS - самая популярная система управления контентом в Интернете - WordPress, написанная на PHP! 🙂
Так что же с этим PHP? Есть ли веские причины изучить его и стать экспертом в этой области помимо ваших личных предпочтений?
Что такое PHP?
PHP (рекурсивная аббревиатура: PHP Hypertex Preprocessor ) - это императивный, объектно-ориентированный, функциональный, процедурный, рефлексивный, интерпретируемый и скриптовый язык программирования, естественным и исходным назначением которого являются веб-серверы, веб-приложения и веб-сайты.
PHP чаще всего используется для генерации кода веб-сайта в режиме реального времени и интеграции его с базой данных. В отличие от команд, написанных на JavaScript, сценарии PHP не запускаются в браузере, а выполняются на стороне веб-сервера. Благодаря PHP вы можете получать информацию от клиентов веб-сервера и манипулировать ими.
Язык PHP был создан Расмусом Лердорфом и первоначально использовался только для подсчета посещений пользователей на отдельных веб-сайтах. Со временем PHP стали применять для создания частных веб-сайтов среди сообществ разработчиков, которым не нравились стандартные инструменты, такие как HTML, CSS и JavaScript. Это постепенно расширяющееся изобретение быстро приобрело популярность, в основном из-за более широких возможностей, которые оно предлагало в области генерации страниц по сравнению с широко используемым языком C.
Что сегодня можно создать с помощью PHP?
Практически все, что связано с веб-сервером. Вы можете создать блог, программное обеспечение как услугу, сценарии обработки данных и все, что угодно. К наиболее интересным проектам, с которыми мне лично приходилось работать на PHP, относятся:
- социальная сеть для моделей и фотографов;
- приложение для потоковой передачи музыки;
- скрипт машинного обучения для генерации деревьев решений на основе алгоритма ID3;
- любые сайты и приложения, которые вы можете найти в интернете.
PHP - это не только сценарии на стороне сервера. В нем можно делать консольные и даже настольные приложения! Но это для настоящих «гурманов»!
Известные сайты, порталы и приложения, написанные на PHP: Facebook, Википедия, Flickr, Yahoo!, iStockPhoto, Tumblr, WordPress.com, Mailchimp и др.
Как видите, огромные порталы, составляющие ядро Интернета, написаны на PHP. Способствовала ли эта технология их успеху? Понятия не имею, но если бы PHP был настолько плох, насколько часто можно прочесть об этом в "забавных" блогах недоразработчиков или же любителей, то они бы "переписали" его для других - "лучших", так сказать, технологий.
Когда одноклассники Марка Цукерберга впервые вошли в Facebook в феврале 2004 года, серверы сайта были на 100% запущены на PHP. Со временем Facebook разработал свой собственный язык на основе PHP под названием Hack, который в значительной степени совместим с существующим кодом PHP. Он был обогащен некоторыми полезными функциями из языков функционального программирования и исследований Facebook.
Популярность PHP среди интернет-технологий
PHP по-прежнему "правит" Интернетом, более того, он постоянно поднимается на более высокие уровни, а его производительность действительно растет с использованием современных стандартов и технологий. Некоторые программисты называли PHP "худшим языком" из-за его якобы низкой производительности, в нем отсутствуют все виды API и функций. Проблема в том, что эти люди сравнивают PHP, созданный много лет назад, с современными технологиями. Сегодня у нас есть версия PHP 7.4, выпущенная год назад. Она имеет хорошую производительность и постоянно расширяющийся каталог новых библиотек.
Согласно многочисленным исследованиям веб-технологий, доля PHP как серверного (back-end) языка составляет более 80%:
Поскольку WordPress гордится тем, что на нем создано более 30% сайтов всего интернета, а его крупнейшие конкуренты Joomla, Drupal, Magento, PrestaShop и MediaWiki также являются CMS, написанными на PHP, то говорить практически не о чем!
Вывод прост: подавляющее большинство веб-приложений используют PHP в качестве серверной части. Это еще один аргумент в пользу того, что стоит изучить PHP, если вашей целью является web-программирование для Интернета.
Особенности языка PHP:
1. Веб-разработка: PHP особенно подходит для программирования веб-приложений. Он оптимизирован для использования в Интернете и постоянно развивается в этом направлении, а также поддерживает такие функции, как:
- отправка файла на сервер;
- отправка сообщений электронной почты;
- обработка изображений JPEG / PNG / WebP;
- подключение к СУБД MySQL.
Здесь потребуется всего лишь одна строка кода без загрузки дополнительных библиотек!
2. Высокоуровневый, слабо и динамически типизированный - это означает, что переменная может изменять типы, и вам не нужно жестко указывать их при определении переменной (например, число, строка, массив и т. д.). Обычно это предпочтительно при разработке в веб-приложений, но не всегда.
3. Большое сообщество - невозможно не найти в интернете готовый ответ по конкретной проблеме, с которой мы столкнемся при написании скриптов на PHP.
Преимущества PHP для обучения:
- простой синтаксис;
- большая популярность позволяет найти решение проблемы в интернете и на многих форумах, объединяющих программистов;
- возможность использования нескольких фреймворков;
- PHP - проект с открытым исходным кодом;
- можно легко и дешево опубликовать свое ПО;
- полная поддержка ООП и современных методов программирования;
- популярность PHP на рынке IT даст вам свободный выбор карьеры и преимущество как в качестве программиста на полную ставку в организации, так и в качестве фрилансера.
Преимущества PHP для использования в стартапах:
- скрипты PHP поддерживают самые дешевые и бесплатные серверы;
- многие компании создают приложения с использованием PHP, поэтому при создании бизнес-приложения вы всегда найдете поддержку и услуги по конкурентоспособным ценам;
- дружественные пакеты LAMP и WAMP для установки веб-сервера;
- постоянное развитие проекта.
Наиболее часто используемый фреймворк PHP
Многие фреймворки были написаны для PHP с целью создания больших приложений и разработки проектов в группах разработчиков. Фреймворки предназначены для упрощения процесса разработки. У каждого из них есть свои сильные и слабые стороны, потому что они имеют закрытый исходный код и определяют поток управления.
Прежде чем изучать конкретный фреймворк, выясните, какой из них наиболее подходит для ваших вариантов использования.
Самые популярные из них:
- Laravel
- CodeIgniter
- Symfony
- CakePHP
- Yii
- Zend Framework
- Phalcon
PHP разработка
PHP очень интересно развивается. Он становится полностью функциональным Java-подобным языком. Появляется все больше и больше новых инструментов, поддерживающих PHP.
Крупные компании, такие как Amazon, Google, Facebook предоставляют API и SDK для своих сервисов, предназначенных для использования в приложениях PHP.
Производительность новой версии PHP 7
Почему стоит изучить PHP версии 7 и использовать ее при web-программировании?
После более чем десятилетия без серьезных улучшений языка PHP 7 дебютировал в декабре 2015 года. Это обновление внесло много существенных изменений. Стоит использовать новую версию PHP, даже если вы используете WordPress. PHP 7 заменяет многие устаревшие функции новыми и модернизированными. Они, в свою очередь, включают, помимо прочего, анонимные классы, сгенерированные ошибки и объявления типов.
В целом PHP 7 быстрее, безопаснее и намного эффективнее, чем старые версии. Например, сайт с PHP 7 может обрабатывать вдвое больше посетителей, чем PHP 5, используя тот же объем памяти и идентичную конфигурацию сервера. Новая версия PHP 7 примерно в несколько раз быстрее PHP 5 и HHVM (ранее упомянутая платформа, разработанная в Facebook):
PHP по сравнению с остальными языками...
Как это обычно и бывает с такими темами, сравнений не избежать. Сравнение PHP с языками общего назначения не имеет ни малейшего смысла, потому что вы не можете ожидать от PHP производительности языка Java больше, чем требуется, например, чтобы Java-код отправлял электронное письмо в одну строчку! В любом случае, я решил сопоставить несколько языков с PHP и написать комментарии.
PHP или Java
PHP - гораздо более простой язык для изучения.
Сравнивая цены с хостинг-провайдерами, можно сделать вывод, что запуск веб-приложения, написанного на Java, связан с более высокими затратами.
PHP или JavaScript (Node.js)
Это, пожалуй, самый часто сравниваемый язык с PHP. Благодаря Node стало относительно легко использовать JS на сервере.
Однако правда состоит в том, что такие языки, как PHP и Java, намного более развиты во многих отношениях. На StackOverflow (система вопросов и ответов о программировании) больше публикаций и даже тем о вариантах использования PHP, нежели Node.js, у которого есть только развивающееся (но не развитое) сообщество.
Node.js разработан с учетом событий, то есть асинхронности , а это особенность типичных внутренних серверов. Кроме того, помимо базового синтаксиса, написание интерфейса и бэкенда на JS не имеет много общего.
PHP или C# .NET
C # - намного более сложный язык, чем PHP.
Сравнивая цены с хостинг-провайдерами, я обнаружил, что запуск веб-сайта или приложения, написанного на ASP, связан с более высокими затратами.
PHP или Python
Python - это язык, который лучше всего сравнивать с PHP. Python используется во многих контекстах, отличных от веб-разработки, он также очень популярен для статистики, анализа данных и машинного обучения.
Это также один из наиболее стабильных и хорошо продуманных языков в общем понимании. Python (как Ruby и JavaScript) немного сложнее запустить на веб-сервере, чем PHP. У него есть большое сообщество разработчиков, поддержка крупных компаний и множество готовых библиотек (похожих на PHP), но он менее популярен при обычном использовании в сети, чем PHP.
Будущее PHP и версии PHP 8
Следующая версия PHP уже анонсирована - это 26 ноября 2020 года. Предполагается, что он будет работать на основе исполнения JIT ( Just-In-Time ). В настоящее время PHP интерпретирует любые инструкции, которые могут быть выполнены при компиляции. В версии 7 уже был достигнут большой прогресс в устранении «мертвого кода», который никогда не будет выполняться. В восьмой версии этого языка будет интерпретироваться только код, который будет выполняться в текущем исполнении (для данных аргументов и ситуаций).
На практике это означает даже большее улучшение производительности по сравнению с версией 7, чем при сравнении PHP 7 с PHP 5.
Резюме
Напоследок хотелось бы отметить важный момент. Конкретный язык не играет такой особой роли в изучении программирования, как может показаться. Самое главное - это сам навык программирования. Переход на другой язык программирования не представляет особого труда.
Вместо того, чтобы задерживаться на форумах и гадать, даст ли конкретная технология вам работу и будет ли она ориентирована на будущее, выберите такую, чтобы обучение программированию приносило вам много радости и удовлетворения!
Но если:
- вы хотите программировать приложения для Интернета;
- вы хотите использовать тот же язык, на котором Цукерберг создал facebook и который использовался для написания Wikipedia, Yahoo и Flickr;
- вы хотите создавать легкие проекты, которые будут поддерживаться и доступны в Интернете по низкой цене;
- вы хотите написать что-то очень быстро, почти сразу;
- вы хотите создавать приложения и веб-сайты, совместимые с популярными системами управления контентом, известными практически каждому владельцу веб-сайтов.