![[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:44 pm (UTC)Причём иногда -- на совсем непонятных местах. Скажем (пример мелочный, конечно), нет тут операции инкремента. Ни как i++, ни как inc(i). Ну и декремента тоже. Да, я, конечно, могу записать i += 1, но нафига так ограничивать?
То, что присваивание -- не операция, а оператор -- да, отчасти логика понятна, устранение причины популярной ошибки. Но за то и вместо какого-нибудь while (v=nextval()) { dosomething }, где значение false остановит цикл, приходится корячиться как-то иначе...
Да, возможно, я ещё не изучил и не познал то, как в этом языке удобно и красиво обходиться без всего этого...
no subject
Date: 2011-06-03 02:51 pm (UTC)"Dive into Python", "Python tutorial", "Language reference".
Все, естественно, есть в дистрибутиве.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2011-06-05 10:43 am (UTC)Напиши "i := i + 1;" (паскалевский синтаксис) и будет тебе счастье.
Эту строчку поймет любой программист, даже начинающий.
А выражения типа "while True do begin.....(if ... Break;)... end;" я пишу регулярно. Все видно, читабельно и понятно.
(no subject)
From:(no subject)
From: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)
From:(no subject)
From:no subject
Date: 2011-06-05 10:45 am (UTC)(no subject)
From:no subject
Date: 2011-06-03 02:41 pm (UTC)no subject
Date: 2011-06-03 02:52 pm (UTC)no subject
Date: 2011-06-03 02:54 pm (UTC)(no subject)
From:no subject
Date: 2011-06-03 02:51 pm (UTC)А то преимущества Явы перед плюсами я вижу иначе.
no subject
Date: 2011-06-03 02:54 pm (UTC):)
Date: 2011-06-03 04:10 pm (UTC)"Питон круче и лучше перла тем же, чем паскаль круче и лучше C++."
Кстати, это не шутка.
no subject
Date: 2011-06-03 05:40 pm (UTC)Re: :)
Date: 2011-06-04 06:31 am (UTC)Re: :)
Date: 2011-06-05 10:23 am (UTC)А для серьезного разговора о питоне мне бы не помешало его освоить.
Но...
По-моему ощущению, питон весьма похож на паскаль. Черт с ним, с синтаксисом, это, как раз, совершенно неважно. Важнее - способ мыслить, который формирует язык программирования. И наличествующие ограничения языка, некие строгости, весьма способствуют хорошему коду. Потому что не дают возможности растекаться "мыслею по древу".
Да, многим очень хочется, что бы ограничений было поменьше. И такие языки есть. Но, далеко не всегда, можно прочесть программу, написанную на таком языке. Думаю, что ты не раз видел программы-загадки на С и перле.
А вот наличие ограничений весьма способствует аккуратному читабельному коду.
Примерно так.
Разумеется, ко всему вышесказанному можно и нужно применить словечко "IMHO".
Re: :)
From:no subject
Date: 2011-06-03 04:57 pm (UTC)В питоне только отступы бесят поначалу, остальное-то вполне нормальное.
Ну и при грамотно настроенном редакторе отступы прекращают быть проблемой.
no subject
Date: 2011-06-04 06:40 am (UTC)Помнишь анекдот про гену, чебурашку, траву и полотенце? Так вот, меня очень.... печалит необходимость говорить "Генадий, помнишь, ты просил меня принести тебе полотенце, так вот ...", когда можно просто сказать "Гена - на". ;)
no subject
Date: 2011-06-04 09:20 am (UTC)Но $/@/% в начале переменных, референсы с сумасшедшим синтаксисом, if/unless, которые в префиксном случае требуют скобочек, а в постфиксном — нет, "переменные по-умолчанию" типа $_/@_, $1-$9, прибитый шурупами ООП (существенно более внятный в питоне)...
Питон по сравнению с перлом лаконичный и понятный.
Некоторые вещи на перле делаются существенно проще чем на питоне. Некоторые — сложнее.
И, да, к ебанистике Перла можно привыкнуть. Как и к ебанистике любого ЯП, в т.ч., Питона.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2011-06-03 06:14 pm (UTC)no subject
Date: 2011-06-04 06:40 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2011-06-04 07:34 am (UTC)Вот про Python могу сказать, что лично я до сих пор пока не увидел ни единой разумной причины, по которой там нет инкремента, кроме "так решил автор языка потому, что считает, что его наличие сподвигнет программистов писать непонятный код". Причину, подчеркиваю, считаю разумной, но лично мне оно все равно неприятно.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2011-06-05 11:07 am (UTC)Просто нужно немного времени и желания, чтобы проникнуться pythonic way, потому что язык предполагает немного другой стиль программирования чем более традиционные языки вроде C, C++ и т.д. (на перле не писал).
Например, я ничуть не страдаю от отсутствия инкремента.
И циклы типа while(x = dosmth()) в 99% случаев можно таки записать pythonic way "for x in smth" (в этом очень помогают comprehensions, generators и yield)
no subject
Date: 2011-06-05 12:12 pm (UTC)Собственно, об том и был исходный пост: "Чего я там пока не заметил?"
Но некоторые увидели в этом только банальный holywar, и толком ничего не сказали.
Что же до "традиционных языков" -- я их всяких знаю побольше, чем просто С и С++. (Хотя и меньше, чем знают
(no subject)
From: