php 2021 стоит ли учить

Стоит ли изучать PHP в 2021 году

PHP остается одним из самых востребованных языков разработки серверной части веб-приложений. Его альтернативы даже суммарно занимают меньший рынок.

Кроме того, зарплата у PHP-специалиста сопоставима с другими направлениями разработки, причем, порой более сложными. К примеру, Ассемблер-разработчик получает по статистике меньше, чем PHP-программист, в то время как Ассемблер считается более сложным языком.

Язык PHP достаточно прост для изучения, что является и плюсом, потому что уже буквально через несколько месяцев изучения можно начинать работать в позиции младшего инженера-программиста. Но это же и является минусом, потому что за такой короткий период стать квалифицированным специалистом нельзя, и в сферу разработки приходят разработчики, не знающие ни Объектно-Ориентированного Программирования (ООП), ни шаблонов проектирования, а значит создающие некачественные приложения, которые трудно поддерживать.

У меня гуманитарное образование и 15 лет назад я освоил PHP самостоятельно по статьям в интернете. Что еще раз подтверждает, что разобраться в языке и начать что-то на нем делать можно довольно быстро, без вложений времени и денег в высшее образование или многолетние курсы.

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

С одной стороны — это хороший способ быстро разобраться, и также быстро начать делать реальные проекты. С другой — прежде чем изучать PHP, нужно неплохо знать принципы верстки и хотя бы основы JavaScript.

Язык позволяет быстро перейти от теории к практике, миновав процесс изучения классических подходов, поэтому, если у вас за плечами есть знания и хотя бы минимальный опыт в другом языке с ООП парадигмой, например, С++, или Java, или C#, тогда вы гораздо быстрее будете развиваться в PHP как качественный разработчик. А значит за короткий срок сможете пройти стадию младшего-инженера и начать получать интересные задачи и хорошую зарплату.

Источник

PHP в 2021 году

стоит ли изучать PHP в 2021 году

Если вы новичок в веб-программировании, возможно стоите на распутье и сомневаетесь куда двигаться дальше, то вам определенно стоит почитать этот пост

Так же, как в 2020 и 2019 годах подведем итоги о том, стоит ли изучать PHP в 2021 году.

Как я говорил в предыдущих постах: PHP уже не тот язык, которым был десять лет назад, и мы все очень благодарны за это. Это достаточно быстрый и надежный язык, используемый для создания масштабных приложений. Итак, давайте обсудим некоторые из наиболее заметных изменений PHP за последний год для языка и сообщества.

PHP 8 и дальше

Новая основная версия PHP 8 появилась в конце прошлого года. Я много писал постов по этой теме, и не буду повторять все это здесь. В принципе все как обычно, производительность только улучшается, и тесты это доказывают.

Есть JIT, который, улучшает производительность некоторых проектов, а также предварительная загрузка, которая имеет в целом положительное влияние, если вы не используете shared хостинг.

Я думаю, что такой функционал, как атрибуты (также известные как «аннотации»), именованные аргументы и объявляемые свойства в конструкторе также заслуживают упоминания, поскольку они определенно способствовали тому, что PHP 8 стал таким замечательным выпуском.

Тем временем основная команда уже работает над следующей версией PHP 8.1, которая будет выпущена где-то к концу 2021 года. На данный момент наиболее важными функциями являются перечисления (Enum) и файберы (Fiber).

Год за годом основной команде удается представить сообществу новый стабильный выпуск, наполненный множеством функций и качественных улучшений. Путь обновления также не так уж и сложен. Я уже обновил некоторые из моих собственных проектов с PHP 7.4 до PHP 8, и это заняло от 30 до 60 минут на проект. На самом деле нет никаких веских причин оставаться на старых версиях!

Система типов PHP

