Python

Jun. 3rd, 2011 06:13 pm
arilou: (Default)
[personal profile] arilou
Первое беглое знакомство с Python оставило ощущение непонимания, нафига там сделан такой прокрустов синтаксис. Никаких разумных причин сходу не увидел, в книжках объяснений внятных тоже не нашёл. В чём смысл7 (кроме "а вот такой у автора был способ самовыражения!")

И вот уже неделю рою питона пристально, пишу на нём уже что-то, в чужом коде копаюсь. И синтаксис его продолжает не радовать. Нагородили ограничений с непонятно какой радости...

Чего тогда все с него так прутся? В чём он настолько лучше Perl'а?

Date: 2011-06-03 02:19 pm (UTC)
vitus_wagner: My photo 2005 (Default)
From: [personal profile] vitus_wagner
Да в общем-то тем же чем Java круче С++. Меньше парадигм, больше ограничений, сложнее написать write-only код.

Date: 2011-06-03 02:51 pm (UTC)
vitus_wagner: My photo 2005 (Default)
From: [personal profile] vitus_wagner
Ну это, книжки вумные читать надо. По-моему в такой последовательности
"Dive into Python", "Python tutorial", "Language reference".
Все, естественно, есть в дистрибутиве.

(no subject)

From: [identity profile] besm6.livejournal.com - Date: 2011-06-04 12:06 pm (UTC) - Expand

(no subject)

From: [identity profile] besm6.livejournal.com - Date: 2011-06-06 01:13 pm (UTC) - Expand

(no subject)

From: [identity profile] besm6.livejournal.com - Date: 2011-06-06 05:41 pm (UTC) - Expand

Date: 2011-06-05 10:43 am (UTC)
belest: (Default)
From: [personal profile] belest
Да не все ли равно, как писать операцию инкремента?
Напиши "i := i + 1;" (паскалевский синтаксис) и будет тебе счастье.
Эту строчку поймет любой программист, даже начинающий.

А выражения типа "while True do begin.....(if ... Break;)... end;" я пишу регулярно. Все видно, читабельно и понятно.

(no subject)

From: [personal profile] belest - Date: 2011-06-06 01:28 pm (UTC) - Expand

Date: 2011-06-03 02:20 pm (UTC)
vitus_wagner: My photo 2005 (Default)
From: [personal profile] vitus_wagner
Помнится, в свое время я спрашивал голладцев чем в голладских электричках первый класс от второго отличается.
Выяснилось - только тем, что дороже. А так вагоны такие же, сиденья такие же. Но за счет того, что дороже, там получается намного свободнее, и для определенной категории народа разница в цене окупается.

А еще у Python-а гораздо прямее extension API.

Date: 2011-06-03 02:39 pm (UTC)
vitus_wagner: My photo 2005 (Default)
From: [personal profile] vitus_wagner
На самом деле по-моему perl и питон - равно сковывающие, просто жмут в разных местах. Вот, например, в перле лямбды нету. А в питоне - есть.
И к переменным непечатные префиксы $, %, @ не нужны.

На самом деле многие вещи которые в других языках идут на уровне стиля кодирования, в питоне вбиты в синтаксис. Например, keyword arguments. В перле есть просто оператор => и традиция делать аргументы вида -foo => bar, а здесь явная синтаксическая конструкция.

(no subject)

From: [personal profile] phd_ru - Date: 2011-06-03 05:39 pm (UTC) - Expand

Date: 2011-06-05 10:45 am (UTC)
belest: (Default)
From: [personal profile] belest
А младенцы - вообще одежду не любят. Потому что любая одежда сковывает.

Date: 2011-06-03 02:41 pm (UTC)
vitus_wagner: My photo 2005 (Default)
From: [personal profile] vitus_wagner
А еще, конечно standard library. На перле без постановки кучи дополнительных модулей с CPAN и чихнуть нельзя. А тут все в комплекте.

