Найти - Пользователи
Полная версия: почему начали делать python v.3?
Начало » Python для новичков » почему начали делать python v.3?
1
Koala
Уважаемые гуру (и гуреянки :-) python!

Что Вы ответите на вопрос: а зачем, собственно начали делать 3-й питон?
Нельзя ли было бы бы обойтись только 2-м?

Это же в виде списка :-)
 ["почему", 'отчего', 'зачем', "из-за чего", "из-за кого"]
начали делать python v.3?
py.user.next
Koala
Нельзя ли было бы бы обойтись только 2-м?
Это обычное версионирование программ. Скрипты для третьего питона не могут выполняться на втором питоне.
Когда в программе ничего не меняется, меняется третье число. (баги исправляются)
Когда в программу добавляется новая возможность, меняется второе число. (добавляется функция)
Когда из программы удаляется какая-то возможность, меняется первое число. (удаляются функции)

Если конкретно взять, то в третьем питоне полностью переделаны строки из одной формы в другую, многие встроенные функции слиты в одну, оператор print заменён на функцию print(). То есть изменено прямо ядро языка и из него удалены многие конструкции.
Rodegast
Ну наверное из за непреодолимого желания всё поломать.
PEHDOM
Пайтон 3 разрабатывался с целью устранения фундаментальных изъянов в языке. Эти изменения не могли быть сделаны при условии сохранения полной обратной совместимости с 2-й версией, поэтому изменили номер версии.
Koala
PEHDOM
Пайтон 3 разрабатывался с целью устранения фундаментальных изъянов в языке. Эти изменения не могли быть сделаны при условии сохранения полной обратной совместимости с 2-й версией, поэтому изменили номер версии.
Спасибо, но что-то Вы не договариваете.

Какие это “фундаментальные изъяны”, где “инь”(изъ) а где “яны” :-) ?

Допустим я утверждаю, что 3-й питон пришлось делать из-за невозможности на 2-м нормально работать с unicode, а unicode нагрянул, ну и оказалось, что легче сделать 3-ю версию “заново”, чем перепиливать 2-ю для юникода (оно же “работа со строками”, но там же не только строки, но и все остальные структуры данных, кроме путей файлов в Win, которые по прежнему в cp866, но тут уж дело не в python-е).
(Т.е. 2-ю конечно допиливали, но до конца не смогли.)

Такое объяснение годится? или нет? или наполовину?

P.S. кроме желания все поломать, не было ли у кого желания все починить? :-)
PEHDOM
Koala
Такое объяснение годится? или нет? или наполовину?
там на самомо деле много изменений: это замена оператора print встроенной функцией, улучшение способа деления целых чисел и поддержка Unicode по умолчанию, range заменили на xrange, но при этом название осталось range, у словарей убрали “лишние” методы, map, filter и zip стали возвращать итератор вместо списка.. полный список можно почитать тут https://docs.python.org/3.0/whatsnew/3.0.html
Вобщем все этого оказалось слишком много , нужно было или городить костыли или отказаться от обратной совместимости.
Koala
Я это понимаю, но замена print, xrange/range, и прочее, и замена input-ов, которые Вы забыли упомянуть, это конечно много, + традиционное исправление ошибок, но все же это мелочи. А вот что “по крупному”? я полагаю, что unicode, но может я ошибаюсь. Ведь переход на unicode требует “покорежить” очень много внутренних механизмов, которые до того работали с 256-ю символьной табличкой.

Но может чего-то ключевого-главного таки нет, и я ищу в темной комнате белую кошку, которой там просто нет? (убежала).


JOHN_16
Koala
не надо думать что там сидят глупые люди. Была произведена огромная работа (часть которой конечно уже можно было видеть в виде backports в 2.6/2.7). ВышеPEHDOM уже указал ссылку на summary по изменениям. Было сделано много изменений ломающих обратную совместимость как на уровне python кода, так и наверняка на уровне C. Все ради того что бы очистить существующую кодовую базу от всего того негативного, что мешает дальнейшему развитию языка. И все это нельзя было провести минорным релизом. Те программисты кто работают в крупных проектах понимают как сложно даются фундаментальные изменения.
На самом деле какой то флеймообразующий топик.
Rodegast
> Все ради того что бы очистить существующую кодовую базу от всего того негативного, что мешает дальнейшему развитию языка.

Вот только я ничего негативного в 2.x припомнить не могу… Конечно там есть шероховатости, но не более. Ломать из-за них совместимость не следовало.

> P.S. кроме желания все поломать, не было ли у кого желания все починить? :-)

Желание всё поломать == Желание починить всё что работает.
Koala
Большое спасибо всем, кто откликнулся. Не хочу развивать флейм.
Хотел просто для себя прояснить ответ на этот вопрос.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB