Найти - Пользователи
Полная версия: Книги по python
Начало » Python для новичков » Книги по python
1 2 3 4 None 17 18 19 20 21 22 23 24 None 57 58 59 60
balu
2 Ferroman:
распухание - в языке - введено много сахара там, где большой надобности в нем не было - все эти геттеры/сеттеры, оператор with, аннотации, операторы / и //, новая форма записи if/else, генераторные выражения и списочные включения.
итераторы, генераторы и метаклассы, - вещи, полезные, но, будучи внесенными в язык изменили характер самого языка.
две несовместимые ветки.
Отдельно частый релиз-цикл, когда предыдущие релизы до конца не ассимилированы.
Андрей Светлов
balu
А я наивно считал все перечисленное - достоинствами 8-)
balu
Андрей Светлов
А я наивно считал все перечисленное - достоинствами 8-)
- геттеры/сеттеры расчудесно работали с property, зачем объявлять по новому?
- чем не угодил try/finally, что ввели with?
- аннотации лично мне не травятся тем, что аннотируемое может не соответствовать реальным значениям параметров. Можно, конечно, создать и соответствующий декоратор, который будет проверять соответствие типов аннотируемому, но нет никакой гарантии, что его будут применять. Выглядит это, как костыль к объявлению типов.
- генераторные выражения и списочные включения лично меня подкупают только большей скоростью выполнения. Но парсить это глазами мне неудобно. Аналогично и с новой формой записи if/else, плюс Питон давно имел эту функциональность.
ИМХО, не было серьезной причины вносить это в язык. Лично я не вижу большого выигрыша на операциях примерно одной сложности. Хороший пример того, что внесли удачно - это декораторы.
balu
итераторы, генераторы и метаклассы
А за это я ничего плохого и не сказал. Разве что не совсем простые эти концепции. Но их полезность превышает затраты на них.
balu
две несовместимые ветки.
А что тут хорошего? Надо держать в голове фактически 2 разных языка - с 2-ки еще долго многие не слезут, а 3-ка еще мало интересна во многих областях.
balu
частый релиз-цикл
Ага, очень неприятно, когда из-за этого у тебя что-то отваливается и приходится патчить. Зато имеем нового сахарку. Лично меня вполне устроил бы и релиз языка раз в 2 года - ИМХО самый оптимальный срок.
Андрей Светлов
balu
- геттеры/сеттеры расчудесно работали с property, зачем объявлять по новому?
property - частный случай дескриптора, который имеет гораздо более широкую функциональность. Реализаций дескрипторов может быть множество (я сам их делал как минимум несколько десятков раз).
Дескрипторы введены для лучшей инкапсуляции.
balu
- чем не угодил try/finally, что ввели with?
Это не только try/finally (с информацией об исключении, которую можно достать и через sys.info - более неявно), но и переменная контекста. Context managers опять же обеспечивают лучшую инкапсуляцию, code reuse и прочие чудесные вещи. Являясь синтаксическим сахаром, конечно. И запись чуть короче. А еще это - некий общий протокол, которому стараются следовать. Это лучше, чем 5 лет назад: пытались делать context managers, но у каждой работы способ их использования был своим, чуть отличным от других.
С позиции асма любой ЯП - не более чем синтаксический сахар. Только иногда на глазах количество перерастает в качество.
balu
- аннотации лично мне не травятся тем, что аннотируемое может не соответствовать реальным значениям параметров. Можно, конечно, создать и соответствующий декоратор, который будет проверять соответствие типов аннотируемому, но нет никакой гарантии, что его будут применять. Выглядит это, как костыль к объявлению типов.
Аннотируется не тип параметра или возвращаемого значения, а сам параметр “вообще”. Т.е. это как с дескрипторами: можно сделать на них property, а можно - нечто совсем другое.
balu
- генераторные выражения и списочные включения лично меня подкупают только большей скоростью выполнения. Но парсить это глазами мне неудобно. Аналогично и с новой формой записи if/else, плюс Питон давно имел эту функциональность.
Мне читать - привычно. А то, что генераторное выражение является именно expression, а не statement - позволяет включать это где угодно. Упрощая запись. Впрочем, не нравиться - не ешь. Никто не заставляет.
var = a if cond > 0 else b
чуть понятней и менее глюкаво, чем
var = cond and a or b
Более явно, что ли.

balu
ИМХО, не было серьезной причины вносить это в язык. Лично я не вижу большого выигрыша на операциях примерно одной сложности. Хороший пример того, что внесли удачно - это декораторы.
Еще есть как минимум
res = yield a
и
yield from gen()
balu
balu
итераторы, генераторы и метаклассы
А за это я ничего плохого и не сказал. Разве что не совсем простые эти концепции. Но их полезность превышает затраты на них.
Метаклассов должно быть мало, но порой без них сложно обойтись.
Итераторы и генераторы - элементарные и повсеместно используемые строительные блоки.

