Языки на букву «P»: сравниваем возможности Python и PHP

8
6136
Добавить в избранное

В статье речь идет о языках Python и PHP, их схожих и отличных характеристиках. Никогда не задумывались о том, что у них общего? Рассказываем.

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

Языки на букву «P»: сравниваем возможности Python и PHP

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

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

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

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

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

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

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

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

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

Языки на букву «P»: сравниваем возможности Python и PHP

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

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

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

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

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

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

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

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

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

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

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

Блог компании SkillFactory
Интересуетесь программированием на Python?

Подпишитесь на нашу рассылку, чтобы получать больше интересных материалов:

И не беспокойтесь, мы тоже не любим спам. Отписаться можно в любое время.




Комментариев: 8

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

  2. Владимир Чернышев

    Если только о вебе говорить, то вход в веб-разработку на PHP проще. Собственно статистика сайтов об этом говорит.

  3. Как же подгорает, когда неофиты говорят о мультипоточности в питоне. Нету её там, ок? GIL не даст исполнять треды паралельно. В 9/10 случаев вот эта вот пародия, что есть сейчас не нужна. Есть мультипроцессорность, но это уже другая история. CPython никак не оптимизирует код и у него даже нет jit-компиляции, вкупе с гилом это объясняет медлительность по сравнению с PHP. НО уже с 3.9 гил заберут и возможно даже добавят хоть какую-то базовую оптимизацию, вот тогда можно будет говорить. А вообще, сам питонист, но пыха сейчас для веба лучше. Есть намного больше документации (у питона тоже, но по вебу явно меньше), туева хуча готовых решений, но конкуренция на голову выше. Такие дела.

  4. Илья Караваев

    Почти все аргументы вывернуты наизнанку.
    — В php всю жизнь был порог входа ниже.
    — Производительность в 3 раза это мелочь? Для высоконагруженных проектов это совсем не мелочь.
    — Фреймворки на php значительно далеко ушли вперед от Джанго. А количество библиотек примерно сравнимы по количеству по статистики github.

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

  5. Дмитрий Беженцев

    рнр только веб, пайтон все что угодно, конец!

    1. Илья Караваев

      FFI в PHP 7.4. это может координально изменить.

  6. Andrey Boyarchuk

    Классический холивар.
    В удаве джанго, в php yii, laravel, symphony
    Я пока гибче чем орм в ларе еще ни в одном языке не видел.
    У удава своя аудитория, но потеснить титанов ему сил не хватит.
    Интерпретируемый, без особых талантов, язык общего пользования.
    А впереди уже идут куда более маститые потомки node js.
    И молоденькие типа rust и kotlin.
    Так что нет смысла спорить о том кто лучше готовит яичницу.
    Лишь бы клиентов устраивала.

    1. В чем может быть «гибкость» орм на основе актив рекорд? Попутали гибкость и простоту использование? За гибкостью к академически правильной доктрине, но никак не к актив рекордам разным.

Добавить комментарий