The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Стратегия параллельного поддержания веток Python 2 и Python ..."
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Отдельный RSS теперь доступен для каждого обсуждения в форуме и каждого минипортала.
. "Стратегия параллельного поддержания веток Python 2 и Python ..." +/
Сообщение от netch (ok), 07-Янв-14, 19:32 
> Плевать на математику - еще менее допустимо.
> На какой еще "схожий" да еще "совместимый" тип вы собираетесь сменять?  
> На float что-ли?  Так float и bigint - две огромные
> разницы, только школота мешает в одную кучу точную арифметику и операции
> с числами в формате с плавающей точкой.

Раз школота их мешает в одну кучу, значит, это школота написала Питон. Потому что она в принципе позволила при проектировании языка делать неявные конверсии из (big)int во float. И во главе этой школоты - князь Гвидон.

Вы, как говорится, или трусы наденьте, или крестик снимите. Или мы в принципе не допускаем произвольного смешения этих типов, всё только через явную конверсию. Тогда проблемы с определением смысла операции, действительно, нет, но действие типа 5.0/2 должно вызывать исключение, потому что типы несовместимы. Это подход, например, Go (причём там даже нет неявной конверсии между 32-битным uint32 и таким же 32-битным unsigned int). Хочешь конверсии - задай явно и уточни, как именно (может, тебя не устраивает режим округления по умолчанию). Или же мы допускаем смешение, но в таком случае эти две операции *надо* разделять. Питон выбрал более традиционный путь, и я не считаю, что это так уж плохо.

>> Частично согласен, но в том смысле, что этот переход был неизбежен, только
>> его надо было сделать мягче. Оставить префикс u (вернутый в 3.3),
>> ввести префикс b
> Для обеспечения подобной совместимости - люди написали сторонние модули, напр. six.  
> Нет никакой нужды было тащить это в потроха CPython.

Посмотрел, ужаснулся, спасибо. Если мы ещё и это будем дёргать на каждый чих... тут и так каждая лишняя функция проверяется на то, нельзя ли обойтись без неё, потому что вызов функции - страшно дорогое действие. А ещё и, например, six.b() на каждый такой литерал?
Извините, это несерьёзно.

>> Тут меня больше всего удивляет, например, игра между range и xrange, items
>> и iteritems... Зачем было убивать старое понимание?
> А зачем его сохранять, если py2 и py3 все-равно несовместимы?  Или
> вы против самого изменения?

Да, я считаю, что оно не нужно. Ничего вредного в xrange, dict.items() который выдаёт список и т.п. - не было.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Стратегия параллельного поддержания веток Python 2 и Python ..., opennews, 31-Дек-13, 10:56  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру