Подтвердить что ты не робот

Будет ли Python 3 когда-либо улавливать?

Я изучал немного Python 2 и Python 3, и кажется, что Python 2 в целом лучше, чем Python 3. Итак, когда мой вопрос приходит. Есть ли веские причины для перехода на python 3?

4b9b3361

Ответ 1

В целом и даже в большинстве случаев Python3 лучше, чем Python2.

Единственная область, где Python 3 отстает, относится к сторонним библиотекам.
Что делает Python отличным не только его внутренними характеристиками как языка и его довольно обширная стандартная библиотека, но также и наличие целой "экосистемы" библиотек, которые поддерживают так много конкретных приложений языка.
Несколько таких библиотек в настоящий момент полностью не переносятся на Python 3.x, и это иногда приводит к тому, что люди подпадают под Python 2.x.

Эта ситуация может показаться немного похожей на проблему с курицей и яйцом.. Разработчики приложений не будут перемещаться в 3.x до тех пор, пока библиотеки "не появятся", разработчики библиотек предпочтут поддерживать только одну ветку и ждут в попытке времени портировать Py3k таким образом, чтобы в ближайшее время они могли поместить свои ветки Py2.x в ближайшее время.

Эта ситуация является скорее свидетельством удовлетворенности людей Python 2.x(или выражено более негативно, к отсутствию действительно привлекательных стимулов для перехода на 3.x, в то время как Py3k лучше и сбалансирован для лучших вещей, as-is, у него нет никаких функций, которые бы подсказывали переход на 3.x "en masse".) Это говорит о том, что импульс эффективно в пользу Python 3.
Чтобы поддержать это, я хотел упомянуть о вероятности того, что Unladen Swallow будет только портирован только на Py3k, что обеспечит сильный стимул для этого шага. Но Алекс Мартелли начал отвечать на этот вопрос и использует этот пример. Очевидно, Алекс говорит из первых рук из этих дорожных вопросов, пожалуйста, получите его от Учителя!

Слово предостережения относительно версий Py3k. Обязательно используйте самую последнюю версию (в настоящее время 3.1.2, вскоре 3.2.x заменит ее как самую последнюю стабильную версию).
Помните, что некоторые люди (например, я) иногда используют выражение "3.0" для ссылки на общее имя для всех Py3k (или даже для его текущей версии). Краткосрочная версия 3.0 в настоящее время "перестает функционировать" и не представляет интереса, но, может быть, судебных специалистов; -)

Ответ 2

Как упоминают другие ответы, единственным реальным (и ключевым) преимуществом Python 2 над Python 3 является то, что у первого уже есть огромное количество сторонних расширений (и вспомогательные инструменты, такие как IDE и т.п.), который последний только постепенно продвигается. Это ситуация, которая постепенно улучшается, поскольку существующие расширения переносятся на поддержку Python 3; рано или поздно кто-то выпустит расширение Py3-only или инструмент, который вам очень важен, и это может повлиять на использование Py3 для нового проекта (и это произойдет для многих разных значений "you"; -).

Основная разработка Python в основном переместилась в область Python 3 - в то время как Python 2.7 скоро выйдет, я не уверен, как много будущих важных улучшений, если они есть, будут поддерживать обратную связь с версиями Python 2. В частности, я сомневаюсь, что Unladen Swallow будет - если это произойдет, то в какой-то момент CPython 3 получит преимущество над скоростями над CPython 2, что станет фактором опрокидывания для других новых проектов (и портов существующих проектов).

Не уверен, что создает впечатление, что "Python 2 превосходит Python 3", в терминах, конечно, всего лишь "собственно Python", т.е. частей, выпущенных Фондом программного обеспечения Python (код ядра, библиотеки, документы...): Я категорически не согласен с этой оценкой. Python 3 лучше с точки зрения простоты (удаление трещин) и имеет несколько функций, которые позволяют будущим сторонним расширениям и инструментам (например, лучшее взаимодействие с метаклассом и синтаксис аннотации параметров); На самом деле я не могу найти никаких преимуществ для Python 2 с точки зрения "собственно Python". "Экосистема" вокруг Python, как уже обсуждалось, - это еще одна вещь, но уже прогрессирующая (в своем собственном темпе, конечно же, которая не находится под контролем Python Software Foundation, а скорее многих внешних групп разработчиков и несколько фирм).

Например, PyQt уже доступен для Python 3 (а также 2), и вы можете использовать PostgreSQL (великолепный механизм базы данных SQL с открытым исходным кодом, гораздо более стандартный, чем MySql) через py-postgresql. Таким образом, если сторонние расширения, которые вы пытаетесь использовать (скажем) wxpython и mysqldb, возможно, вы можете попробовать эти альтернативы (я имею в виду, конечно, поскольку я давно предпочитаю Qt wxWidgets и PostgreSQL для MySQL, по чисто техническим соображениям, но быстрый перенос связанных расширений Python на Python 3 также намекает на то, что эти расширения более активно и энергично развиваются, так что это может быть еще одним толчком для их использования: -).

Ответ 3

Python 3 станет новым стандартом в будущем.

Поскольку в ближайшее время в Python 3 не планируется внесение больших изменений, все больше людей в конечном итоге будут двигаться к нему. Итак... хотя сейчас есть много приложений Python 2, в конечном итоге многие из этих приложений будут перенесены. Существует даже инструмент для этого, 2to3.

Кроме того, что заставляет вас сказать, что python 2 лучше, чем 3? В Python 3 было много улучшений языка, и даже улучшено IDLE. Одна из основных причин обновления - без запаха проглатывается на python 3, что значительно улучшит производительность.

Ответ 4

Главное, что сейчас стоит Python 3.x прямо сейчас - отсутствие сторонних библиотек. Я буду преобразовывать свой код, как только SciPy будет перенесен.

Ответ 5

Больше итераторов (в таких вещах, как dict.keys()) станет большим стимулом для веб-приложений.

Основная команда добавит больше работы в новую версию. Новые книги могут быть сосредоточены на python 3 (см. "Погружение в Python" ), но реальная работа все еще выполняется в python 2.

Рано или поздно будут перенесены большие библиотеки (numpy, wx, django). До тех пор, пока эти большие три переключателя, я не вижу многих людей, использующих python 3. Но это не невозможные проекты для порта.

После переноса больших библиотек сообщество столкнется с реальным выбором. Это когда он начнет ловить.