Чем python лучше php
Нелегкий выбор Python или PHP. А может и то и другое?
Несмотря на название, в данной статье не будет «холиварных» высказываний, обзоров достоинств или недостатков языков. По большей части данная статья носит философский, исключительно субъективный характер с небольшой примесью личного опыта.
Формально, даже трудно передать, чем данный язык не устраивал. На любое утверждение или пример, найдется более грамотный специалист и поклонник PHP, который возразит: что надо делать не так, а вот так и все нормально будет, или вообще что это не проблема, а наоборот достоинство. Просто скажу так — этот язык перестал нравиться исключительно подсознательно, вот неприятно на нем писать и все. Не приносит работа удовлетворение.
Но удовлетворение удовлетворением, а старые проекты поддерживать и развивать придется на PHP, так как на переписывание тысяч строк кода, решиться не каждый. Да и смысла особого нет (если конечно не обнаруживаются какие-то критические конструктивные проблемы, которые упираются в недостатки языка). И язык не настолько уж и плох, а может даже в чем то и хорош, чтобы взяться за переписывание проектов на PHP.
Но новые проекты решили делать на Python, используя фреймворк Django. Чтобы прийти к такому выводу пришлось перелопатить довольно много форумов и блогов. Информации на самом деле мало, как и нормальных адекватных постов людей которые хорошо разбираются в обоих языках. В основном каждый хвалит свое болото или философски замечает «Что выбор зависит от задач проекта». Хотя большинство задач для веб проекта можно решить на обоих языках.
В процессе изучения вопроса «кто же на свете всех милее…», часто возникали мысли, а стоит ли вообще переходить куда-либо, такие ли уж большие преимущества у других языков, и стоят ли они трудозатрат на обучение, поиска новых специалистов и прочее. Идеальных языков нет и быть не может, поэтому, скорее всего у нового языка и соответственно новых фреймворков будут свои «подводные камни». Поэтому в конце пришли к совершенно обычному выводу, который и давали в форумах, наиболее умудренные опытом люди: пока сами не попробуем ответа на эти вопросы не получим.
Решили попробовать написать проект на питоне и использовать фреймворк Django. Причину выбрали довольно банальную — Яндекс хвалит питон. Так же нашли пару статей про использование Django в Яндексе. Отзывы больше положительные, чем отрицательные, и за несколько лет использования, разочарования в данном языке или фреймворке у них не последовало (по крайней мере, таких статей мы не нашли).
Наш новый проект в самом начале пути, коротко расскажу о впечатлениях. Питон как язык очень понравился, все то, что не нравилось в PHP как раз удовлетворяло в питоне. Скорость разработки проекта была почти такая же, как и на PHP, но это с учетом того, что часть специалистов переучивалась под Python, и затрачивалось время на поиск новых специалистов. То есть время мы, по крайней мере, не потеряли, а когда процесс разработки полностью стабилизируется, я думаю, скорость возрастет многократно.
Проект только в начале пути, поэтому все подводные камни, наверное, впереди, по крайней мере, одна цель была достигнута. Работа снова стала приносить удовлетворение.
Но от PHP совсем мы отказываться не собираемся. Есть у него и своя очень приличная ниша в мелких, и может быть, средних проектах. Но Крупные мы планируем разрабатывать только на Python. По крайней мере, в ближайшем будущем.
10 причин, почему в веб-разработке Python выигрывает у PHP
Когда речь заходит о бэкэнд-разработке, веб-разработка на PHP и Python — это два наиболее популярных решения, которые выбирают компании и разработчики. Тем не менее, какой из двух выбрать — остается под вопросом. Несмотря на то, что огромное количество веб-сайтов запрограммировано на PHP, в последние два года наблюдается резкая тенденция к росту разработки на Python.
Если вы, тем не менее, склоняетесь к выбору Python вместо PHP в качестве предпочитаемого вами языка, эта статья для вас.
Хотя в общем количестве веб-сайтов, разработанных в течение ноября 2018 года, PHP намного превосходит Python, количество веб-сайтов, которые отказались от PHP в качестве языка разработки, было колоссальным — 136,55.
После того как Python стал использоваться популярными продуктами, такими как YouTube, Instagram, Quora, Facebook, Pinterest, Reddit, Google, Netflix и Spotify, он стал новым фаворитом.
С 2016 по 2017 год годовой рост Python на рынке США и Великобритании был намного выше, чем темпы роста PHP.
Оба языка имеют свои преимущества и недостатки, кроме некоторых отличительных особенностей. Тем не менее, в недавнем прошлом все большее число людей перешло на Python из PHP, благодаря нескольким преимуществам, таким как надежность, улучшенный дизайн и удобочитаемость, и это лишь некоторые достоинства, которые предоставляет язык программирования Python.
Мы собираемся сравнить языки программирования PHP и Python, чтобы вы могли решить, почему Python может быть лучшим выбором для вашего IT продукта.
Что отличает Python?
1. Продуманный дизайн
Вам будет гораздо проще использовать Python для написания отличного кода, чем PHP, хотя написать хороший код на PHP тоже возможно.
Python имеет архитектуру, благодаря которой его можно назвать продуманным и надежным языком. PHP не обладает такими качествами.
PHP не такой элегантный язык, как Python, хотя он полностью работоспособен. Любой разработчик, имеющий достаточный опыт создания отличного программного обеспечения, может написать хороший скрипт на PHP. Однако, чтобы быть более гибким с PHP, требуется очень глубокое знание нюансов и особенностей языка.
Для опытного разработчика будет понятно, что Python — это стек, который легче понять и использовать.
2. В простоте обучения Python выигрывает
Ну, на первый взгляд, легко работать как с PHP, так и с Python. И то, и другое довольно хорошо задокументировано. У них у обоих также есть IDE для Windows, Linux и MacOS.
Но вот в чем дело. Если вы разработчик, вы должны подумать о том, что может создать для вас максимальную ценность в долгосрочной перспективе. Очевидно, вы хотели бы работать с языком, с которым вы сможете установить глубокие, богатые и длительные отношения.
С этой точки зрения, Python отвечает требованиям гораздо лучше, чем PHP, поскольку использование последнего — более сложное, и не универсальное. Python использовать проще.
Python выигрывает у PHP не только потому, что его легко освоить, но и благодаря огромному количеству учебных пособий, доступных онлайн.
3. Улучшенная структура
Хотя концептуально разработчики хотели бы иметь выбор, практически они любят стандарты. Если все остальное одинаково, они предпочитают, чтобы все работали с одинаковыми библиотеками и фреймворками.
Python основна именно на этом. Он работает в основном с Django, Pyramid, Pylons и Flask. Django обычно считается де-факто выбором веб-фреймворка в Python. Его аналогами в PHP являются Kohana, Symfony, CodeIgniter и Zend.
Среди фреймворков Python, Django — явный победитель. Он чрезвычайно прост в использовании, безопасен и быстр. Он очень стабилен и надежен и пригоден для использования в ряде приложений. Большинство новых разработчиков предпочитают использовать Django, особенно из-за более короткого времени разработки и простоты настройки.
4. Python более читабельный стек
PHP широко документирован и придерживается классического подхода. С другой стороны, Python использует довольно строгие требования к отступам. Можно утверждать, что Python более читабелен не только по сравнению с PHP, но и с большинством других языков программирования.
Сама философия Python — читабельность кода.
5. Синтаксис намного проще, чем PHP
Код Python проще для понимания и написания. Он не содержит фигурных скобок, как другие языки программирования, и его легко понять.
Когда вы пишете что-то на Python, это так элегантно, что у вас невольно может появится желание показать это другим. Как правило, это не относится к тому, что обычно написано в веб-разработке PHP.
6. Более простые и легкодоступные инструменты Инструменты отладки
Python имеет большую экосистему для разработчиков и легко доступные инструменты отладки для языка. Использовать эти инструменты довольно просто. Стек предоставляет разработчикам Python Debugger (PDB), довольно мощный отладчик, который прост в использовании и настолько хорошо документирован, что даже новички могут его понять.
PHP также предлагает пакет отладчика под названием XDebug, который великолепен. Единственное преимущество, с которым Python побеждает, состоит в том, что ему требуется меньше средств отладки, чем PHP.
7. Явный победитель в управлении пакетами
Управление пакетами служит связующим звеном между различными проектами. С его помощью вы можете писать, создавать и обмениваться пакетами в таком формате, чтобы другие разработчики могли легко подключаться к другим приложениям.
Управление пакетами существует в PHP, но, вероятно, нет такой базы кода, который используется в той степени, в которой это делает PIP (инструмент для установки и управления пакетами Python).
Он позволяет устанавливать, удалять, обновлять и использовать широкий спектр источников для внутренних и внешних библиотек. Редко можно найти список всех сторонних библиотек и используемых номеров версий, записанных в одном файле.
8. Лямбды, предоставляемые Python, дают преимущество перед PHP
Лямбда (Lambdas) — это подпрограмма или функция, которая определяется и вызывается без привязки к идентификатору. Это блок кода, который можно передать и выполнить позже, один или несколько раз.
Используя лямбда-выражения можно объявлять функции в любом месте кода,они просты в создании. Поэтому разработчики Python любят использовать Lambdas.
Ранее в PHP была доступна только функция ‘create_function’, которая на самом деле не заменяла Lambdas в Python.
9. Python более универсален, чем PHP
Python — это универсальный язык программирования, практически бесконечный. Разработка веб-сайтов на Python — это не единственное, на что способен стек. Машинное обучени, NLP, наука о данных, обработка изображений, а также разработка настольных и мобильных приложений — это лишь несколько примеров использования Python.
PHP может использоваться для других целей, но он предназначен именно для создания веб-страниц, и это то, что он делает лучше всего. Это сложный язык программирования, предназначенный для создания сложных веб-программ.
10. Огромная поддержка и сообщество
С течением времени Python стал «круче», чем PHP, с точки зрения его универсальности, современности, простоты, элегантности и простоты использования. Поскольку у Python есть обширные сферы использования — как разработка, создание сценариев, научное применение и т. д., вокруг него возникло огромное сообщество, со стороны которого разработчики получают огромную поддержку.
Кроме того, существует Python Software Foundation. Этот фонд стремится «продвигать, защищать язык программирования Python, а также поддерживать и содействовать росту международного сообщества программистов Python».
PHP, тем не менее, также имеет существенную поддержку, и сообщество разработчиков вокруг него, но по сравнению с Python, намного меньше.
Python помогает вам создавать более надежный код, который можно использовать для различных сферах.
И Python, и PHP поддерживаются крупными сообществами, тщательно разработанной документацией,но Python становится все более популярным выбором. Многочисленные факторы, такие как простота кода, универсальные сценарии использования, модульность и бесчисленное множество библиотек, являются причинами, по которым разработчик, а также компании любят Python.
Простота использования и адаптивность облегчают разработку, позволяя эффективно достигать поставленных целей программирования.
Компания Futureinapps занимается разработкой сайтов и сложных IT продуктов на любых языках программирования!
Языки на букву «P»: сравниваем возможности Python и PHP
В статье речь идет о языках Python и PHP, их схожих и отличных характеристиках. Никогда не задумывались о том, что у них общего? Рассказываем.
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-профессионалов может быть проще, поскольку сам язык дружелюбнее к новичкам. Ещё один плюс – огромное количество разнообразной документации на все случаи жизни.
Спектр доступных библиотек
Логичное продолжение предыдущего пункта. Чем больше программистов работает с тем или иным языком, тем больше они создают новых функциональных модулей. Это расширяет его возможности, отчего язык привлекает новых адептов. в общем, вы поняли.
На этом поле Python держит уверенное лидерство: его Django стал эталонным фреймворком для веб-порталов всех мастей; CherryPy прямо из коробки предлагает полный инструментарий для создания веб-приложений на базе собственного мультипотокового сервера; есть решения для машинного обучения и работы с большими данными. Библиотеки PHP отстают по функциональности и удобству использования, и это признаёт большинство программистов.
По этой причине порог входа в Python для веб-разработки не слишком высок. Для начала достаточно понять логику языка и освоить несколько лучших фреймворков.
Отлов ошибок в коде
Ещё один показатель, который сильно влияет на стоимость разработки: как быстро в программе можно найти баги и узкие места. Меньше ошибок – меньше работы тестировщикам – больше ROI. Про пользователей тоже не стоит забывать: чем быстрее разработка, тем быстрее появляются новые функции, которые привязывают людей к продукту.
И у Python, и у PHP есть собственные дебаггеры: PDB (Python Debugger) и XDebug соответственно. Оба дебаггера обеспечивают вывод пути до обнаруженной ошибки, визуализацию параметров производительности и другие функции ежедневной необходимости. В этом отношении среди языков нет явного лидера.
Подсчет очков
Итак, в нашем сравнении Python победил в двух номинациях, PHP – в одной, ещё два раунда закончились вничью. Напрашивается вывод, что в этом столкновении нет чистого победителя. Если вы уже маститый PHP-разработчик, этот язык закроет все ваши потребности, да и в ближайшие годы без работы вы точно не останетесь. Нужно ли погружаться в новый язык, зависит от ваших целей и возможностей.
Если вы программист со стажем, но без особых карьерных перспектив, Python может открыть вам множество новых дорог. Возможность писать код как книгу позволяет мозгу больше инвестировать в креатив и работать над новыми идеями. Не побоимся повториться – начинающему программисту стоит прежде всего освоить именно Python. После этого можно продвигаться по уровням сложности как душе угодно.
Важно понимать, что Python – не просто модная игрушка, а мощный инструмент, с помощью которого можно создать как небольшую утилиту для упрощения отдельного процесса, так и масштабный сервисный портал с миллионами посетителей в сутки. Если вас будут убеждать в обратном – улыбнитесь и откажитесь от холивара.
Что выбрать: PHP или Python?
Было бы некорректно выбирать из двух языков лучший: слишком много параметров для сравнения. Поэтому мы разобрались, под какие задачи и кому больше подходит PHP и Python, какие платформы они поддерживают,какими преимуществами и недостатками обладают и с чего лучше начинать свой путь в IT.
Что такое PHP?
PHP — от английского Hypertext Preprocessor — «препроцессор гипертекста». Это скриптовый язык, на нем создают сайты и веб-приложения. Язык интегрируется с большинством веб-серверов и работает со всеми распространенными операционными системами. У PHP понятный синтаксис и низкий порог входа для изучения.
Плюсы
Минусы
Ваш рывок в сферу программирования. Обучение с нуля и помощь в трудоустройстве.
Дополнительная скидка 5% по коду BLOG.
Что такое Python?
Python — это объектно-ориентированный язык общего назначения, его применяют в разных областях. Например, на нем пишут приложения, программируют системы машинного обучения, анализируют данные. Разработчикам он нравится за встроенные структуры данных, удобные функции кодинга и динамические ссылки. Это помогает писать код на Python быстро и снижает вероятность ошибок.
Плюсы
Минусы
Fullstack-разработчик на Python
Станьте востребованным специалистом: научитесь программировать на Python и начните карьеру сразу после обучения.
Дополнительная скидка 5% по коду BLOG.
Как выбрать язык?
Выбирая язык, отталкивайтесь от своей цели. Изучая PHP, вы научитесь создавать веб-приложения.
С помощью PHP можно:
Заказчикам нужно разрабатывать сайты с нуля и поддерживать готовые сложные веб-приложения, поэтому такие разработчики будут востребованы в компаниях разного уровня. Если освоить еще и Javascript, то можно стать fullstack веб-разработчиком, который может самостоятельно реализовать проект: спроектировать архитектуру, разработать frontend- (то, как сайт видят пользователи) и backend-части (все, что помогает сайту работать), привязать проект к базе данных, обновлять его и заниматься системным администрированием. Подробно о профессии fullstack-разработчика мы рассказывали в нашем гиде.
Python — по-настоящему универсальный язык, его применяют для самых разных задач:
Если вы хотите стать универсальным специалистом, выбирайте Python. На его базе вы сможете перейти в другую область и заниматься, например, искусственным интеллектом или Data Science. Подробной разбор кому и для чего нужен Python, читайте здесь. А тут вы найдете обзор самых популярных языков программирования.
Если вы решили перейти с PHP на Python, то к чему следует подготовиться
Думали ли вы когда-нибудь о том, что однажды слишком быстро втянулись в веб-программирование на PHP? И вот уже прошло много лет, у вас хороший опыт, и вы не думаете ни о каких других способах „делать“ веб, кроме как на PHP. Может быть, у вас возникают сомнения в правильности выбора, однако непонятно, как найти способ быстро его проверить. А хочется примеров, хочется знать, как изменятся конкретные аспекты деятельности.
Сегодня я попробую ответить на вопрос: «А что если вместо PHP писать на Python?».
Сам я долгое время задавался этим вопросом. Я писал на PHP 11 лет и даже являюсь сертифицированным специалистом. Я научился его «готовить» так, чтобы он работал в точности, как мне надо. И когда я в очередной раз читал на Хабре перевод статьи о том, как всё в PHP плохо, я просто недоумевал. Однако подвернулся случай пересесть на Ruby, а потом и на Python. На последнем я и остановился, и теперь попробую рассказать вам PHP-шникам, как нам питонистам живётся.
Формат статьи
Наилучший способ познавать новый язык — сравнение с регулярно-используемым, если новый язык не принципиально отличается от текущего. Неплохая попытка сделана на сайте Ruby, но, к сожалению, там мало примеров.
Также я должен отметить, что я сравню не все аспекты деятельности, а только те, которые будут бросаться в глаза в первые недели работы с новым языком.
Подготовка консолей
Я попытался сделать эту статью интерактивной. Поэтому при прочтении настоятельно рекомендую набирать примеры из неё в консолях. Вам понадобится консоль PHP, а лучше сразу psysh:
И консоль Python. Лучше поставить более удобные варианты bpython или ipython, чем встроенная в язык по умолчанию, так как в них уже есть автодополнение. Но можно и так:
И, чтобы применить изменение прямо сейчас без перезапуска консоли, выполнить:
Сам язык
Основные особенности
Правда, обычно у вас в коде типы перемешиваться не будут и данный эффект не будет мозолить вам глаза. В принципе, когда я писал на PHP, ситуаций когда нестрогая типизация реально помогала, было 1-2 на проект, а так обычно взаимодействовали переменные одного типа.
Философия строгой типизации накладывает свой отпечаток и на обработку ошибок. Например, если функция int должна возвращать целый тип, то она не может вернуть None на строку, из которой нельзя однозначно извлечь этот тип. Поэтому генерируется исключение. Это грозит тем, что всё, что прислал пользователь, надо преобразовывать в нужный тип, иначе вы рано или поздно схватите эксепшн на проде.
Это касается не только стандартных функций, но и некоторых методов для списков, строк, части функций во вспомогательных библиотеках. Обычно питон-разработчик примерно на память помнит, где какое исключение может упасть, и учитывает это. Если не помнит, иногда лазит в код библиотеки, чтобы подсмотреть. Но конечно же иногда бывает, что не все варианты учитываются, и порой пользователи ловят эксепшены на проде. Но поскольку это нечастое явление, и обычно веб-фреймворк присылает их админу на почту автоматически, всё довольно быстро чинится.
Чтобы использовать значения разных типов в одном выражении, вам нужно их преобразовать, для этого есть функции: str, int, bool, long. Ну а для форматирования есть более элегантные конструкции.
Строки
Форматирование
Теперь вам нужно просто переучиться:
Вариантов вроде больше и есть хороший вариант для локализаторов.
Методы строки
Самое главное, что есть в Python и чего не хватает в PHP, — это встроенные методы. Давайте сравним:
А как часто вы делали что-то типа такого?
Поддержка юникода
Ну и наконец юникод. В Python 2 все строки по умолчанию не юникод (В Python 3 — по умолчанию юникод). Но стоит вам подставить магическую букву u вначале строки, как она автоматически становится юникодной. И далее все встроенные (и не встроенные) строковые методы Python будут работать хорошо.
![]()
Подобную нативную поддержку юникода хотели завести в PHP 6, но не осилили.
В PHP, кстати, вы можете воспользоваться MBString function overloading и получить аналогичный эффект, но он отмечен, как устаревший. И вы лишаетесь работы с помощью перегруженных функций с бинарными строками, но вы по прежнему можете работать со строкой как с массивом.
«Сырые» строки
Многие из вас знают чем одиночные кавычки отличаются от двойных:
Что-то подобное есть и в Python. Если подставлять перед строкой литерал r, то это поведение почти аналогично одиночным кавычкам в PHP.
Массивы
Теперь разберёмся с массивом. В PHP вы могли запихнуть в качестве ключей целые числа или строки:
![]()
Несмотря на то что array переводится как массив, в PHP array не обычный массив (то есть список), а ассоциативный (то есть, словарь). Обычный массив в PHP тоже есть, это SPLFixedArray. Он ест меньше памяти, потенциально быстрее, но ввиду сложности объявления и сложности расширения практически не используется.
В Python для массива мы используем 3-4 типа данных:
Импорты
Ещё одна интересная вещь — импорты. Своеобразный альтернативный взгляд на неймспейсы с обязательным использованием.
В PHP ты написал require_once и дальше тебе это доступно, пока жива PHP-шная сессия выполнения. Обычно при использовании CMS люди запихивают всё в классы, а классы располагают в специальных местах, и пишут свою маленькую функцию, которая знает эти места и регистрируют её через spl_autoload_register в самом начале файла.
В питоне каждый файл — своя область видимости. И в нём будет доступно только то, что вы в него подгрузите. По умолчанию доступна только стандартная библиотека питона (около 80 функций). Но давайте лучше на примере:
Допустим, вы сделали файл tools/logic.py
И теперь хотите его использовать в файле main.py. В этой ситуации вам необходимо импортировать или весь файл или нужные вам части в файл, где вы работаете.
И так абсолютно везде. Почти все файлы на питоне начинаются с импортов в текущий файл вспомогательных питонячих объектов: ваших и встроенных библиотек. Это всё равно как если бы функции в PHP вида mysqli_*, pdo_*, memcached_*, а также весь ваш код находились только в неймспейсах, и вам приходилось бы каждый раз их импортировать в каждом файле. Какие преимущества у такого подхода?
Удобно ли каждый раз прописывать импорты? Это зависит от вашего склада ума. Если вам нравится больший контроль над кодом, то вы предпочтёте прописывание импортов, чем их отсутствие. В некоторых командах существует даже своя система правил, описывающих в каком порядке можно подключать внешний код для минимизации циклических импортов до минимума. Если в вашей команде нет таких правил и вы не хотите особо заморачиваться, то можно просто положиться на IDE, которая автоматически проставит импорты для всего, что вы используете. Ну и в довесок: импорты не уникальная особенность питона, в Java и C# тоже есть импорты, вроде никто не жаловался.
Параметры в функции *args, **kwargs
Синтаксис с параметрами по умолчанию в целом похож:
Но порой вам нужна функция под неизвестное количество аргументов. Это может быть: проксирующая функция, логирующая функция или функция для получения сигналов. В PHP, начиная с 5.6, вам доступен следующий синтаксис:
В Python аналогично можно ловить в массив неименнованные и в словарь именованные аргументы:
Соответственно *args — list неименованных аргументов, **kwargs — dict именованных аргументов.
Классы
Давайте посмотрим на следующий код:
Какие основные отличия от PHP мы можем выделить:
Стиль кодирования
Не знаю как у вас, а я писал на несколько долгоиграющих проектов и всегда отмечал, что стиль кодирования у разных членов команды разный. Нередко по коду можно понять, кто это писал. И всегда хотелось, чтобы был какой-то стандарт оформления кода для единообразия. И всегда были большие споры при согласовании этого документа внутри команды. Для питона это тоже справедливо, но в меньшей степени, ибо есть рекомендации от людей, в квалификации которых мало кто может сомневаться и советов от которых на первое время хватит:
Версии питона
В PHP новые версии всегда обратно совместимы со старыми, хотя иногда требуется доработка напильником. В питоне есть Python 2 и Python 3. Они не совместимы в лоб, хотя в последнее время разработчики питона дело упростили сильно. Можно сразу писать под две версии, но если используются новые фишки Python 3 типа: встроенной асинхронной поддержки или особенностей нового юникода, то скорее всего ничего не получится. По этой причине вся «тяжёлая промышленность», которая имеет кодовую базу в несколько лет, до сих пор сидит на Python 2.
Разумных причин начинать новый проект на Python 2 на момент 2019 года нет.
Что на что меняется
Вместо выводов
Как понять надо ли оно вам?
Мой способ освоить Python
Если вы разработчик с опытом, то на всё не сильно напрягаясь уйдёт максимум две-три недели.
Обновлено: Мелкие исправления и улучшения (благодаря: dginz, defuz, dsx, Stepanow, Studebecker, svartalf).
Обновлено: Нашлись абстрактные классы (благодаря: yktoo). Так же со временем вам придётся познакомиться с удивительным миром декораторов.
Обновлено в 2018: Особенности распространенности Python 2 и 3.
Обновлено в 2019: Особенности Python 3.8 и англоязычный перевод.




