Почему php плохой язык

от admin

Стоит ли учить PHP в 2022 году

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

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

Что из себя представляет PHP

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

Отличная производительность. Команда CORE PHP разработчиков выполнила гигантскую работу по оптимизации PHP и сделала его более производительным. Так, например, в своей статье Дмитрий Стогов приводит бенчмарк для версии PHP 7.0, где демонстрируется, что PHP обходит по производительности своих конкурентов, таких как Python и Ruby, и даже не сильно отстает от Java с выключенным JIT.

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

Эффективный синтаксис языка. Хотя PHP часто критикуют за то, что он сделан академически неправильно, у него есть одно безусловное преимущество: его универсальные конструкции достаточно эффективны, чтобы на них решать большую часть задач и не тратить время на выбор подходящей структуры данных. В итоге достигается большая скорость разработки, а это именно тот фактор, который решает, будет ли проект успешен или нет. Как бы программисты не рассуждали о том, что на определенном языке невозможно сделать хороший проект, а на другом можно, все же ключевой показатель – это Time-To-Market. И вот тут PHP – король!

Разумеется, в PHP работа со строками сделана не так круто, как в Python, а конструкция switch/case не насколько богата, как в том же Swift, но, во-первых, работа в эту сторону ведется, а во-вторых, возможностей современного PHP уже достаточно для решения большинства задач в элегантной манере. Как говорится, CodeWars вам в помощь!

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

Современные фреймворки. Хаос в мире PHP, когда каждый школьник писал своей велосипед непонятного качества, подходит к концу. На рынке определился устойчивый стек технологий, знание которого ожидают от разработчика. В данном случае для разработки малых и средних проектов принято использовать Laravel, а если вам нужно сделать полноценную корпоративную систему, то лучше выбрать Symfony. Для работы с базой принято использовать Doctrine, который является фактически реализацией Hibernate из экосистемы Java. Это все – современные решения, которые впитывают в себя лучшие практики и активно развиваются большим комьюнити разработчиков. Работа с этими инструментами ведется удобно и эффективно.

Конечно, на рынке есть множество CMS систем, которые также эволюционируют и развиваются. И более того, как раз на поддержку таких систем можно найти первую работу и начать строить свою карьеру в IT. Но нужно понимать, что эпоха, когда у каждой компании есть сайт , заканчивается. Теперь принято использовать либо социальные сети, либо сайты построенные на конструкторах (wix/shopify/bigcommerce/tilda и так далее). Кстати, все эти конструкторы написаны на PHP и оцениваются в миллиарды долларов. Неплохо так для синего слоника!

Удобный туллинг. Разработка проекта – это не только написание бизнес логики, но и поддержание кода проекта в надлежащим виде. Для этого в мире PHP есть отличные инструменты: дебага (xdebug), оптимизация кода (blackFire),написание тестов (phpUnit), автоматический формат кода под стандарты (code_sniffer), а также статические анализаторы кода (PHPStan) и миграции на новые версии PHP и популярных фреймворков (rector).

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

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

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

Учебные материалы и профессиональная литература. С релизом PHP 7.0 язык перешел в категорию клевых языков программирования, поэтому для него стали писать книги и записывать курсы настоящие профессионалы своего дела. Поэтому сейчас можно найти множество хороших онлайн-курсов на PHP, бесплатных туториалов на YouTube и книг по PHP с Laravel и Symfony.

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

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

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

Поэтому если есть желание сделать работу, от которой будет зависеть работа тысяч PHP-разработчиков – never give up on your dreams. Это возможно независимо от возраста!

Никита Попов начал участвовать в развитии PHP c 13 лет

Никита Попов начал участвовать в развитии PHP c 13 лет

Что по ситуации на рынке с PHP

После того, как мы определились с тем, что PHP – клевый и производительный язык программирования, поговорим о ситуации на рынке: на что может рассчитывать человек, который посвятит свое время работе на PHP. Ведь именно от того, на каких проектах будет работать человек, зависит его карьера и финансовые возможности.

