![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Первое беглое знакомство с Python оставило ощущение непонимания, нафига там сделан такой прокрустов синтаксис. Никаких разумных причин сходу не увидел, в книжках объяснений внятных тоже не нашёл. В чём смысл7 (кроме "а вот такой у автора был способ самовыражения!")
И вот уже неделю рою питона пристально, пишу на нём уже что-то, в чужом коде копаюсь. И синтаксис его продолжает не радовать. Нагородили ограничений с непонятно какой радости...
Чего тогда все с него так прутся? В чём он настолько лучше Perl'а?
И вот уже неделю рою питона пристально, пишу на нём уже что-то, в чужом коде копаюсь. И синтаксис его продолжает не радовать. Нагородили ограничений с непонятно какой радости...
Чего тогда все с него так прутся? В чём он настолько лучше Perl'а?
no subject
Date: 2011-06-03 02:19 pm (UTC)no subject
Date: 2011-06-03 02:20 pm (UTC)Выяснилось - только тем, что дороже. А так вагоны такие же, сиденья такие же. Но за счет того, что дороже, там получается намного свободнее, и для определенной категории народа разница в цене окупается.
А еще у Python-а гораздо прямее extension API.
no subject
Date: 2011-06-03 02:32 pm (UTC)Может, оно и так, это ещё не успел осознать. Но как-то в общем, не люблю я сковывающую движения одежду, даже если всем вокруг приходится носить столь же сковывающую.
no subject
Date: 2011-06-03 02:39 pm (UTC)И к переменным непечатные префиксы $, %, @ не нужны.
На самом деле многие вещи которые в других языках идут на уровне стиля кодирования, в питоне вбиты в синтаксис. Например, keyword arguments. В перле есть просто оператор => и традиция делать аргументы вида -foo => bar, а здесь явная синтаксическая конструкция.
no subject
Date: 2011-06-03 02:41 pm (UTC)no subject
Date: 2011-06-03 02:44 pm (UTC)Причём иногда -- на совсем непонятных местах. Скажем (пример мелочный, конечно), нет тут операции инкремента. Ни как i++, ни как inc(i). Ну и декремента тоже. Да, я, конечно, могу записать i += 1, но нафига так ограничивать?
То, что присваивание -- не операция, а оператор -- да, отчасти логика понятна, устранение причины популярной ошибки. Но за то и вместо какого-нибудь while (v=nextval()) { dosomething }, где значение false остановит цикл, приходится корячиться как-то иначе...
Да, возможно, я ещё не изучил и не познал то, как в этом языке удобно и красиво обходиться без всего этого...
no subject
Date: 2011-06-03 02:51 pm (UTC)Вместо лямбды есть безымянный sub{}, который удобен ещё и тем, что он не ограничен одним выражением.
Keyword arguments, конечно, прекрасны, спору нет. Да и не только они.
Да, может, конечно, они действительно "жмут в разных местах".
no subject
Date: 2011-06-03 02:51 pm (UTC)А то преимущества Явы перед плюсами я вижу иначе.
no subject
Date: 2011-06-03 02:51 pm (UTC)"Dive into Python", "Python tutorial", "Language reference".
Все, естественно, есть в дистрибутиве.
no subject
Date: 2011-06-03 02:52 pm (UTC)no subject
Date: 2011-06-03 02:54 pm (UTC)no subject
Date: 2011-06-03 02:54 pm (UTC)no subject
Date: 2011-06-03 03:00 pm (UTC)no subject
Date: 2011-06-03 03:08 pm (UTC)А о "естественности ограничений", кстати, вспомнились тут ощущения от лиспа: совершенно иначе было. Там как-то всё, что было нельзя, вполне естественно (как мне казалось) вытекало из общего принципа.
:)
Date: 2011-06-03 04:10 pm (UTC)"Питон круче и лучше перла тем же, чем паскаль круче и лучше C++."
Кстати, это не шутка.
no subject
Date: 2011-06-03 04:57 pm (UTC)В питоне только отступы бесят поначалу, остальное-то вполне нормальное.
Ну и при грамотно настроенном редакторе отступы прекращают быть проблемой.
no subject
Date: 2011-06-03 05:39 pm (UTC)Меня ужасно напрягают, Перл я очень быстро забросил. А вот принудительные отступы в Питоне ну совсем не напрягают. Всё равно же я пишу лесенкой, так какая разница, позволяет это язык или навязывает?..
no subject
Date: 2011-06-03 05:40 pm (UTC)no subject
Date: 2011-06-03 06:14 pm (UTC)Re: :)
Date: 2011-06-04 06:31 am (UTC)no subject
Date: 2011-06-04 06:40 am (UTC)Помнишь анекдот про гену, чебурашку, траву и полотенце? Так вот, меня очень.... печалит необходимость говорить "Генадий, помнишь, ты просил меня принести тебе полотенце, так вот ...", когда можно просто сказать "Гена - на". ;)
no subject
Date: 2011-06-04 06:40 am (UTC)no subject
Date: 2011-06-04 07:34 am (UTC)Вот про Python могу сказать, что лично я до сих пор пока не увидел ни единой разумной причины, по которой там нет инкремента, кроме "так решил автор языка потому, что считает, что его наличие сподвигнет программистов писать непонятный код". Причину, подчеркиваю, считаю разумной, но лично мне оно все равно неприятно.
no subject
Date: 2011-06-04 09:20 am (UTC)Но $/@/% в начале переменных, референсы с сумасшедшим синтаксисом, if/unless, которые в префиксном случае требуют скобочек, а в постфиксном — нет, "переменные по-умолчанию" типа $_/@_, $1-$9, прибитый шурупами ООП (существенно более внятный в питоне)...
Питон по сравнению с перлом лаконичный и понятный.
Некоторые вещи на перле делаются существенно проще чем на питоне. Некоторые — сложнее.
И, да, к ебанистике Перла можно привыкнуть. Как и к ебанистике любого ЯП, в т.ч., Питона.
no subject
Date: 2011-06-04 10:12 am (UTC)Perl - один из таких языков. Длинные однострочники, набитые $++@--%#& - чистый line noise, как будто модем программу писал.