К сожалению, дженерики по-прежнему не поддерживаются. Есть несколько серьезных препятствий этому, особенно с учетом того, что мы все еще имеем дело с языком с динамической типизацией. О возникших проблемах Никита Попов написал здесь. А вот, например, автор блога stitcher.io Брент описал подход, который был бы простым выходом: поддерживать дженерики, не во время выполнения, а полагаться на статический анализ. Это так же потребует изменения мышления в сообществе PHP в целом. Может быть, однажды это станет жизнеспособным вариантом, но пока что нет.

Асинхронный PHP

Несмотря на то, что сами файберы могут быть лишь маленькой шестеренкой в ​​том, что является большой асинхронной машиной, RFC снова вызвал интерес в асинхронном сообществе, чему мы можем только радоваться. Популярность асинхронных фреймворков, таких как Amphp и ReactPHP, растет, и недавно тот же Laravel объявил о встроенной поддержке Swoole и RoadRunner.

Composer 2.0

Говоря о композере, мне нравится измерять текущее состояние экосистемы PHP, просматривая доступные пакеты с течением времени. В прошлом году я говорил о ±25 миллионах загрузок в день, сегодня это число увеличилось более чем вдвое, и мы уже видим ±60 миллионов загрузок в день.

php 2021 стоит ли учить. Смотреть фото php 2021 стоит ли учить. Смотреть картинку php 2021 стоит ли учить. Картинка про php 2021 стоит ли учить. Фото php 2021 стоит ли учить

Давайте закончим напоминанием обо всем, что было добавлено в PHP за последние годы. Если вы не следите за его развитием, вам действительно стоит изучить этот список. Я думаю, что это показывает рост сообщества и основной команды разработчиков за последние годы, и я уверен, что это еще не все.

php 2021 стоит ли учить. Смотреть фото php 2021 стоит ли учить. Смотреть картинку php 2021 стоит ли учить. Картинка про php 2021 стоит ли учить. Фото php 2021 стоит ли учить

Веб-разработчик со стажем программирования более 9 лет, всегда в процессе учебы и созидания.

Источник

Актуален ли PHP в 2021 году?

Фокус внимания давно переместился с PHP на JavaScript и Python. Тем не менее у него выходят новые версии, а тесты производительности говорят о неплохом прогрессе. Насколько актуален PHP сегодня? Под катом — размышления разработчика, который продолжает отдавать ему предпочтение.

php 2021 стоит ли учить. Смотреть фото php 2021 стоит ли учить. Смотреть картинку php 2021 стоит ли учить. Картинка про php 2021 стоит ли учить. Фото php 2021 стоит ли учить

Краткая история PHP

PHP разработал Расмус Лердорф в 1994 году. Лердорф создал набор скриптов, которые отслеживали посещения его онлайн-резюме, и назвал их Personal Home Page Tools («инструменты личной домашней страницы»). Со временем название превратилось в PHP Tools. Он пополнял этот набор новыми инструментами, а потом решил переписать их: добавил взаимодействие с базами данных и многое другое. Так набор превратился во фреймворк.

Дальше эти инструменты продолжали эволюционировать в еще более сложные примитивы, а после публикации кода в open source в 1995 году число пользователей стало расти заметно быстрее. Если вас интересуют подробности этой истории, вы можете найти их на официальном сайте PHP.

Последняя версия языка сейчас — PHP 8.0.

А что не так с PHP?

Уже долгие годы этот язык — мишень для критики. Люди справедливо упрекают его за проблемы в работе, особенно старые версии. Лердорф разрабатывал PHP как язык шаблонизации, а не как полнофункциональный язык программирования. Поэтому у него есть ряд недостатков, которые сильно усложняют поддержку и разработку крупных приложений.

Слабая типизация

Лично мне в этом языке не нравится слабая типизация, позволяющая сочетать разные типы и выполнять их неявные преобразования. Рассмотрим такой пример:

Результатом этих операций будет число 4, то есть в контексте оператора сложения язык преобразует числа в строке в целочисленные значения. В некоторых случаях это может оказаться желательным или позволит сэкономить пару строк кода, но чем больше становится проект, тем сложнее будет поддержка.

В поздних версиях языка начали появляться предупреждения о подобных странных и недопустимых операциях, то есть они признаны устаревшими или скоро ими станут.

