Leave a comment

gul_kiev May 5 2012, 08:31:27 UTC
Это, скорее, питоновские отступы виноваты.
Явно ведь человек под влиянием питона про скобки забыл.
Да и блоки не K&R придумали, они были и в Паскале, и в Алголе.
Пожалуй, в перле это сделано наиболее разумно: фигурные скобки после if обязательны даже для одного оператора, но есть и сокращённая запись с другим синтаксисом.

Reply

> Это, скорее, питоновские отступы виноваты. poige May 5 2012, 08:38:03 UTC
Я, «скорее», про то, что когда «{}» на отдельных строках, патч более читаемый.

Reply

Re: > Это, скорее, питоновские отступы виноваты. gul_kiev May 5 2012, 08:46:59 UTC
А, понял.
Да, согласен. Закрывающая скобка должна быть под открывающей, это и логичнее, и нагляднее.

Reply

> Закрывающая скобка должна быть под открывающей, poige May 5 2012, 08:57:36 UTC
Речь опять же, не об этом. Речь о том, что её не должно быть на строке с оператором if (), ибо её появление там заставляет проанализировать всю if-строку на предмет исправлений.

Я, лично, юзаю {} как у K&R, ща. Но после этого чё-то задумался.

Reply

Re: > Закрывающая скобка должна быть под открывающей, gul_kiev May 5 2012, 09:05:54 UTC
> Речь опять же, не об этом. Речь о том, что её не должно быть на строке с оператором if ()

Ну да, как же не об этом?
Я не предлашаю закрывающую скобку уводить далеко вправо для того, чтобы она была под открывающей. :)
Чтобы закрывающая была под открывающей, открывающая должна быть следующей строкой после if.

Впрочем, длинные строки в любом случае бывают, и для обнаружения мелкого изменения, например, в длинной строке формата нужно просматривать её всю - что ж делать.
Есть ли диф, который показывает именно изменённые символы в строке (например, выделяя их цветом)?

Reply

> Есть ли диф, который poige May 5 2012, 09:07:22 UTC
meld

Reply

Re: > Есть ли диф, который gul_kiev May 6 2012, 08:41:26 UTC
Спасибо.
Хотелось бы вот почти совсем как diff, но с раскраской или хотя бы просто выделением изменений.
Даже странно, что у gnu diff до сих пор не появилась опция --color.
Нашёл colordiff, но он просто раскрашивает вывод diff-а, построчно.

Reply

> Хотелось бы вот почти совсем как diff, но poige May 6 2012, 08:43:40 UTC
В смысле не GUI, а консоль?

Reply

Re: > Хотелось бы вот почти совсем как diff, но gul_kiev May 6 2012, 08:51:21 UTC
Угу.

Reply

allter May 5 2012, 09:14:12 UTC
У меня есть ощущение, что наиболее разумно это сделано в языках, где есть только "end" в формах, которые подразумевают группировку операторов (ruby?). Только - это, опять таки, неинтуитивно для тех, кто привык к парным "операторным скобкам".

В перле, кстати, это багофича, которая нужна синтаксическому анализатору, видимо, для возможности парсинга пользовательских операторов (вызовов функций без скобок). В Perl6 хотят отменить и {} и () в if/while, т.к. там синтаксический анализатор на другом принципе.

Я в перле пользуюсь страуструповскими скобками (на отдельных строках) для того, что бы подчеркнуть различие между многострочными блоками и многострочными конструкторами хэш-мапов. При необходимости однострочников или при сложном синтаксисе ещё и подчёркиваю назначение фигурной скобки унарным плюсом или ";" внутри {} (";" не может быть в конструкторе хэша). Тогда сразу понятно, где ниже блок операторов, а где - хэш:
if ( 1 )
{ # <- в начале - значит блок ( ... )

Reply

poige May 5 2012, 09:39:49 UTC
А ты чего такого на Perl пишешь?

Reply

allter May 5 2012, 10:13:29 UTC
Серверную сторону сложного веб-сервиса.

Reply


Leave a comment

Up