PHP гораздо лучше, чем вы думаетеИсточник: habrahabr Inori
Последнее время PHP гнобят все, кому не лень, даже довольно-таки разумные люди. Когда Jeff Atwood создал свой очередной пост, направленный против PHP, это заставило меня задуматься о хороших сторонах этого языка. Самая главная проблема всех этих статей в том, что люди, которые их пишут, застряли в старых временах PHP. Прежде чем начинать говорить о достижениях PHP сообщества за последнее время, давайте посмотрим на некоторые интересные цифры: PHP используется как основной язык на 77,9% среди всех сайтов, где язык платформы известен. Wordpress используется в 16,6% среди всех сайтов мира. Если вы посмотрите на топ 3 CMS, Wordpress на первом месте с 54,3%, Joomla на втором с 9,2% и Drupal на третьем с 6,8%. Топ 3 продукта, все написаны на PHP. Это не спроста: в PHP явно что-то сделано верно, не находите? Давайте я вам рассскажу маленький секрет успеха PHP: не смотря на все изменения за последние годы, PHP все еще является наипростейшим языком для изучения не-техническими людьми; PHP позволяет создавать динамичные вебсайты быстрее, чем любая другая технология, позволяет поднимать сайты дешево и без заморочек. Вполне возможно, что PHP не самый лучший язык в мире с точки зрения проектирования, но он позволяет быстро достигать целей, и с этим не поспоришь.
PHP: ЯзыкВ PHP 5.0 (вышедшем в 2004) ввели стабильную объектную модель… стоп стоп. Я же говорю о чем-то, что было почти 8 лет назад. Давайте-ка вернемся в настоящее. В современном релизе PHP, 5.4, есть все плюшки, о которых вы могли бы мечтать, пользуясь современным веб языком: да, PHP поддерживает пространства имен; да, PHP поддерживает замыкания; да, PHP поддерживает типажи (traits). На это ушло время, но PHP 5.4 включает в себя немного синтаксического сахара, который делает процесс разработки лучше: да, PHP поддерживает [] для обозначения массива; да, PHP поддерживает вызов метода на созданном объекте ((new Foo())->bar()); да, PHP поддерживает вызов элемента массива из произвольного выражения ($foo->bar()[1]). В PHP учатся на своих ошибках: register_globals и magic_quotes убраны с потрохами. И напоследок, в PHP встроен веб-сервер, упрощающий локальное тестирование… и он запускается в считанные миллисекунды. Задача на будущее: как "обновить" все гайды по PHP в интернете? Какой лучший способ поддержки вебсокетов в PHP проекте?
PHP: ЭкосистемаХороший язык - это круто, но отличная экосистема - это еще круче. И экосистема PHP очень сильно развилась за последние годы.
GitЯ не буду вдаваться в подробности этого пункта. Git повсюду, и в мир PHP он влился довольно быстро. Практически все основные PHP библиотеки, фреймворки и продукты используют Git, включая сам PHP.
ComposerДва года назад мне очень хотелось избавиться от страшного PEAR-хака, который я использовал в symfony 1 для поддержки плагинов. Мне хотелось заменить его на что-то, что могло управлять зависимостями на уровне проекта, а не иметь глобальный установщик как PEAR. Управление зависимостями - не простая задача, поэтому я попытался найти наилучший алгоритм для её решения. Я просмотрел все: от Perl до Ruby, от Debian до RedHat. Ни один не был удовлетворительным - кругом самопальные решения, которые просто работают… эмпирически. А потом я наткнулся на ZYpp. Это было оно. В ZYpp используется SATанализатор для управления зависимостями. И теперь, благодаря колоссальной работе Nils Adermann и Jordi Boggiano, у PHP есть один из лучших менеджеров зависимостей, Composer. Да, у PHP сейчас лучший менеджер зависимостей из всех языков. И благодаря Git, Composer и встроенному серверу PHP скачивать, устанавливать и тестировать PHP проекты еще не было так просто! Хотите попробовать Symfony (используя PHP 5.4)?
Хотите попробовать Silex?
Не слышали о Composer? А он того стоит. Загляните на Packagist - основной репозиторий для Composer: в нем уже находится более 1900 пакетов и они были установлены более миллиона раз меньше чем за 3 месяца. Задача на будущее: внедрить Composer в следующую версию PHP?
СотрудничествоСотрудничество внутри сообщества - самый важный пункт в этом посте, то, чем я больше всего горжусь. Мы начинам видеть все больше и больше сотрудничества между различными PHP проектами, даже между очень большими, такими, которым, казалось бы, и не надо ни с кем считаться. phpBB, Drupal, ez Publish, Symfony, phpDoc, PHPUnit, Behat, Zikula, Propel, Doctrine, Midgard и многие другие имеют совместный код. Да, они "конкуренты", но они все поняли что интероперабельность - это круто. И Composer в этом большой помощник. Задача на будущее: убедить еще больше проектов влиться в тренд?
Напоследок:PHP, возможно, не лучший язык в мире, и я далеко не первый, кто пытается говорить о его плюсах, но PHP - это лучшая веб платформа… и точка. P.S. Это перевод статьи PHP is much better than you think, написанной Fabien Potencier. Честно пытался отметить топик, как перевод, но так и не нашел где. |