Достаточно быстрый старт карьеры на PHP. Если мы посмотрим на Python или Ruby, то обнаружим, что начальные позиции требуют достаточно высокого уровня компетенции разработчиков. И причина заключается в том, что на Ruby и Python не пишут «стандартные» проекты. Каждый проект на Python (Ruby) представляет собой кастом. Без коммерческого опыта, если вы не являетесь выпускником топового вуза, попасть на такой проект достаточно сложно.

На PHP ситуация совершенно другая. Тут большое количество стандартных проектов, на которых можно начинать свою карьеру и набивать руку, печатая значок доллара в PhpStorm. Да, это будут не самые передовые и интересные проекты, но вы начнете свою карьеру, пока на другом стеке вам нужно было бы все еще бежать за поездом it-индустрии. А дальше нужно лишь добрать знания и опыт и можно переходить на кастом (Symfony или Laravel).

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

Огромное количество досягаемых компаний. Когда идет обсуждение вакансий, многие приводят цифры, что условно на Django 60к вакансий, а на Laravel только 11к. Но если посмотреть географию этих вакансий и прикинуть ваши шансы устроиться на них без серьезного опыта и хорошего английского языка, окажется, что в СНГ на Laravel вакансий больше,чем на Django. Ну и естественно ваши шансы также выше!

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

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

Совсем недавно, я привел характеристики топовых компаний и предложил список компаний на PHP-стеке, которые считаю отличными. Ознакомиться со статьей вы можете по ссылке — «Tier-1 компании на рынке PHP в РФ«.

Работа с возражениями по PHP

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

Низкие зарплаты на PHP. Да, действительно, разработчики на PHP в целом получают на 15-25% меньше, чем получают разработчики на Java, Go или тот же Swift. Но такая разница достигается за счет того, что на PHP много дешевых вакансий на поддержку не самых сложных CMS систем, а на том же Java топовые вакансии уходят куда-то в космос по деньгам и по сложности.

Если мы берем в целом middle разработчика на PHP (Symfony) и middle Java (Spring) разработчика, то разница в зарплате будет незначительной. При этом дорасти до middle уровня на PHP можно гораздо быстрее и приятнее, чем это делать на Java.

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

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

Все достаточно ровно по стекам

Все достаточно ровно по стекам

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

Поэтому нет никакого массового бегства PHP-разработчиков на GO. Есть разумное понимание, что нужно писать на PHP, а что писать на GO. От PHP никто не отказывается.

Плохие проекты на PHP. Да, действительно, на PHP, в силу наличия огромного числа различных CMS, есть множество проектов сомнительного качества. Но это не говорит о том, что все проекты на PHP плохие! Просто на том же Python или Java нет способа легко и быстро поднять несложные сайты, а на PHP эта возможность есть.

Если бы кто-то создал на Python удобную CMS систему (Django CMS не считаем, ибо она просто не может тягаться по удобству с CMS на PHP), то на Python также было много проектов низкого уровня.

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

PHP никому не нужен. Не нужно путать маркетинговый мусор и реальную ситуацию на рынке. То, что из каждого утюга говорят про Python и рекламируют его курсы, а про PHP никто ничего не говорит, никак не отражает реальную ситуацию на рынке востребованности той или иной технологии. Так, например, в своей статье «Сколько на самом деле вакансий на Python в веб-разработке (на примере Москвы)» я показал, что у нас чисто веб-вакансий на Symfony и Laravel больше, чем веб-вакансий на Python.

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

Презрение к PHP в IT-индустрии. Мнение, что на PHP пишут плохие проекты плохие программисты появились в IT-индустрии тогда, когда действительно на PHP писалось много плохих проектов не самыми опытные программистами. И это происходило по той причине, что PHP был настолько прост и удобен, что многое прощал молодым разработчикам. И в этом в не было ничего плохого!

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

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

Cтарые шутки про старый PHP

Cтарые шутки про старый PHP

