Преимущества php перед другими языками 2020

PHP в 2020 году

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

Хотя многие аргументы против PHP остаются в силе и сегодня, есть и хорошая сторона: вы можете писать чистые и поддерживаемые, быстрые и надежные приложения на PHP.

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

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

Подытожим историю

Прежде чем углубляться в детали, давайте рассмотрим, как в наши дни разрабатывается язык PHP. Сейчас мы находимся на версии 7.4, а следующей версией станет PHP 8.0 в конце 2020 года.

Начиная с поздней эры 5.*, основная команда старается поддерживать постоянный годовой цикл выпуска и преуспела в этом в течение последних четырех лет.

Читайте также:  Return class object php

В целом, каждый новый выпуск активно поддерживается в течение двух лет и получает еще один год «только исправлений безопасности». Цель состоит в том, чтобы побудить разработчиков всегда быть в курсе последних новостей: небольшие обновления каждый год легче, чем, например, переход от 5,4 до 7,0.

Наконец, PHP 5.6 был последним выпуском 5.*, с следующей версией 7.0. Если вы хотите узнать, что случилось с PHP 6, вы можете прослушать этот эпизод подкаста PHP Roundtable .

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

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

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

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

Сегодня PHP является довольно уникальным языком: он по-прежнему позволяет вам писать полностью динамически и слабо типизированный код, но также имеет гораздо более сильную систему опциональных типов. В сочетании со статическим анализом и такими инструментами, как Psalm, Phan и PHPStan, вы можете написать защищенный, строго типизированный и статически проанализированный код.

Взгляните, например, на этот фрагмент кода PHP, полностью используя его современную систему типов:

bar = $bar; > public function withInt(int $value): self < $clone = clone $this; $clone->intProperty = $value; return $clone; > public function unionTypes(int|float $input): void < // Union types will be added in PHP 8 >> 

По правде говоря, в системе типов PHP все еще отсутствует одна важная особенность: универсальность. Есть надежда, что они будут добавлены, но пока нет ничего конкретного. В случае типизированных массивов вам нужно полагаться на docblocks, чтобы получить надлежащую поддержку IDE:

/** @var int[] */ public array $arrayOfInts = []; 

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

Синтаксис PHP

Эра 7.* сделала много хорошего, сделав PHP более зрелым языком, когда дело доходит до синтаксиса. Чтобы проиллюстрировать это, я сделал не полный список новых вещей в PHP.

Нуль коалесцирующий оператор:

$value = $object->property ?? 'fallback if null'; $value = $array['foo'] ?? "fallback if key doesn't exists"; 

Оператор присваивания с нулевым слиянием:

public function get(string $input): string < return $this->cache[$input] ??= $this->sanitize($input); > 
$a = [/* … */]; $b = [/* … */]; $mergedArray = [. $a, . $b]; 
public function get(Foo . $foos): void < foreach($foos as $foo) < // … >> 

Стрелочные функции, также называемые короткими замыканиями:

$ids = array_map(fn(Post $post): int => $post->id, $posts); 
function make(array $input): Generator < foreach ($input as $item) < yield $this->doSomethingWith($item); > > 

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

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

В дни версии 5* производительность PHP была… в лучшем случае средней. Однако в версии 7.0 большие части ядра PHP были переписаны с нуля, что привело к увеличению производительности в два-три раза. Кроме того, каждая версия 7.* оказала положительное влияние на производительность.

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

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

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

Фреймворки и экосистема

Переходя к тому, что сделано сообществом с помощью PHP. Давайте будем ясны: PHP больше не просто WordPress.

В общем, есть две основные платформы веб-приложений и несколько более мелких: Symfony и Laravel. Конечно, есть также Laminas, Yii, Cake, Code Igniter и т.д. — но если вы хотите знать, как выглядит современная PHP-разработка, вам нужно поработать с одним из первых двух.

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

Эти фреймворки предназначены для фактического развития; если вам нужно чистое управление контентом, такие платформы, как WordPress, CraftCMS и Statamic, улучшаются все больше и больше.