Date: 2011-06-03 02:54 pm (UTC)
vitus_wagner: My photo 2005 (Default)
From: [personal profile] vitus_wagner
Мы выбираем не язык, а сообщество коллег, пишущих на том же языке. Перловое сообщество нынче какое-то фрагментированное, и многе олдскульные программисты оттуда разбежались. А питоновское - более консолидированное. Опять же Гвидо сейчас более харизматический лидер, чем Ларри.

Date: 2011-06-03 02:51 pm (UTC)
From: [identity profile] tim-caper.livejournal.com
Если узнаешь, расскажи потом, ага?
А то преимущества Явы перед плюсами я вижу иначе.

Date: 2011-06-03 02:54 pm (UTC)
vitus_wagner: My photo 2005 (Default)
From: [personal profile] vitus_wagner
Наличие JVM - это недостаток Java, существенно ограничивающий переносимость.

:)

Date: 2011-06-03 04:10 pm (UTC)
belest: (Default)
From: [personal profile] belest
Я почти не знаю питона, очень хочется ответить так:
"Питон круче и лучше перла тем же, чем паскаль круче и лучше C++."
Кстати, это не шутка.

Date: 2011-06-03 05:40 pm (UTC)
phd_ru: (Default)
From: [personal profile] phd_ru
Очень может быть. Я 20 лет писал на разных паскалях и Модуле-2, потом переключился на Питон, и вот уже больше 10 лет пишу на Питоне. На С почти ничего не писал, на C++ не писал ничего.

Re: :)

Date: 2011-06-05 10:23 am (UTC)
belest: (Default)
From: [personal profile] belest
Эль,ты неправильно понял мой намек, потому что намеков вовсе не было. :)
А для серьезного разговора о питоне мне бы не помешало его освоить.
Но...

По-моему ощущению, питон весьма похож на паскаль. Черт с ним, с синтаксисом, это, как раз, совершенно неважно. Важнее - способ мыслить, который формирует язык программирования. И наличествующие ограничения языка, некие строгости, весьма способствуют хорошему коду. Потому что не дают возможности растекаться "мыслею по древу".

Да, многим очень хочется, что бы ограничений было поменьше. И такие языки есть. Но, далеко не всегда, можно прочесть программу, написанную на таком языке. Думаю, что ты не раз видел программы-загадки на С и перле.

А вот наличие ограничений весьма способствует аккуратному читабельному коду.

Примерно так.

Разумеется, ко всему вышесказанному можно и нужно применить словечко "IMHO".

Date: 2011-06-03 04:57 pm (UTC)
From: [identity profile] dair-spb.livejournal.com
Ну, с перлом по синтаксису сравнится разве что brainfuck ;-)

В питоне только отступы бесят поначалу, остальное-то вполне нормальное.
Ну и при грамотно настроенном редакторе отступы прекращают быть проблемой.

Date: 2011-06-04 09:20 am (UTC)
From: [identity profile] dair-spb.livejournal.com
Внятный и логичный? Я, конечно, не пишу на перле каждый день, так, изредка, когда надо как-то нестандартно строчки обработать.

Но $/@/% в начале переменных, референсы с сумасшедшим синтаксисом, if/unless, которые в префиксном случае требуют скобочек, а в постфиксном — нет, "переменные по-умолчанию" типа $_/@_, $1-$9, прибитый шурупами ООП (существенно более внятный в питоне)...

Питон по сравнению с перлом лаконичный и понятный.
Некоторые вещи на перле делаются существенно проще чем на питоне. Некоторые — сложнее.

И, да, к ебанистике Перла можно привыкнуть. Как и к ебанистике любого ЯП, в т.ч., Питона.
Edited Date: 2011-06-04 09:22 am (UTC)

(no subject)

From: [identity profile] taelhash.livejournal.com - Date: 2011-06-04 11:00 am (UTC) - Expand

(no subject)

From: [identity profile] taelhash.livejournal.com - Date: 2011-06-04 11:22 am (UTC) - Expand

(no subject)

From: [identity profile] besm6.livejournal.com - Date: 2011-06-04 12:13 pm (UTC) - Expand

