Пишу, по большей части, про историю, свою жизнь и немного про программирование.

Комментарии в Python

Меня очень раздражает, что в Пайтоне нет многострочных комментариев. И не говорите, что комментарии можно сделать тройными кавычками (или апострофами), это неудобно. Во-первых, тройные кавычки — не комментарий, а многосточная строка (это ремарка для тех, кто не знает Пайтон), поэтому начинать её приходится на том же уровне, что и текущий код.

Во-вторых, попробуйте в большом списке (list) закомментривать большой кусок. Тройные кавычки тут не подойдут:

mylist = [\
'раз',
'два',
"""'три',
'четыре',"""
'пять'
]

Всем очевидно почему не подойдут? Я не понимаю почему до сих пор в языке нет многострочных комментариев.

20 комментариев
besisland.livejournal.com 2009

А зачем они нужны?

Вертикальный ряд октоторпов выглядит симпатично, а для комментирования и раскомментирования большого блока редактор исходного кода должен предоставлять шоткаты.

Евгений Степанищев (bolknote.ru) 2009

Комментарий для besisland.livejournal.com:

Они нужны для того, чтобы комментировать большой кусок кода. Специализированный редактор для Python, наверное, должен. А когда заходишь по SSH на чужую машину и правишь там код через vim, то как мне поступать?

Кроме того, я не пользуюсь специализированными IDE, пишу всё в FAR.

besisland.livejournal.com 2009

Комментарий для Евгения Степанищева:

Править в vim по SSH код на чужой машине мне видится не очень правильным подходом.

Что же касается использования редактора, не имеющего жизненно важных функций, то предъявлять в связи с этим претензии к языку — всё равно что использовать редактор без подсветки синтаксиса и заявлять, что разработчики языка должны были бы на этот случай требовать написание ключевых слов в верхнем регистре.

netp-npokon.livejournal.com 2009

Комментарий для Евгения Степанищева:

Ну кагбе :’<,’>s/^/# /

claimid.com/dmk/ 2009

Комментарий для Евгения Степанищева:

что делать в случае вима не подскажу, а для фара рекомендую поставить MBlockEditor

Евгений Степанищев (bolknote.ru) 2009

Комментарий для besisland.livejournal.com:

Правильным или нет, такова жизнь.

Я программирую на нескольких языках и мне неудобно пользоваться специализированными IDE. Вторая причина, по которой мне неудобны IDE — скорость. Мне не комфортно. Кроме того, я не считаю функцию группового комментирования жизненно важной.

Т. е. авторы языка какбэ закладывались на то, что на их языке будут программировать только в специализированных IDE?

Евгений Степанищев (bolknote.ru) 2009

Комментарий для claimid.com/dmk/:

Ага, спасибо, посмотрю.

Евгений Степанищев (bolknote.ru) 2009

Комментарий для netp-npokon.livejournal.com:

Так и знал, что кто-то это скажет, ага :)

crazy-coder.livejournal.com 2009

Блочные комментарии в VIM? Да запросто, out-of-a-box =)

Встаем в начало строки.
Ctrl+V (*NIX, под Win32 — Ctrl+Q), давим стрелку вниз, сколько требуется.
Shift+i
#
Esc

Евгений Степанищев (bolknote.ru) 2009

Комментарий для crazy-coder.livejournal.com:

Нет, у меня в посте не сказано про блочные комментарии в VIM.

jankkhvej.blogspot.com 2009

Я программирую на нескольких языках и мне неудобно пользоваться специализированными IDE.

А как же Eclipse? Не пробовали или не поравился? Опять же, чудесно можно монтировать удалённые файловые системы по ssh, и редактировать там файлы будто они локальные.

Да, и ещё — считаю в корне неправильным исправление файлов с кодом удалённо, надо исправить их локально, отладить, сделать коммит, зайти по ссш куда надо, и сделать апдейт.

Евгений Степанищев (bolknote.ru) 2009

Комментарий для jankkhvej.blogspot.com:

Eclipse пробовал, не понравилось.

Ну мало ли что неправильно :) Иногда необходимо срочно сделать фикс. Обычная у нас процедура довольно длительная: смотри на dev-машине, коммит, сборка пакеты, выкладка на предпродакшн, выкладка в продакшн. Где-то на какой-то стадии могут быть тесты.

kildor (kildor.ya.ru) 2009

Комментарий для Евгения Степанищева:

Для фара есть mblockedit, truetemplates, ещё пара плагинов.

Евгений Степанищев (bolknote.ru) 2009

Комментарий для kildor.ya.ru:

Спасибо!

Но это всё равно не отвечает на вопрос почему же в Python нет блочных комментов.

astur (astur.net.ru) 2009

В Python нет блочных комментариев потому, что это снизит читаемость кода. Такая вот субъективная реальность. В С, например, если читаешь код в обычном редакторе без подсветки, то чтобы определить, живая строчка, или нет, надо мотать глазами наверх, отыскивая «/*», который может быть чуть ли не в середине сложной строки. Python, с его отступами, помешан на читаемости, так что блочные комментарии в нём пойдут против основной идеологии.

Вообще, меня это тоже иногда бесит. Когда свой код пишу. А когда чужой читаю — только радует :)

besisland.livejournal.com 2009

Комментарий для Евгения Степанищева:

Идами я тоже пользоваться не люблю. А говорю вместо того о простом редакторе кода, имеющем базовые, необходимые возможности вроде подсветки синтаксиса или быстрого комментирования/раскомментирования.

Евгений Степанищев (bolknote.ru) 2009

Комментарий для astur.net.ru:

О! Спасибо, хорошее объяснение. Плохо только, что отсутствие блочных комментов не решило эту проблему, поскольку есть хак: использовать тройные кавычки/апострофы вместо блочных комментов. Так что отмена блочных комментов проблемы не решило, увы.

astur (astur.net.ru) 2009

Комментарий для Евгения Степанищева:

тройные кавычки — это не совсем хак. Это либо докстринг (когда на своём месте), либо тупое дураццкое ламерство, которое ты классно опустил своим примером.

Вообще, вокруг любого языка есть люди, которым проще всё опошлить «хаками», чем понять особенность языка. Страшно подумать, тот же perl замышлялся, как удобная, легко читаемая альтернатива (тм) для связки bash+sed+awk, а вовсе не как головоломка для гиков. Больше скажу, php замышлялся, как система построения html-шаблонов, что-то вроде Smarty :)

Евгений Степанищев (bolknote.ru) 2009

Комментарий для astur.net.ru:

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

astur (astur.net.ru) 2009

Комментарий для Евгения Степанищева:

Порождает, да. К счастью, мне не приходилось раскапывать такой код, но ты заставил меня задуматься о страшшшном мире за пределами тусовки, уважающей pep8.