Отсутствие пространств имен

Поддержка пространств имен была добавлена в PHP в версии 5.3. В более старых проектах приходилось создавать собственные типы пространств имен, в основном при помощи добавления пространств имен к названиям классов и методов. Из-за этого приходилось использовать повсюду абсурдно длинные имена.

В более поздних версиях языка таких проблем нет.

Противоречивые функции стандартной библиотеки

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

Вот некоторые примеры противоречивости наименований в строковых методах из документации:

Суперглобальные переменные

И что хорошего в PHP?

Язык на многих произвел плохое впечатление, но за последние годы он сильно улучшился. Благодаря релизу PHP 7 язык модернизировался, в его основе появилось множество приятных особенностей, повысились скорость работы и удобство пользования.

Type hints

Это один из моих любимых способов модернизации старого кода на PHP: использование необязательных type hints, выполняющих преобразование типов, а также обеспечивающих документацию кода. Рассмотрим простую функцию:

Если добавить type hints, код станет таким:

Просто увидев сигнатуру функции, мы понимаем, что она ожидает строковое значение и вернет булев-результат. Можно добавить, что здесь полезно было бы применить правильное наименование, однако эти type hints гарантируют, что значения будут именно указанных типов и предоставляют IDE возможность автодополнения и статического анализа с предупреждениями и другими полезными вещами.

С версии 7.4 PHP позволяет задавать и типизированные свойства для классов:

Это означает, что у объектов Person будут строковые имя и фамилия, возраст в integer и допускающая пустое значение строка для должности. Чем больше классов — тем полезнее эта возможность.

Улучшения синтаксиса

В поздних версиях PHP появилось много синтаксических улучшений:

именованные аргументы: array_fill(start_index: 0, num: 100, value: 50);

разделитель числовых литералов: 299_792_458

Помимо синтаксических он содержит возможности для комплексных улучшений.

Constructor promotion

Взгляните на класс Person :

Вместо этого избыточно многословного кода PHP 8 поддерживает возможность написания такого кода:

Nullsafe-оператор

Этот оператор существовал в некоторых других языках наподобие JavaScript, но PHP его не поддерживал. Взгляните на код, который я взял из документации PHP:

Именно так писали логику в старых версиях PHP для учета проверок на null. Новый nullsafe-оператор позволяет свести это к такому коду:

Разве не великолепно?

Объединенные типы

Хоть для меня это и не самая любимая штука, она все равно ценна в случаях, когда уже есть несколько возможных типов без type hints. Объединения позволяют определять в качестве вариантов несколько типов значений. Благодаря объединениям становится работающим вот такой код:

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

Производительность

У меня нет четких данных для сопоставления производительности с другими языками, но по сравнению с предыдущими версиями скорость работы кода PHP заметно выросла. В дополнение к рывку, сделанному PHP 7 по сравнению с PHP 5.6, все последующие релизы вносили улучшения, и эта тенденция продолжается. Проведенные Phoronix бенчмарки демонстрируют, что последняя версия PHP 8 в три с лишним раза быстрее PHP 5.6. В посте по ссылке выше есть подробные тесты, так что их стоит изучить.

В дополнение к этим бенчмаркам Kinsta также провела реальные испытания с WordPress. Вот результат для WordPress 5.3.

php 2021 стоит ли учить. Смотреть фото php 2021 стоит ли учить. Смотреть картинку php 2021 стоит ли учить. Картинка про php 2021 стоит ли учить. Фото php 2021 стоит ли учить

Точные цифры замеров таковы:

Результаты бенчмарка WordPress 5.3 с PHP 5.6: 97,71 запросов/с

Результаты бенчмарка WordPress 5.3 с PHP 7.0: 256,81 запросов/с

Результаты бенчмарка WordPress 5.3 с PHP 7.1: 256,99 запросов/с

Результаты бенчмарка WordPress 5.3 с PHP 7.2: 273,07 запросов/с

Результаты бенчмарка WordPress 5.3 с PHP 7.3: 305,59 запросов/с