PHP скоро умрет. Этому не суждено сбыться в ближайшем будущем. PHP занимает уникальную нишу на рынке, которую в свое время пытались отобрать Python, Ruby, Node.js и .Net Core, но все потерпели крах. Поэтому, пока язык развивается, пока на нем стартуют новые проекты, пока бизнес выбирает PHP, с ним все будет хорошо.

В своей статье «Потрясающее будущее PHP-стека для карьеры« я описал причину, по которым PHP – перспективный и актуальный стек. И у меня нет причин считать, что я ошибаюсь.

Почему не стоит учить PHP

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

Миграция в Северную Америку в топовую IT-компанию. PHP имеет хорошую популярность в СНГ и Европе. PHP также широко востребован для написания проектов средней сложности в США и Канаде. Также иногда в Северной Америке на нем пишут топовые проекты (тот же Facebook). Однако, если мы берем топовые компании Кремниевой Долины, то в большинстве из них не будет PHP. Это особенности рынка США и их нужно учитывать, если у вас была мечта переехать в США и устроиться в Microsoft или Google.

Исключительно backend. PHP имеет четкую специализацию по написанию backend для проектов разной сложности. Поэтому если вы хотите делать игры, писать мобильные приложения, заниматься computer vision, ML или какими-то другими сферами, то PHP вам не подойдет по той причине, что вы просто не сможете это сделать.

Максимальный доход, как разработчик.
Если у вас есть цель получать максимальный доход, работая разработчиком (не свой бизнес, не свои проекты, не руководящая позиция, а вот именно как разработчик), то пока PHP не может предложить топовые зарплаты. На рынке существует множество вакансий с хорошим уровнем оплаты (максимально приближенным к топовым), но если вот прямо нужен топ, то это скорее Java, GO или Swift в определенных компаниях. Но тут уже каждый для себя выбирает, что подходит конкретно ему.

Стоит ли учить PHP: Итоги

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

PHP – это отличный язык для старта своей карьеры в IT-индустрии и развития себя как востребованный и высокопрофессиональный разработчик. Праздник жизни будет продолжаться вместе с PHP, и 2022 год не станет исключением.

Почему многие программисты считают PHP плохим языком? — отвечают эксперты

Обложка: Почему многие программисты считают PHP плохим языком? — отвечают эксперты

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

Рустам Кильдиев

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

В 2000-х начался бурный рост количества интернет сайтов. Благодаря своей скриптовой сущности именно PHP стал лидером в этой области. К 2010-м годам руками той самой «плохой» массы программистов была написана львиная доля интернета. Быстрее, чем на «пыхе», сайт не «накалякаешь». PHP, если просмотреть линию от создания до сегодняшнего дня, также имел отставание в технологическом и синтаксическом развитии, относительно своих ровесников, например, Java. Да и огромная часть интернета написана и продолжает писаться на версии PHP 4 (2000 г.), несмотря на наличие версии 7.

Язык очень своеобразен, просто вдумайтесь, в нём нет адекватного стек-трейса из коробки. Т.е. в него не заложен инструмент отладки и разбора ошибок. Просто пишите и сразу в продакшн. Свойства языка и «слава» писавших на нём и создали такой эффект. Плюс эффект активно нагнетает элита мира разработчиков, пишущих на намного более современных, сложных, развитых, одним словом «крутых» языках, таких как Python (последних версий), Scala, Go и т.п. Но не стоит забывать, что всегда надо иметь баланс между технологическим удовольствием и бизнес-ценностью инструмента работы.

Павел Романченко

Потому что в языке отсутствует дизайн. Язык не развивался и не проектировался целенаправленно. Многие решения принимались хаотично, что называется, «по месту».

Например, названия функций неконсистентны, т.е., глядя в название одной функции работы со строками, нельзя предугадать название другой.

Результаты плохого проектирования видны всюду: mysql_real_escape_string , сломанный оператор == и т.д.

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

Кирилл Меженцев

