Заметил последнее время много шума вокруг асинхронных инструментов в php. В PHP дайджесте на Хабре даже отдельный раздел под это завели. Из того, что я более-менее видел, это https://reactphp.org/) и https://www.php.net/manual/ru/book.swoole.php. Кстати, много интересной информации по этим инструментам можно почерпнуть в блоге моего коллеги Сергея Жука https://sergeyzhuk.me/reactphp-series.
Но меня во всей этой теме интересует один главный вопрос, на который я пока не нашел ответа. Зачем? Все это выглядит как попытка заставить легковой автомобиль летать. Это можно конечно сделать, если постараться, но нафига, если можно полететь на самолете. Насколько я понял все эти инструменты довольно специфичные и просто так взять и сделать Symfony приложение асинхронным у нас не получится. Мы нарвемся на кучу ограничений и магических багов и очень вероятно, что будем натыкаться на них и в будущем.
Я пару лет назад начал писать на go. Это отдельная история как и почему, сейчас не об этом. Мне кажется нет смысла объяснять отдельно как выглядит асинхронность там. Когда приходится сталкиваться с задачами, где действительно требуется утилизировать ресурсы или где милисекунды решают, то я вряд ли буду смотреть в сторону ReactPHP, а скорее решу эту задачу на go, потому что он создавался как раз для подобных задач, а вот php совсем для других.
Не спорю, что PHP последнее время активно развивается. Но о полноценной асинхронности говорить сейчас бесполезно, ее нет даже на горизонте и будет ли никто не знает. И пока это так, лично я буду гвозди забивать молотком, а саморезы вкручивать шуруповертом, а не пытаться и те и те забивать молотком, потому что других инструментов я не знаю.
Post #23
176