balu
balu
две несовместимые ветки.
А что тут хорошего? Надо держать в голове фактически 2 разных языка - с 2-ки еще долго многие не слезут, а 3-ка еще мало интересна во многих областях.
Второй ветке массово жить еще полтора-два с половиной года. Потом утвердится тройка, и это меня радует. Помню, то же говорили сразу после выхода Python 2.0

balu
balu
частый релиз-цикл
Ага, очень неприятно, когда из-за этого у тебя что-то отваливается и приходится патчить. Зато имеем нового сахарку. Лично меня вполне устроил бы и релиз языка раз в 2 года - ИМХО самый оптимальный срок.
Отваливается редко и мало, все же. У меня никогда не было больших проблем с миргацией на новую минорную версию. py3k - другое дело, но этот шаг вынужденный. Иногда приходится убирать мусор за собой, и делать это довольно кардинально.
В других ЯП зачастую ситуация еще более веселая.

Кстати, опять же: не нравятся частые релизы - можно брать на использование только каждый четный :) Для согласования внутренних ритмов :)
balu
Андрей Светлов
Аннотируется не тип параметра или возвращаемого значения, а сам параметр “вообще”
Я прекрасно понимаю, что можно сделать значительно больше, чем просто аннотацию и последующую проверку типа. Мне гораздо больше не нравится, что на этой основе можно наделать несоответствия описываемого реальному. Тут вопрос больше к культуре и самодисциплине программистов, чем к конкретной фиче языка.
Андрей Светлов
С позиции асма любой ЯП - не более чем синтаксический сахар. Только иногда на глазах количество перерастает в качество.
С позиций двоичных кодов и асм тоже сахар. Плохо не то, что есть сахар. Плохо когда его больше, чем нужно. Все вышеперечисленное является немного улучшенной реализацией того, что уже есть и примерно того же уровня сложности. Мне, любителю минимализма, это не понравилось. Единственная польза, ИМХО, это направление на стандартизацию уже имеющихся решений. Примерно как с абстрактными классами - у многих было реализовано по разному, а теперь есть общая рекомендация.
А итераторы, генераторы и метаклассы хотя и изменили характер языка то только в плюс. Тут просто констатация факта.
Андрей Светлов
var = a if cond > 0 else b чуть понятней и менее глюкаво
Но и менее функционально. Хотя записывать таки быстрее.
Андрей Светлов
Второй ветке массово жить еще полтора-два с половиной года. Потом утвердится тройка, и это меня радует
Думаю больше, увы. Например, у меня 5 из 5 ключевых библиотек на 2.Х, у знакомых тоже примерно та же ситуация. И перейти на 3-ку можно будет только когда они все заработают. Или найдутся адекватные замены. А за это время еще пара минорных версий языка сменится.
Андрей Светлов
Впрочем, не нравиться - не ешь. Никто не заставляет.
И про плюсы так говорят… И в перле есть много способов сделать что-то. И потом, я ведь не в вакууме живу, приходится принимать то, что не нравится.
Андрей Светлов
У меня никогда не было больших проблем с миргацией на новую минорную версию
А у меня были - пришлось несколько дней потратить на переписывание после перевода кода на 2.6. Знакомые по той же причине на 2.4 держат часть своего production.
Андрей Светлов
balu
Кажется, прозвучало ключевое слово - стандартизация имеющихся подходов. И это очень важно. Остальное - шелуха. Плюс каждый может иметь свое собственное мнение.

Вопрос о массовом переходе на тройку - интересен. Поглядим, как оно в жизни пойдет. Я оптимистично думаю, что все будет довольно быстро. Отчасти потому, что помню как это было уже один раз. И, в немалой степени, потому что мне очень нравятся новые изменения и очень хочется видеть их повсеместно - но это уже субъективное.
balu
Андрей Светлов
И, в немалой степени, потому что мне очень нравятся новые изменения
Мне тоже нравятся, хотя я очень боялся за lambda и reduce, которыми постоянно пользуюсь. В любом случае поживем - увидим. Хотя - прошел почти год, с выхода 3-ки, вышла 3.1, а во многих библиотеках нет никакого шевеления в сторону 3-ки. А жаль, особенно мне хочется Ordered Dictionaries.
Андрей Светлов
Двойка тоже пошла “в люди” начиная со знаменитого релиза 2.2
slav0nic
http://diveintopython3.org/
dezz
Я новичёк в программировании, опыта мало, хочу купить книгу в бумажном издании, подскажите какую именно приобрести, чтобы не было воды, чтобы всё было понятно, полностью разжёванно так сказать ;)

Спасибо!
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