Python и PHP: сравниваем возможности

5
791
views
python logo

Хочешь знать больше о Python?

Подпишись на наш канал о Python в Telegram!

×

Никогда не задумывались о том, что общего у языков Python и PHP? Сайт proglib.io рассказал, какие характеристики у них сходны, а какие отличаются.

Photo by KOBU Agency on Unsplash

PHP – титан скриптовых языков, на котором работает 79% всех существующих сайтов. С другой стороны, на Python приходится основная доля интернет-трафика: на его чаше весов такие гиганты, как Amazon, Google, Reddit и Instagram. Попробуем разобраться в сильных и слабых сторонах этих языков с точки зрения веб-разработки… не холивара ради, а эрудиции для.

Сложность освоения

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

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

Скорость работы

Одна из главных претензий противников Python – его медлительность. И действительно, PHP 7 разносит Python 3 в бенчмарках. Это означает, что серверные приложения тратят больше ресурсов, и при высокой нагрузке – возьмём для примера веб-приложение с миллионом ежедневных посещений – разница производительности действительно скажется на показателях проекта.

В защиту Python стоит сказать, что до определённой границы отставание будет микроскопическим. Если PHP-приложение выполняется за 10 мс, а программа на Python – за 30 мс, то трёхкратной разницей в производительности можно пренебречь. Решение остаётся за разработчиком, который выбирает нужный фреймворк по условиям конкретной задачи.

Поддержка комьюнити

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

И PHP, и Python по этому параметру находятся примерно на одном уровне. Первый держится за счёт более чем 20-летней истории, в пользу второго играет статус «рок-звезды» среди языков программирования. Правда, понять ответы Python-профессионалов может быть проще, поскольку сам язык дружелюбнее к новичкам. Ещё один плюс – огромное количество разнообразной документации на все случаи жизни.

Photo by Nicole Wolf on Unsplash

Спектр доступных библиотек

Логичное продолжение предыдущего пункта. Чем больше программистов работает с тем или иным языком, тем больше они создают новых функциональных модулей. Это расширяет его возможности, отчего язык привлекает новых адептов… в общем, вы поняли.

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

По этой причине порог входа в Python для веб-разработки не слишком высок. Для начала достаточно понять логику языка и освоить несколько лучших фреймворков.

Отлов ошибок в коде

Ещё один показатель, который сильно влияет на стоимость разработки: как быстро в программе можно найти баги и узкие места. Меньше ошибок – меньше работы тестировщикам – больше ROI. Про пользователей тоже не стоит забывать: чем быстрее разработка, тем быстрее появляются новые функции, которые привязывают людей к продукту.

И у Python, и у PHP есть собственные дебаггеры: PDB (Python Debugger) и XDebug соответственно. Оба дебаггера обеспечивают вывод пути до обнаруженной ошибки, визуализацию параметров производительности и другие функции ежедневной необходимости. В этом отношении среди языков нет явного лидера.

Подсчет очков

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

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

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

5 КОММЕНТАРИИ

  1. Мда, про дебаггинг вы, конечно, загнули. В 7.4 пыхе добавили типизированные параметры и функции (точнее тип определение типа возвращаемых данных для них), что на порядок снижает вероятность ошибок. Плюсом, ООП в питоне по сравнению с php мягко говоря, кастрированное, если вы писали на пыхе, поймёте. Про фреймворки сложно согласиться, так как есть прекрасные примеры в виде Laravel и Yii.

    • P.S. в скобочках «точнее определение типа возвращаемых данных для них[функций])»

  2. Забавно, но человек после python, будет немного шокирован, при переходе на php, js, java, c#, c++, c.
    В принципе, забавная тенденция, рекламировать python ( который почти что уникальный по синтаксису [ сори, возможно про какие то языки забыл, я сравнивал с теми что описаны выше + Go ] ), везде где только можно, по аналогии с node.js и сравнивать со всем подряд не углубляясь в подробности, так по верхушке прошлись и все.
    Не то чтобы человеку хотелось переходить с python, на другой ЯП, но сидеть в песочнице с одним языком, ну очень скучно. Это как играть в одну и ту же компьютерную игру. А большинство языков то с синтаксисом c.
    Забавный факт: до 2018-2019 про php говорили как язык с наименьшим порогом входа, а теперь таковым называют python.
    Хотя если сравнивать документации, если сравнивать названия функций и что они делают, то можно задуматься.

  3. «Спектр доступных библиотек — На этом поле Python держит уверенное лидерство: его Django стал эталонным фреймворком для веб-порталов всех мастей» — эмм… а куда же подевались WordPress (на котором, кстати, данный сайт написан, а не на эталонном Django почему-то) и Laravel вместе с Symfony?
    С чем я соглашусь, так это с тем, что решения для машинного обучения и работы с большими данными в Python развиты намного лучше. Но тут уж стоит учитывать специфику. PHP — он же в первую очередь для web разрабатывался (и продолжает разрабатываться), а всё остальное на нем — удел увлеченных энтузиастов.
    Так что, в вопросе библиотек, как раз стоит сузить круг. Зависит от вашей задачи. Если брать чистый веб, то результат не так уж и однозначен. Если же брать все остальное… ну, не знаю, давайте посмотрим как на Python микроконтроллеры программируют.

    • «Итак, в нашем сравнении Python победил в двух номинациях, PHP – в одной, ещё два раунда закончились вничью.» — а почему у этих номинаций один и тот же вес?
      Приведу пару примеров:
      — для веб-разработки не имеет значения сколько библиотек машинного обучения у питона, зато будет важна скорость работы под нагрузкой
      — для машинного обучения, как раз, на второй план отходит скорость работы, но выходят на первый библиотеки
      — для обучения программированию в самом широком смысле важно как раз сочетание большого комьюнити, порога вхождения и того, насколько широк спектр задач, решаемый языком

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

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here