Не любить PHP очень легко. Если вы спросите у разработчиков, чем именно плох PHP, то вряд ли получите внятный ответ. Ссылаться могут на общеизвестные проблемы или на неудачный синтаксис, который не понравился человеку. В своё время PHP имел ряд проблем, но их не избежали и многие другие языки. Однако благодаря своей простоте язык стал популярным (Wikipedia, первый Facebook), а вместе с популярностью массовым стало и знание о его проблемах. За годы, с новыми релизами, часть проблем закрылась, но память жива. PHP стал просто удачным мальчиком для битья.

Юрий Пономарев

Многие считают PHP плохим из-за трёх вещей:

  1. Всё, что написано, может быть истолковано несколькими способами.
  2. Если есть что-то очень медленно и плохо написанное на процедурных языках с долгой историей, то это так или иначе можно найти на PHP.
  3. Черепашья скорость отладки и поиска багов.
Читать:
Как убрать фризы в играх на windows 10

Али Рагимов

Мне кажется, всё дело в происхождении языка. Изначально PHP был разработан как простой скриптовый язык, чтобы каждый человек мог легко написать для себя домашнюю страницу. Тогда аббревиатура PHP расшифровывалась как Personal Home Page. Со временем язык стал развиваться, но по-прежнему оставался простым и доступным. Так как порог вхождения был низким, это привлекало большое количество людей, которые до этого не были знакомы с разработкой. Сталкиваясь с вопросами и проблемами, люди преимущественно шли на форумы в ожидании, что кто-то даст им готовое решение — вместо того, чтобы самостоятельно глубоко изучить документацию.

Таким образом, PHP-сообщество на 90% состояло из людей, которые пишут, не задумываясь и вставляя в свои проекты куски непонятного кода — главное, чтобы работало. Многие из тех, кто разобрался в скриптинге получше, вели блоги о программировании и даже записывали видеокурсы, которые зачастую содержали такие подходы и такой код, которые были непригодны для использования в реальных проектах. А люди, которые могли развернуть WordPress и установить в него плагины, и вовсе считали себя экспертами.

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

Однако всё это в прошлом. PHP уже давно содержит в себе интерфейсы, абстрактные классы, трейты и другие вещи, позволяющие реализовывать парадигмы ООП и использовать паттерны проектирования. А в последних версиях PHP появилась типизация аргументов функций и методов, возвращаемых значений и свойств классов. PHP также имеет свой пакетный менеджер, множество современных мощных фреймворков, таких как Symfony и Laravel, и массу других интересных проектов, написанных очень качественно. Сейчас, в 2018, лично я не вижу причин считать PHP «плохим» языком программирования.

Дмитрий Казаков

Началось всё, как обычно, много лет назад, когда бизнес только начал осваивать интернет. Серьёзные проекты писались за серьёзные деньги, но большинству заказчиков хотелось получить какой-нибудь сайт за мелкий прайс, желательно вообще бесплатно. Так началась эпоха wordpress и joomla. Так как все разработчики, согласные делать проекты за нормальные деньги, уже были заняты на этих самых проектах за нормальные деньги, то сайтоделием на CMS занялись случайные люди, со временем начавшие отождествлять себя с программированием и PHP как языком этих CMS. Общий, весьма низкий технический уровень этого сообщества прицепом потянул за собой в бездну репутацию PHP как инструмента, а дефицит кадров в отечественном IT не позволял гнать несвежими тряпками таких разработчиков. В конце концов PHP стал синонимом «дёшево и быстро», а ведь никто из программистов не хочет «дёшево», оправдывая это придирками к архитектуре языка.

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

Павел Цытович

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

Как вы думаете, что он напечатает? В таких языках, как Java, C++ или C#, есть аналогичный оператор условное выражение. Там он напечатает ‘train’. А в PHP результат будет ‘horse’!

