Должен ли я начать с Python 3.0? - PullRequest
12 голосов
/ 03 августа 2009

Недавно я решил расширить свои горизонты программирования и выучить язык программирования Python. Хотя я немного использовал python для занятий в колледже и для одного или двух проектов на работе, я ни в коем случае не эксперт. Мой вопрос заключается в следующем: я должен беспокоиться о выпусках 2.x или я должен перейти прямо к 3.0? Я склоняюсь к версии 3.0, поскольку буду больше программировать приложения для личного / учебного использования, но я хотел посмотреть, есть ли какие-либо веские аргументы против этого, прежде чем я начну.

Ответы [ 8 ]

20 голосов
/ 03 августа 2009

Абсолютно нет 3.0 - 3.1 отсутствует и стабильнее, лучше, быстрее во всех отношениях; в настоящее время нет абсолютно никакого смысла начинать с версии 3.0, если вы хотите использовать 3 серии, она должна быть на всех учетных записях 3.1.

Что касается 2.6 против 3.1, 3.1 - лучший язык (особенно потому, что была удалена некоторая фракция, которая накопилась за годы, но должна остаться в 2. * для обратной совместимости), но все остальное в экосистеме (от расширений до инструменты, от книг до коллективных знаний) по-прежнему в значительной степени в пользу 2,6 - если вам не нужно, чтобы иметь возможность использовать (например) определенные графические интерфейсы или научные расширения, разверните в App Engine, сценарий Windows с COM, иметь рекомендуется отличная сторонняя IDE и т. д. 3.1, но если вы заботитесь о таких вещах, все равно 2. * пока.

8 голосов
/ 09 октября 2009

Использование 3,1

Почему?

1) Поскольку все еще используют 2.6, у библиотек будет меньше причин для перехода на 3.1. Пока эти библиотеки не портированы на 3.1, вы застряли с выбором: не использовать сильные стороны 3.1 или выполнять работу наполовину, используя хакерское решение с использованием набора портированных функций. Будьте дальновидным и помогите продвинуть Python вперед.

2) Если вы изучаете и используете 3.1 сейчас, вам не нужно будет переучивать его позже, когда массовый порт будет завершен. Я знаю, что некоторые люди говорят, что вам не нужно много учиться, но зачем вообще изучать старую чушь? Сам Python движется к 3.1 , библиотеки переходят к 3.1, и это отстой, когда приходится играть в догонялки и переучивать язык, который вы уже используете.

3) 3.1 - это лучший язык , более стабильный и более последовательный, чем 2.6 ... это нормально. Все уроки, извлеченные из 2.6, были добавлены в 3.1 для улучшения. Это процесс, называемый PROGRESS . Вот почему никто до сих пор не использует Windows 3.1. Так все движется вперед. Почему, по-вашему, они сразу занялись переносом набора функций?

4) Если вы изучаете Python и изучаете 2.6, то к тому времени, когда вы действительно освоитесь с языком, порты освободятся, и вам придется заново изучать библиотеки и язык. Если вы начнете с 3.1, то к тому времени, когда вы освоитесь с языком, порты будут отключены, и вы сможете изучать интересующие вас библиотеки. Это более плавный процесс .

5) Быть лучшим разработчиком. Если вам придется учиться и заново изучать одни и те же вещи, ваше понимание не будет очень глубоким. Изучая этот язык и его библиотеки только один раз, у вас будет больше времени для работы с ними, а не для повторного изучения синтаксиса. Это позволяет вам лучше понять их. Если вы действительно упускаете некоторые части, отказываясь от библиотек? НАПИШИТЕ ИХ. Вероятно, вам не понадобится целая библиотека, и вы можете писать только те части, которые вам нужны, и разрабатывать инструменты для себя. Это также поможет вам лучше понять язык и глубже.

7 голосов
/ 04 августа 2009

Краткий ответ: начните с Python 2.6.

Почему: программирование становится более увлекательным и полезным, когда вы можете использовать работу других. Это означает частое использование сторонних библиотек. Многие из популярных библиотек для Python пока не поддерживают 3.x. PIL и NumPy / SciPy приходят на ум. Мой любимый интерпретатор, ipython, также пока не работает с 3.0. Многие фреймворки для модульного тестирования и веб-фреймворки также не работают на 3.0.

Так что, если вы начнете в 3.x, многие двери будут закрыты для вас, по крайней мере, до тех пор, пока 3.x портирование не наберет обороты. По общему признанию, в Python 3.x есть много приятных функций, но некоторые из них были перенесены в 2.6, а некоторые добавят в 2.7. Так что придерживайтесь 2.6 на данный момент и переоцените 3.x через год или около того.

4 голосов
/ 03 августа 2009

Я думаю, что вы будете лучше обслуживаться, перейдя прямо в 3.0. Если у вас нет унаследованной кодовой базы, с которой вам приходится сталкиваться, есть очень мало преимуществ для изучения 2.xx способов ведения дел.

В мире Python (как, впрочем, и в большинстве других) релизам обычно требуется некоторое время для перехода ко всем подпроектам, но если вам когда-нибудь понадобится перейти обратно на 2.xx, я Не думаю, что вы найдете повторные вещи особенно болезненными.

3 голосов
/ 03 августа 2009

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

2 голосов
/ 03 августа 2009

Хорошей новостью является то, что освоить Python 2.x и 3.x не так уж и сложно. Вы можете установить последнюю версию 2.x как версию, зарегистрированную в системе, чтобы запускать скрипты Python по умолчанию, а также установить последнюю версию 3.x, чтобы явно запускать ее, когда захотите. Это то, что у меня есть в моей системе Windows Vista.

Тогда ключевой документ для изучения различий между версиями 2.x и 3.x:

http://docs.python.org/3.1/whatsnew/3.0.html

Если вы читаете учебные материалы по Python, основанные на 2.x, а также ссылаетесь на ссылку «Что нового в Python 3.0» выше, вы поймете, как все изменилось. Также посмотрите другие новые документы, например, о различиях между 3.0 и 3.1, но ссылка выше является основной для понимания изменений 2.x против 3.x.

2 голосов
/ 03 августа 2009

Python 3.1 не должен использоваться, пока другие библиотеки не догонят его поддержку.

Вы должны использовать 2.6 сейчас. Он имеет несколько функций 3.x, перенесенных на него, поэтому переход на 3.x в дальнейшем не составит труда, и вы не изучите устаревшие методы.

2 голосов
/ 03 августа 2009

Используйте Python 3.1, Люк.

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