Результаты бенчмарка WordPress 5.3 с PHP 7.4: 313,42 запросов/с

Пока в эти бенчмарки не включен PHP 8, однако видно, что даже версия 7.4 способна обрабатывать в три раза больше запросов по сравнению с 5.6, и это серьезное улучшение.

Вывод

В целом PHP за последние годы значительно улучшили, и с ним стало удобно работать. Я профессионально пишу на Golang, PHP и Python, но больше всего опыта у меня в PHP, поэтому я могу быть пристрастен. Однако, по моему мнению, PHP нашел идеальный баланс между гибкостью и поддерживаемостью.

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

Тем, кто разочаровался в PHP при работе с более старыми версиями, я рекомендую дать этому языку еще один шанс. Возможно, он вам все равно не понравится, но я считаю, что многие изменят свое мнение, беспристрастно взглянув на новую версию.

Источник

Обсуждаем будущее PHP

Это мертвый язык программирования или нет?

php 2021 стоит ли учить. Смотреть фото php 2021 стоит ли учить. Смотреть картинку php 2021 стоит ли учить. Картинка про php 2021 стоит ли учить. Фото php 2021 стоит ли учить

У PHP наверняка были лучшие времена. Но действительно ли он мертв?
На форумах, подобных StackOverflow, люди предполагают, что PHP мертв. У них есть верная точка зрения, или может быть, они просто не любят PHP?

Давайте посмотрим на PHP и посмотрим, есть ли будущее у этого языка программирования.

PHP все еще доминирует в Интернете

Если вы просто посмотрите на цифры, PHP определенно не умер. На сегодняшний день PHP является наиболее используемым языком программирования на стороне сервера. Примерно 75 процентов всех веб-страниц работают на PHP. Посмотрите на график ниже и посмотрите, насколько далеко PHP опережает своих конкурентов по частоте использования. Справедливо сделать вывод, что на основе этой статистики, PHP не умер, так как 75 процентов — это слишком много для мертвого языка.

php 2021 стоит ли учить. Смотреть фото php 2021 стоит ли учить. Смотреть картинку php 2021 стоит ли учить. Картинка про php 2021 стоит ли учить. Фото php 2021 стоит ли учить

Одна из причин, по которой PHP используется многими сайтами, заключается в том, что WordPress использует PHP. Доля WordPress на рынке составляет около 34 процентов всех сайтов. Это 75 миллионов сайтов.

Кроме того, есть и другие CMS, такие как Drupal (3%) и Joomla (2%), которые также занимают значительную долю рынка. И есть некоторые популярные системы управления магазинами, такие как Magento, которые занимают около 1 процента от общей доли рынка.
Многие большие системы управления контентом и магазинами используют PHP, что делает PHP важным и актуальным.

Создание сайтов с нуля

Я вижу аргумент о создании сайтов с нуля, так как многие люди, которые используют WordPress, например, не знают, как программировать. Создание сайта в WordPress не требует от вас умения писать код. Многие люди, у которых есть веб-сайт на WordPress, вероятно, даже не знают, что он работает на PHP. Таким образом, PHP все еще используется людьми, которые создают веб-сайты с нуля?

PHP был и остается очень популярным языком. Одна из причин этого заключается в том, что это действительно простой для изучения язык программирования. Это делает его отличным языком для новичков в создании сайтов. PHP можно изучать без каких-либо предварительных знаний. Я думаю, что было бы справедливо сказать, что большинство веб-разработчиков, вероятно, начинали с PHP или, по крайней мере, когда-то работали с PHP.

Программирование

Так как PHP существует с 1994 года, язык со временем стал немного загроможденным. Есть много способов создать такую ​​же функциональность, и многие из них довольно хакерские. Это создает ситуации для создания плохого кода на PHP. Очевидно, что можно написать плохой код на любом языке, но PHP делает его немного легче из-за того, как он вырос.