(no subject)

From: [identity profile] dair-spb.livejournal.com - Date: 2011-06-04 01:54 pm (UTC) - Expand

(no subject)

From: [identity profile] dair-spb.livejournal.com - Date: 2011-06-04 02:03 pm (UTC) - Expand

(no subject)

From: [identity profile] besm6.livejournal.com - Date: 2011-06-04 02:58 pm (UTC) - Expand

Date: 2011-06-03 06:14 pm (UTC)
phd_ru: (Default)
From: [personal profile] phd_ru
Он всем лучше перла. Отвратительный синтаксис перла - чистый line noise, для которого нет никаких разумных причин. Не пойму, почему ещё остались программисты на перле. Я им точно быть перестал.

(no subject)

From: [personal profile] phd_ru - Date: 2011-06-04 10:12 am (UTC) - Expand

(no subject)

From: [personal profile] phd_ru - Date: 2011-06-04 10:58 am (UTC) - Expand

(no subject)

From: [personal profile] phd_ru - Date: 2011-06-04 11:53 am (UTC) - Expand

(no subject)

From: [personal profile] belest - Date: 2011-06-05 10:29 am (UTC) - Expand

Date: 2011-06-04 07:34 am (UTC)
From: [identity profile] taelhash.livejournal.com
Вот меня всегда удивляют люди, которые делают безапелляционно делают утверждения в духе "нет никаких разумных причин". Как говорят наши дикие друзья, "а если найду?" Этот тезис же на раз-два опровергается.

Вот про Python могу сказать, что лично я до сих пор пока не увидел ни единой разумной причины, по которой там нет инкремента, кроме "так решил автор языка потому, что считает, что его наличие сподвигнет программистов писать непонятный код". Причину, подчеркиваю, считаю разумной, но лично мне оно все равно неприятно.

(no subject)

From: [personal profile] phd_ru - Date: 2011-06-04 10:16 am (UTC) - Expand

(no subject)

From: [identity profile] taelhash.livejournal.com - Date: 2011-06-04 10:47 am (UTC) - Expand

(no subject)

From: [personal profile] phd_ru - Date: 2011-06-04 10:59 am (UTC) - Expand

(no subject)

From: [identity profile] taelhash.livejournal.com - Date: 2011-06-04 11:06 am (UTC) - Expand

(no subject)

From: [personal profile] phd_ru - Date: 2011-06-04 12:05 pm (UTC) - Expand

(no subject)

From: [identity profile] taelhash.livejournal.com - Date: 2011-06-04 11:29 pm (UTC) - Expand

(no subject)

From: [personal profile] phd_ru - Date: 2011-06-04 11:04 am (UTC) - Expand

(no subject)

From: [personal profile] phd_ru - Date: 2011-06-04 11:56 am (UTC) - Expand

(no subject)

From: [identity profile] tim-caper.livejournal.com - Date: 2011-06-06 09:37 am (UTC) - Expand

Date: 2011-06-05 11:07 am (UTC)
From: [identity profile] iliaworld.livejournal.com
А у меня прямо противоположное впечатление от Python. Мне он показался очень цельным и логичным. И синтаксис очень простым и изящным.

Просто нужно немного времени и желания, чтобы проникнуться pythonic way, потому что язык предполагает немного другой стиль программирования чем более традиционные языки вроде C, C++ и т.д. (на перле не писал).

Например, я ничуть не страдаю от отсутствия инкремента.
И циклы типа while(x = dosmth()) в 99% случаев можно таки записать pythonic way "for x in smth" (в этом очень помогают comprehensions, generators и yield)

(no subject)

From: [identity profile] iliaworld.livejournal.com - Date: 2011-06-05 01:19 pm (UTC) - Expand

Profile

arilou: (Default)
Danil "Eleneldil G. Arilou" Lavrentyuk

February 2023

S M T W T F S
   1234
5678 91011
12131415 161718
192021222324 25
262728    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 17th, 2025 06:35 pm
Powered by Dreamwidth Studios