Один из способов измерить текущее состояние экосистемы PHP — взглянуть на Packagist, основной репозиторий пакетов для PHP. Он показывает экспоненциальный рост. С ±25 миллионами загрузок в день, можно сказать, что экосистема PHP — не такая слабая, какой была.

Посмотрите на этот график, перечисляющий количество пакетов и версий с течением времени. Его также можно найти на веб-сайте Packagist.

Помимо фреймворков и CMS, мы также наблюдаем рост асинхронных фреймворков в последние годы. Это среды и серверы, написанные на PHP или других языках, которые позволяют пользователям запускать действительно асинхронный PHP код. Некоторые крупные игроки — это Swoole, Amp и ReactPHP.

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

Кроме того, в списке рассылки о внутреннем оборудовании говорилось о том, чтобы добавить libuv в ядро. Для тех, кто не знает о libuv: это та же библиотека, которую Node.js использует для обеспечения всей ее асинхронности. Кто знает? PHP 8 может быть версией, добавляющей его в ядро!

В заключение

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

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

Таким образом, в то время как у языка определенно есть свои недостатки и 20-летнее наследие, чтобы его носить с собой; Я могу с уверенностью сказать, что мне нравится работать с ним.

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

Источник

Зачем писать на PHP в 2020? Холиварим в режиме интерактивного подкаста на Youtube в этот четверг

В начале июня один из ведущих «Цинкового прода» разместил на Хабре резонансную статью «Какая ниша у языка и поможет ли PHP8 решить [его] насущные проблемы (спойлер: имхо, нет)». Незадолго до этого мы решили, что пора бы сделать доклад, зачем выбирать PHP, когда вокруг расцветают сто цветов языков. Эти вещи так совпали по времени, что захотелось устроить совместный эфир и обсудить нишу и перспективы языка — с разных точек зрения.

Подключайтесь к трансляции 18 июня в 20 часов по Москве — комментарии на ютубе обязательно попадут в выпуск. А может и с голосовым общением что придумаем.

  • Постоянные ведущие подкаста «Цинковый прод» — Антон Околелов, Никита Васильченко и Олег Грицак.
  • Максим Шамаев — автор докладов об опыте перевода древнего проекта на PHP 7, построении трассировки и логирования между микросервисами и готовящегося доклада «Зачем сегодня писать на PHP».
  • Александр Майоров, много пишет про PHP и Python на портале Geekjob.

2. Если вы не любите ютуб или не сможете подключиться к лайву, запись аудиоверсии выйдет на Soundcloud, Яндекс.Музыке, Apple Podcasts и других платформах в 20-х числах июня.

3. Что обсудим — во многом, разговор будет импровизацией на час с небольшим. Но какое-то направление мы набросали: если кажется, что что-то важное упущено, а что-то можно и опустить, не стесняйтесь писать об этом и закидывайте свои предложения. Пока среди мыслей:

  • Как и кем формируется рынок PHP-разработки, кто по факту решает, на чем писать и переписывать проекты.
  • Тяжелое детство, взросление и текущее состояние 25-летнего языка — что поправили, что научились решать иначе. С чем и кто обычно столкнется в реальности. И что из того, что хочется, реально нужно.
  • Почему PHP, который хоронят лет 20, может быть “новым коболом” — и какая кому от этого выгода.
  • Посравниваем с другими языками: ну куда же без этого. И, конечно, обсудим саму статью и реакцию на нее.

Источник

Почему PHP все еще популярен в 2020

PHP – один из старейших языков программирования, используемых разработчиками по всему миру. Он широко используется в веб-разработке. PHP служит основным компонентом некоторых крупнейших платформ, таких как WordPress и Drupal.

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

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

  1. WordPress
    Самое популярное решение CMS, WordPress основано на PHP. Все больше и больше сайтов создается с использованием WordPress. PHP – универсальный язык, и в области специализации он король. Язык гибкий, масштабируемый и настраиваемый.
  2. Легко выучить
    В отличие от многих других языков программирования, которые следует крутой кривой обучения, PHP сравнительно прост в изучении. С помощью PHP вы можете создать рабочую динамическую веб-страницу с базой данных за пару дней. Язык программирования мощен во всем, что он может сделать в области веб-разработки.

Источник

Оцените статью