Почему PHP ненавидят, но все им пользуются?
Сейчас разберемся и спросим мнение у разработчиков «Спринтхост».
Сразу скажем — нет. Можно долго говорить, что плохих языков не бывает и т.д. и т.п., но PHP — обычный язык программирования со своими достоинствами и недостатками.
Ответ на поверхности — порог входа в PHP крайне низкий. Чтобы научиться на нем программировать, достаточно пройти небольшой курс или разобраться самому. Вместе со спецификой HTML отображать все, что возможно, как бы ты ни написал код, PHP позволяет легко создавать сайты.
PHP дает все, что нужно для веб-разработки, он нетребовательный в освоении, самый распространенный язык для веба
Простота изучения и использования популяризировала язык, стала причиной его распространения. Подавляющее большинство сайтов создано на PHP, многие CMS написаны на нем. Даже такой крупный проект как YouTube изначально базировался именно на PHP.
PHP идеально подходит для создания сайта. Он выдержит большое количество посетителей и справится с серьезной нагрузкой, был бы хороший хостинг под рукой (да, это намек на нас). Кроме того, PHP нетребователен к железу и может завестись на любой «тачке».
Плюсы языка оборачиваются для его репутации минусами. Легкость использования PHP позволяет новичкам-разработчикам писать код так, как они его видят, не задумываясь над его читаемостью и эффективностью. Джун испытывает приступ гордости от работающего сайта, но на самом деле результат далек от адекватного состояния. Конечно, мы не утверждаем, что у всех новичков получается плохой код, но без должного опыта хорошо выходит не у всех.
Проблема усугубляется тем, что такие PHP-разработчики после первых работ продолжают создавать и дальше проекты сомнительного качества с точки зрения кода. Работает же, не трогай. Но если что-то сломается или нужно внести изменения в код спустя время, то разобраться в мешанине PHP будет очень сложно. Львиная доля интернета была написана таким образом.
PHP изначально создавался простым, чтобы им пользовались даже «домохозяйки» и люди очень далекие от программирования. И они стали им пользоваться, из-за чего в интернеты полилась куча дичи. У «реальных» программистов, которые постоянно ломали голову над кодом, писали его строго по документации и боялись поставить запятую не там, естественно подгорело от того, какой незамысловатой оказалась «пыха».
Кто-то пишет код часами, тестирует, он не работает, ищет баги, снова пишет код, а кто-то на «тяп-ляп» собирает нечто из PHP, создает монстра Франкенштейна и оно все равно будет работать. А потом еще нужно поддерживать все то, что насоздавали «умельцы» на PHP. «Справедливо?» — думают «настоящие» айтишники. «Нет!» — кричат их подгоревшие коллеги.
Негатив к PHP быстро распространился среди программистов и укоренился в сознании. Даже спустя много лет и версий с улучшением языка это отношение не сильно изменилось.
Думаю, по большей части, это уже мода не любить PHP. Хотя определенные недостатки есть, как и в любом другом языке. Конкретно в PHP — динамическая типизация, не очень удобный синтаксис
Здесь мы подкрадываемся к следующей проблеме языка — синтаксис. Камни (и другие неприятные вещи) в его огород летят за излишнюю свободу возможностей, динамическую типизацию. Переменные можно объявлять где угодно, можно называть их как угодно. Одна и та же переменная в разных местах кода может принимать в себя разные типы значений. Получается мешанина и полный хаос.
Сломанный оператор «==» заслуживает отдельного порицания. Выражение «1111 == 1111sph» выдаст нам True. «Пыха» просто превращает правую часть выражения в число и ей по барабану, что это строка. Сторонний разработчик, увидев такой код, может просто взорваться от негодования.
Для меня это один из инструментов, который можно использовать в работе. Но у него есть минусы, которые я могу выделить для себя:
— Зоопарк версий и обратной совместимости;
— Ранние версии не имеют приколюх и фич, которые появились со временем в поздних версиях;
— Нужно поддерживать тот самый зоопарк, о котором идет речь в первом пункте
PHP пророчили быструю смерть, что найдется хорошая замена и все заживут прекрасно, но он до сих пор является одним из самых востребованных языков программирования — легким, послушным и эффективным для сайтов.
Да, над PHP шутят и кто-то даже ненавидит, но, во-первых, на нем уже очень многое написано и нужно это поддерживать. Переносить все на другой язык гораздо дороже по ресурсам, чем оставить проект на PHP. Во-вторых, зачем переносить, если сайты прекрасно работают на языке, который создан специально для этого. В-третьих, PHP продолжает развиваться, многие его несовершенства исчезают, скрипты ускоряются, а читаемость кода увеличивается, появляется более строгая типизация. Язык становится понятнее и профессиональнее — это уже давно не то скриптовое дополнение для Perl, а нечто большее, хоть и обросшее шутками и мемами.
Разработка на PHP быстрая из-за обилия готовых решений: библиотек, фреймворков, CMS. Частенько даже не нужно знать сам PHP, в зависимости от сложности проекта, конечно же
Если хотите создавать сайты, то PHP — отличный инструмент, который позволяет зарабатывать хорошие деньги. Умелые руки с помощью любого инструмента могут сделать качественный продукт — все дело в мастере.
Php язык программирования минусы
PHP (Hypertext PreProcessor, «препроцессор гипертекста») — скриптовый язык программирования. Имеет открытый исходный код. Изначально создавался для разработки веб-приложений, но в процессе обновлений стал языком общего назначения.
Освойте профессию «Backend-разработчик на PHP»
Где используется PHP
Язык программирования PHP спроектировал датский программист Расмус Лердорф в 1995 году как инструмент для создания интерактивных и динамических веб-сайтов. Сейчас PHP активно используют веб-разработчики для создания сайтов и веб-приложений. Это наименее конкурентный язык для работы. Его использует большинство сервисов, и, скорее всего, ситуация не изменится в ближайшие 10 лет. Поэтому специалисты очень востребованы.
Основная область применения — разработка скриптов, которые работают на стороне сервера. Также можно создавать скрипты командной строки и GUI-приложения (приложения с графическим интерфейсом пользователя).
PHP используется в проектах разных масштабов: от браузерной игры и социальной сети до крупных веб-приложений в интернете, таких как Facebook, ВКонтакте, Google, W3C, Yahoo, NASA. На PHP написаны многие системы управления контентом (CMS), например Drupal, WordPress, Joomla. Также он использовался при разработке популярных фреймворков для создания сайтов, например Yii2, Laravel, Symfony.
Изучайте язык, на котором написано абсолютное большинство сайтов
Свойства PHP
PHP — язык с динамической типизацией. Это означает, что переменная не определяется жестко и заранее (если число, то int, если строка — string). Динамическая типизация позволяет присваивать одной и той же переменной несколько значений: она может быть массивом, строкой, числом, объектом и т. д. Динамическая типизация удобная и гибкая, но приводит к потреблению большого количества оперативной памяти и уменьшает скорость работы.
Также PHP — интерпретируемый язык. Это означает, что код, который написан на PHP, не компилируется (преобразуется в машинный), а выполняется строка за строкой с помощью программы-интерпретатора, которая читает каждую из них и выполняет то, что там указано.
Чем PHP отличается от других языков программирования
CSS- и НТМL-файлы, как и файлы изображений, сервер отправляет сразу клиенту (браузеру), независимо от содержания. В отличие от них PHP-файлы содержат код, который интерпретируется на сервере. Клиент (браузер) получает не сам PHP-код, а результат его исполнения, который, как правило, является чистым CSS и HTML. Пользователь не может увидеть исходный код программы. Это хорошо с точки зрения безопасности, так как в этом случае трудно понять логику сайта.
PHP хранит состояние, созданное в текущий момент времени. В отличие от классических компилируемых языков программирования, которые работают все время от запуска до остановки программы, PHP-скрипт начинает выполняться с момента обращения веб-сервера и заканчивает (забывает все, что знал), когда возвращает сгенерированный пакет данных обратно веб-серверу.
1. Входящее соединение принимает и анализирует веб-сервер. Происходит интерпретация и формируется ответ.
2. Как правило, результат работы PHP-интерпретатора (программы, выполняющей PHP-код) — HTML-код. На этом этапе PHP-скрипт преобразуется в статический HTML-код, который может читать браузер. В процессе работы PHP может использовать MySQL — свободную систему управления базами данных (БД). Она выполняет обмен информацией с сервером базы данных на согласованном языке (SQL). Сервер базы данных и веб-сервер образуют тандем, читающий и записывающий информацию и данные, предоставляя их посетителям сайта.
3. БД отправляет данные PHP-скрипту, который расставляет их по нужным местам страницы или пакета данных и формирует окончательный ответ. Ответ отправляется обратно веб-серверу, который и возвращает клиенту страницу или пакет данных.
Возможность комбинировать PHP- и HTML-код позволяет создавать динамические страницы, которые показывают каждый раз разную информацию в зависимости от полученных от пользователя данных или настроек.
Станьте РНР-программистом — эта профессия идеально подходит
для входа в IT
Особенности синтаксиса
Синтаксис языка берет начало из C, Java и Perl. Классический PHP-сценарий представляет собой набор выражений. Каждое из них начинается с новой строки и заканчивается точкой с запятой. Выражение — это инструкция, по которой PHP-интерпретатор выполняет одно действие, например умножает числа, выводит информацию на экран.
Вот так выглядит самый простой сценарий, который выводит на экран строку «Hello world!»:
Коды PHP и HTML могут встраиваться вместе в файле с расширением PHP, например в index.php. Вот тот же пример, но расположенный внутри HTML:
Фрагмент ?> сообщает серверу, где заканчивается PHP-сценарий. Если после кода в документе ничего не следует, фрагмент ?> не обязателен.
Версии PHP и их различия
PHP 3.0. Первая версия, напоминающая современный интерпретатор, вышла в 1997 году. Главное преимущество — возможность расширения ядра и добавления дополнительных модулей сторонними разработчиками. В версии 3.0 появилась поддержка ООП-синтаксиса. Также был усилен и сам синтаксис языка.
PHP 4.0. Появилась в 2000 году и получила обновленный движок Zend Engine (название сложилось из имен его создателей — владельцев Zend Technologies). Значительно улучшилась производительность. Версия стала поддерживать больше серверов и HTTP-сессий. Обработка вводимой пользователем информации стала безопаснее. Были созданы несколько новых языковых конструкций.
PHP 5.0. Вышла в 2004 году. Появлению предшествовали серия пререлизов и долгая разработка. Язык управляется обновленным ядром Zend Engine 2.0 с принципиально новой объектной моделью и прочими дополнениями.
PHP 7.0. Вышла в 2015 году. Увеличилась производительность: появилась возможность обрабатывать больший объем трафика теми же ресурсами веб-сервера. В новой версии стало доступно указывать тип возвращаемых из функции данных, добавился контроль передаваемых типов для данных и новые операторы.
PHP 8.0. Это последний вариант, который был выпущен в конце 2020 года. Язык получил поддержку union-типов (структур данных или значений, которые могут иметь несколько различных представлений), аннотации (атрибуты), а также компиляцию байт-кода в машинный код во время работы программы (JIT-компиляцию). Microsoft решили не поддерживать версию 8.0 для Windows, поэтому теперь эту работу проводят участники из сообщества, заинтересованные в работе PHP на операционной системе.
Плюсы и минусы
Плюсы
- Для PHP есть множество баз данных, фреймворков и библиотек.
- Язык бесплатный, код находится в открытом доступе.
- Язык гибкий и предоставляет много свободы.
- PHP совместим практически со всеми современными серверами.
- Простой синтаксис.
- PHP подходит новичкам, ему легко научиться и практиковать полученные знания можно почти сразу.
- Язык имеет простую систему объектов и классов.
Минусы
- Для работы с PHP желательно знание HTML и CSS.
- Из-за простоты и гибкости PHP сложно поддерживать. Написать плохой код очень легко, найти ошибку — тяжело.
- PHP — не очень производительный язык. Его конкурент JavaScript быстрее.
- Из-за смеси PHP и HTML на многостраничных сайтах может быть затруднительно найти необходимую часть кода.
- В названиях функций стандартной библиотеки отсутствует четкая система: одни имеют сокращения и подчеркивания, другие — нет. Иногда в названиях функций для работы со строками встречаются обозначения str, а иногда их не бывает.
Освойте backend-разработку с нуля и получите работу в IT. Изучите backend SQL и работу с базами данных, освойте основы администрирования и фреймворк Laravel