Второй момент, который вызывает сложности с PHP, — это диагностика ошибок. Если вы открываете файл, то для этого есть функция fopen() . При невозможности открыть файл, сообщение об ошибке будет выведено в поток. Мы можем его подавить, используя символ @ , т.е. записать @fopen() . Однако, даже при наличии этого оператора, если в настройках php.ini вы указали опцию scream.enabled=true , это приведёт к печати сообщения об ошибке, даже если вы используете в коде оператор @ .

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

Вся проблема в том, что этот оператор «не придирается» к типам данных. Так выражение вида 123 == «123foo» вернёт TRUE , а вот выражение «123» == «123foo» уже вернёт FALSE . Этот оператор пытается сделать приведение типа и в первом выражении просто преобразует строку «123foo» в число 123, когда в других языках программирования мы бы получили ошибку, что логично. А второе выражение просто сравнивает строки. Всё это порождает неоднозначность, с которой очень сложно совладать начинающим программистам на PHP. Хороший язык программирования не должен оставлять места трактовке тех или иных конструкций, а должен быть последовательным везде и всегда.

И четвертый момент, почему считают данный язык программирования плохим, — это тот момент, что он создавался как язык шаблонов, который встраивается в HTML-код с помощью тегов <?php ?> . В итоге это приводило к смешению программного кода и данных, что в больших системах недопустимо. Понятно, что потом появились «лучшие практики», как надо писать и как не надо писать скрипты PHP, но для начинающих разработчиков это и сегодня представляет определенную сложность.

В защиту языка программирования PHP хочется сказать, что по-своему это мощный язык программирования, который нашел своё место в веб-приложениях. На нём написано достаточно много веб-приложений, начиная от Facebook и заканчивая системой умного дома Majoromo, CMS Drupal и другими.

Дмитрий Гацура

Его считают плохим те, кто на нём не пишет, либо, кто столкнулся с некачественным исполнением поставленной задачи. Те разработчики, кто не стремятся изучить документацию языка и не следуют рекомендациям, пишут на нём действительно очень слабо. Это бросает тень на всё сообщество. PHP — язык с низким порогом вхождения. Это одновременно сильная и слабая его сторона. Достаточно знать азы программирования, поставить интерпретатор и можно писать хоть в «Блокноте». По умолчанию конфигурация интерпретатора PHP не выводит детальной информации о предупреждениях и ошибках, что на начальном этапе изучения (использования) языка может сформировать у программиста неверные принципы написания кода.

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

Евгений Потапов

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

Тут нужна небольшая историческая справка. Изначально Web разрабатывали на «том, что было» (C, а потом Perl через CGI). Затем, особенно в энтерпрайз секторе, значительное распространение получила Java и следом C# (ответ Microsoft). Это созданные большими корпорациями, хорошо спроектированные, можно так сказать, серьёзные языки программирования.

В то же время PHP начинал как проект энтузиаста (даже расшифровывался как Personal Home Page), как набор скриптов на Perl.
Но в то же время он имел большие плюсы: очень низкий порог входа, отсутствие необходимости в тяжеловесных виртуальных машинах, простота создания несложных сайтов.

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

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

С определенной версии это стал вполне современный язык (с некоторым наследием), в среднем, ничем не хуже, чем любые другие аналоги.

Но вот этот «Personal Home Page» осадок остался.

Во-вторых, когда PHP запустил волну популярности динамически программируемых языков, в Web зашли такие языки, как, например, Python, Ruby или NodeJS. Тут уже началась «гонка вооружений» между ними. На старте эти языки (и связанные библиотеки и фреймворки) учитывали недостатки PHP и выглядели значительно привлекательнее. Тут уже начались холивары между комьюнити. В принципе каждый язык занял свою нишу. PHP же итеративно догоняет по функциональными возможностям нововведения в других языках. И на текущем этапе плохим языком его назвать уж точно нельзя. Скорее — промышленным стандартом в не-энтерпрайз Web.

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

Почему 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

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

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