PHP существует так давно, и в нем есть много старых вещей. Это облегчает начало работы с PHP, но если вы будете придерживаться старого решения, вы получите неоптимальный код, который не следует передовым методам. И это то, что вы должны стараться избегать. Несоблюдение лучших практик может произойти, если вы не имеете опыта работы с PHP, поскольку не всегда понятно, какое из них является лучшим решением. Это потому, что есть много способов решить ту же проблему. Это одна из причин, почему некоторые разработчики ненавидят PHP.

С другой стороны, можно утверждать, что большинство веб-разработчиков не пишут сырой PHP. В большинстве случаев вы будете использовать какой-то фреймворк, который многое сделает для вас. Популярный PHP-фреймворк, который очень чистый — это Laravel. Преимущество работы с фреймворком состоит в том, что большая часть грязной работы выполняется под капотом. Фреймворк заставляет вас писать более чистый код.

PHP 7

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

Code wise, объявления типов и новые операторы были введены. Обработка ошибок также была улучшена.

Рабочие места

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

Если вы посмотрите на эту ссылку в разделе заданий StackOverflow, вы найдете множество заданий, требующих PHP.

Заключение

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

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

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

Так что вы думаете о PHP, есть ли будущее у этого языка программирования или он мертв?

Источник

PHP в 2021 году

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

Перескажу несколько интересных моментов.

Никита Попов (один из ключевых разработчиков PHP) поддерживает эту идею и уже начал работать над реализацией.

Но если мы говорим о constructor property promotion, то создание новых объектов в качестве значений по умолчанию для свойств уже имеет смысл и это был бы удобный синтаксический сахар.

Ещё из хороших новостей: недавно Дмитрием Стоговым была проведена работа над InheritanceCache, что по первым тестам на демо-проекте Symfony дало прирост до 8% производительности. Несмотря на то, что все классы уже давно кэшируются с помощью OPcache, с наследованием всё не так просто, его приходится проводить в runtime на каждый запрос. Теперь и тут будет встроена некая дополнительная система кэширования – Inheritance Cache.

На том же демо-проекте Дмитрий Стогов экспериментирует и над другими нюансами PHP, в частности над сериализацией и над файловым API. Т. е. улучшения производительности идут по всем фронтам!

Пара вопросов от Александра Макарова: будет ли сериализация замыканий и можно ли на уровне языка реализовать Lazy Proxy классы, которые откликаются на instanceof как оригинальные классы, но при этом инициализируют объекты лениво. Это важно для эффективной реализации контейнеров внедрения зависимостей. Краткий ответ Никиты Попова на оба вопроса: НЕТ.

С сериализацией замыканий не просто, и скорее всего решение будет неустойчивым, хрупким, будет ломаться в неожиданных краевых случаях.

А Lazy Proxy классы не нравятся Никите по принципиальным соображениям: не должен instanceofвозвращать true на какие-то lazy обёртки над классами, т. к. это ломает систему типов и вообще неправильно. Если есть какая-то функция, которая возвращает объект определённого типа, то мы не можем про саму эту функцию сказать, что она instanceof возвращаемого объекта.

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

И тут обсуждение плавно перешло к RoadRunner и фреймворку Spiral, которые не умирают на каждый запрос! В фреймворке Spiral изначально нет никакого кеширования конфигов и компиляции DI контейнера, от код фреймворка в итоге стал проще и чище, и проблем с производительностью тоже нет.

О планах развития на 2021 год рассказал Антон Титов: подчистить все хвосты и стабилизировать текущие open-source проекты: CycleORM, RoadRunner, Spiral и Temporal.

Ещё один интересный вопрос к Никите Попову: сможем ли мы использовать объекты в качестве ключей массива? Вопрос интересный и, возможно, над этим стоит поработать. Но это изменение определённо очень многое поломает, поэтому сначала хочется собрать обратную связь от комьюнити.

Также на стриме провели обзор результатов опроса русскоязычного комьюнити относительно популярных фреймворков, телеграм каналов, YouTube каналов, подкастов и проч за 2020 год.

В опросе приняли участие 1506 человек.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *