Выбираем язык программирования: что нужно знать о PHP
Рассказываем про один из самых популярных языков веб-разработки. Чем он отличается от JavaScript и что нужно знать, чтобы найти работу.
vlada_maestro / shutterstock
Когда PHP только появился, он был полон багов и недостатков. Многие привыкли его ругать, помня как «недоязык», но с момента его создания прошло уже много лет, а PHP пережил много изменений к лучшему. Как и у любого языка, у PHP есть свои особенности, но теперь это полноценный настоящий язык программирования.
Сейчас PHP — один из самых популярных языков веб-разработки. Почти весь Facebook* написан на PHP. Из других примеров — WordPress, Wikipedia, Yahoo и Tumblr.
PHP — это скриптовый (сценарный) язык общего назначения. На сценарных языках пишут сценарии или скрипты — программы, которые автоматизируют некоторые задачи (которые иначе пользователь делал бы вручную). Скрипты помогают избежать ошибок, сэкономить время пользователя и изменить программу, не боясь, что всё остальное перестанет работать. В отличие от большинства языков, скриптовым языкам не нужна компиляция, и они используются в основном для небольших рутинных задач.
Зачем нужен PHP
PHP создавался для веб-разработки, и для этого он в основном и используется, причём в основном для backend-разработки, то есть разработки серверной стороны сайта. На нём часто пишут динамические страницы и небольшие веб-программы. Вот несколько примеров его использования:
- работа с базами данных;
- создание системы комментариев;
- разработка форумов;
- разработка поиска по сайту;
- создание страницы для регистрации и входа в систему.
Плюсы, минусы и особенности PHP
Начнём с особенностей. У PHP слабая динамическая типизация: это значит, что типы переменных определяются во время выполнения программы, разные типы можно использовать вместе, а неявные преобразования выполняются автоматически.
Такая типизация — это и плюс, и минус. С одной стороны, код проще, гибче, он лучше читается и его легче писать, но, с другой стороны, вероятность ошибок выше, а найдёте вы их уже после запуска программы.
Плюсы
- PHP бесплатный, а его код лежит в открытом доступе.
- Для PHP создано множество библиотек, баз данных и фреймворков.
- PHP совместим почти со всеми современными серверами.
- PHP гибкий и даёт много свободы.
- PHP хорош для новичков, ему легко научиться.
- Простая и элегантная система классов и объектов.
- Простой синтаксис. Вот пример кода, выводящего надпись «Hello, World», в PHP:
Как видите, синтаксис очень простой, но обычно PHP вставлен в HTML, и тогда то же самое выглядит вот так:
Несмотря на то что этот код уже значительно длиннее, он всё равно простой и легко читается.
Минусы
- Чтобы работать с PHP, нужно знать как минимум HTML, а лучше ещё и CSS. Знание JavaScript тоже пригодится.
- У простоты и гибкости PHP тоже есть обратная сторона: написать плохой код очень просто, ошибиться легко, а найти ошибку тяжело. Из-за этого поддерживать код бывает непросто.
- Безопасность. Во-первых, проблему создаёт то, что код лежит в открытом доступе: если кто-то найдёт в коде баг, он может использовать это в своих целях. Во-вторых, из-за простоты языка и большого количества разработчиков код часто низкого качества и в нём не предусмотрена защита.
- Скорость. PHP не самый производительный язык: например, его конкурент Javascript — быстрее.
- Нет четкой системы в названиях функций стандартной библиотеки: в некоторых есть сокращения, в некоторых нет (call_user_func vs. create_function). В некоторых есть подчёркивание, в некоторых нет (isset vs. is_null), а, например, в названиях функций для работы со строками иногда бывает обозначение str, а иногда его не бывает. Такая нестабильность усложняет работу.
PHP против JavaScript
JavaScript и PHP первыми приходят на ум, когда думаешь о веб-разработке. Оба достаточно простые скриптовые языки, оба не зависят от платформы и часто вставляются в HTML. Многие веб-страницы даже используют оба эти языка. Почему так, и чем они различаются?
- Frontend vs Backend. PHP чаще всего используют для backend-разработки (на стороне сервера), а JavaScript — для frontend-разработки на стороне пользователя. Поэтому бывают страницы, серверная часть которых написана на PHP, а пользовательская — на JavaScript.
- Применение. JavaScript используется для многопоточных и веб-приложений, игровых серверов, браузеров и многого другого, PHP — язык почти исключительно для веб-разработки.
- Скорость. Как мы упомянули выше, PHP медленнее, чем JavaScript.
- В дефолтном JavaScript нет поддержки баз данных, а работа на PHP тесно с ними связана.
- Безопасность. Благодаря тому что PHP работает на сервере, его код менее доступен и лучше защищён, чем код JavaScript, который лежит на поверхности. Правда, есть инструменты (Security Analyzer), которые помогают сделать JavaScript безопаснее.
- Сложность. PHP проще. Для одной и той же задачи в JavaScript обычно нужно дольше разбираться и писать больше кода, чем в PHP.
Какой язык выбрать? Если вы создаёте одностраничные динамические сайты или хотите заниматься frontend-разработкой, то стоит выбрать JavaScript, а если вы работаете с CMS типа WordPress, или с такими серверами, как MySQL, SQL, MariaDB, Oracle и Sybase, то лучший выбор — PHP.
Востребованность и зарплата
Благодаря простоте PHP таких разработчиков много, но и вакансий тоже: HH.ru показывает более 900 предложений в Москве, а Яндекс.Работа — более 1100 (данные за декабрь 2019 года).
Требования. Большинство работодателей ожидают от кандидата знания не только PHP, но и HTML, CSS и JavaScript. Нередкое требование — опыт работы с MySQL, системой управления базами данных.
Зарплаты PHP-программистов в Москве начинаются в среднем от 70 тысяч рублей, junior-разработчики могут рассчитывать на зарплату от 40 до 90 тысяч рублей. Программистам с опытом предлагают от 120 до 200 тысяч рублей (информация собрана на Яндекс.Работе и HH.ru в декабре 2019 года).
Резюмируем
PHP — популярный язык для backend-разработки, у него простой синтаксис и его легко учить. Так что если веб-разработка вас привлекает, то это замечательный вариант: работая с PHP, вы научитесь ещё и HTML, CSS и попробуете себя в объектно-ориентированном программировании. А если не хотите ограничиваться веб-разработкой, то присмотритесь к JavaScript или Python.