Даже наличие плохих отзывов об языке не является причиной полностью сбрасывать PHP со счетов. Даже сегодня он входит в 5 самых распространённых и популярных языков (по состоянию на 2018 год). Он занимает место среди других гигантов: Java , JS , C# и Python . Многочисленные аналитические компании не замечают падения рейтингов PHP, даже порой отмечается постепенный прирост. Одной из причин притока программистов является лёгкость обучения, после знакомства с PHP многие переходят к обучению Java или других языков.

HTML файл с логикой

Неприязнь к PHP часто обуславливается помещением кода в HTML-файл и дальнейшей обработкой внутри. Да, эти файлы имеют соответствующее расширение .php , но здесь доля чистого PHP часто меньше, чем остальных языков. Внутри файла размещаются HTML , CSS , JS коды или загружаются скрипты. Подход не позволяет обеспечить полную чистоту кода, хотя при должных навыках можно структурировать файл так, чтобы все элементы были легкодоступны, аккуратно сложенные и понятны.

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

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

Качественные пакеты

Bundler, PIP, NPM, CPAN и другие – это пакеты, помогающие писать код качественно. Посредством подключения стороннего кода удаётся повысить производительность труда и расширить возможности языка. Есть одна проблема – перечисленные пакеты написаны на других языках: Ruby, Python, Node JS , Perl.

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

Разработан специальный стандарт PSR-0 , который помогает в работе всех пакетов при одновременном подключении. С помощью Composer удаётся получить полноценный менеджер, обеспечивающий определение зависимостей у библиотек PHP. Уже совсем скоро планируется значительное улучшение качества кода и весомое сокращение затрат времени. Проходят времена, когда приходилось разрабатывать решение и затачивать его под конкретный фреймворк.

Проблема действительно существует, но разработчики знают об её существовании и ищут способ убрать лишние сложности.

Устаревшие понятия

Только в моём кругу есть масса матёрых разработчиков на Ruby, которые по привычке используют пятую версию языка, думая и уверяя других в отсутствии каких-либо значимых изменений в PHP 7. В действительности отличия существуют, и они весомые.

Со стороны Ruby-разработчиков часто летит заявление в адрес PHP, что у него нет « method_missing », но это не совсем так, ведь в реальности альтернативой является __call () . Люди привыкли жаловаться, они часто это делают в отношении проблем, которые уже были устранены в новых версиях. Получается так, что большинство людей, высмеивающих PHP, даже не знают о разработке новых версий языка или просто не обладают достаточным уровнем навыков. Ещё часто к PHP относились пренебрежительно по причине отсутствия встроенного сервера (у Ruby он есть), но сейчас и PHP обзавёлся этим дополнением.

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

Предвзятое мнение

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

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

Встречалось мнение, слышал его краем уха возле бизнес-центра: «У меня нет никакого доверия к магазинам на PHP. Почему разработчики не способны освоить хороший язык?». Это мнение многих программистам, но подобные заявления свидетельствуют о недальновидности разработчика.

Заключение

В упрёк PHP поставить больше нечего, все моменты, с которыми ранее приходилось мириться, остались в прошлом. Согласно недавней статистике, проведённой W3Techs , сегодня около 83% всех ресурсов разработаны на основании PHP. Обладая реальными данными в отношении языка, становится легче оценить его перспективы.

Я имею опыт создания приложений как на PHP, так и Python, NodeJS, Ruby (в меньшей мере), но я на постоянной основе использую PHP. Почему я так делаю? Рынок языка является самым большим, и он занимает наибольшую долю. Его популярность обусловлена широкими возможностями, в нём возможно реализовать любой функционал.

Сегодня многие программисты постоянно меняют направления работы в поисках идеального языка, IDE или превосходной хостинг-платформы. Это глупо, так как нет одного идеального и полноценного инструмента, способного покрыть все потребности программистов. Не существует совершенного варианта, но есть просто варианты, которые ненавидеть странно.

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

Більше цікавих новин

7 лучших игр на движке Unity7 лучших игр на движке Unity

Related Posts