LINUX.ORG.RU
ФорумTalks

[perl] А вам не хватает С комментариев?

 


0

1

Вопрос не про какой-то баг и прочее, а скорее «за жысь», поэтому Talks.

Пишу на perl уже несколько лет и мне не хватает Сишных комментариев. Нет, я, конечно, использую Acme::Comment, но просто интересно, программистам на perl хватает # и pod вставок? По-моему, чисто визуально это выглядит нехорошо. Куда приятнее сделать нечто подобное

    /**
     *  Some comment.
     */
    sub function
        {
            code;
            code;
        }

Так я один такой?

★★★★★

Дык выделяешь, нажимаешь хоткей, и оно комментит/раскомменчивает выделенные строки.
А к томуже сам посмотри у тебя всеравно на каждой строке звёздочка, какбудто бы решётки ставить надо.
А вообще да, есть в сишных комментах что-то такое...

Bad_ptr ★★★★★
()

1. Можно написать простенький препроцессор в несколько строк, который будет ваши комментарии переводить в однострочные perl-овые.

2. В любом нормальном редакторе можно за три секунды поместить любой большой кусок текста в комментарий. Например, в vim:

:M,Ns/^/#/

3. Любой нормальный редактор автоматически вставляет # при переходе на следующую строку, если предыдущая строка тоже была комментарием. Таким образом, можно писать сплошняком многострочный текст не задумываясь. Когда коммент кончился, достаточно нажать Backspace, чтобы продолжить писать код.

toady2
()
Ответ на: комментарий от Bad_ptr

В данном случае меня долнует не удобство написания, а красота кода. И да, есть что-то в Сишных комментах :) их сразу легко увидеть в коде и они не выбиваются из общего стиля.

helios ★★★★★
() автор топика
Ответ на: комментарий от r_asian

На мой взгляд, pod док удобно написать в конце: ставится __END__ и пишется годный док для пользователя твоего кода.

Однако, когда pod сразу в коде, у меня это вызывает отвращение: диссонанс, однако.

helios ★★★★★
() автор топика
Ответ на: комментарий от toady2

Препроцессор не нужен: в perl можно добавить в runtime синтаксическию конструкцию. Я это делаю с помощью модуля Acme::Comment.

helios ★★★★★
() автор топика
Ответ на: комментарий от helios

> В данном случае меня долнует не удобство написания, а красота кода.

Те, кого волнует красота, на Перле не пишут. :)

Relan ★★★★★
()
Ответ на: комментарий от toady2

> Вы пишите на *perl* и стремитесь к *красоте* кода?!!

Именно так. Perl - удивительный язык, код на нём может быть очень красивым, однако, для этого нужно сохранять контроль. Если нет контроля - ваш код разорвёт к едрени фени и он будет похож на звездолёт, невовремя вышедший из варпа.

helios ★★★★★
() автор топика
Ответ на: комментарий от helios

Perl — это верблюд среди языков программирования: не слишком красивое, но очень выносливое животное, способное выполнять тяжёлую работу.

Я лично всегда сторонился программистов, которые высоко ценят красоту кода (даже жертвуя чем-то полезным). Программист должен думать о программе в целом, об алгоритмах и их реализациях в частности, но красота вообще не должна хоть сколько отнимать мозгового времени.

toady2
()

>А вам не хватает С комментариев?

Зачем многострочные комментарии в языке где любую программу можно уместить в одну строку?

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от toady2

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

Если за скорость разработки и хорошие решения, позволяющие масштабировать и упрощать реализацию, приходится платить увеличением константы в сложности выполнения кода процессором - да будет так.

helios ★★★★★
() автор топика
Ответ на: комментарий от DNA_Seq

тред не читать @ сразу отвечать? Однострочники хороши для мелких задач. Если задача чуть больше, чем найти и уничтожить^W заменить, нужно писать понятно.

helios ★★★★★
() автор топика

Есть pod. Остальное не нужно.

iSage ★★★★
()
Ответ на: комментарий от toady2

Красота́ — эстетическая (неутилитарная, непрактическая) категория, обозначающая совершенство, гармоничное сочетание аспектов объекта, при котором последний вызывает у наблюдателя эстетическое наслаждение.

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

Я не говорю о geekart'е типа

                                            sub j(\$){($
             P,$V)=                      @_;while($$P=~s:^
         ([()])::x){                    $V+=('('eq$1)?-32:31
   }$V+=ord(  substr(                 $$P,0,1,""))-74} sub a{
  my($I,$K,$  J,$L)=@_               ;$I=int($I*$M/$Z);$K=int(
 $K*$M/$Z);$J=int($J*$M             /$Z);$L=int($L*$M/$Z); $G=$
 J-$I;$F=$L-$K;$E=(abs($          G)>=abs($F))?$G:$F;($E<0) and($
  I,$K)=($J,$L);$E||=.01       ;for($i=0;$i<=abs$E;$i++ ){ $D->{$K
          +int($i*$F/$E)      }->{$I+int($i*$G/$E)}=1}}sub p{$D={};$
         Z=$z||.01;map{    $H=$_;$I=$N=j$H;$K=$O=j$H;while($H){$q=ord
        substr($H,0,1,"" );if(42==$q){$J=j$H;$L=j$H}else{$q-=43;$L =$q
      %9;$J=($q-$L)/9;$L=$q-9*$J-4;$J-=4}$J+=$I;$L+=$K;a($I,$K,$J,$ L);
      ($I,$K)=($J,$L)}a($I,$K,$N,$O)}@_;my$T;map{$y=$_;map{ $T.=$D->{$y}
      ->{$_}?$\:' '}(-59..59);$T.="\n"}(-23..23);print"\e[H$T"}$w= eval{
      require Win32::Console::ANSI};$b=$w?'1;7;':'';($j,$u,$s,$t,$a,$n,$o
      ,$h,$c,$k,$p,$e,$r,$l,$C)=split/}/,'Tw*JSK8IAg*PJ[*J@wR}*JR]*QJ[*J'.
       'BA*JQK8I*JC}KUz]BAIJT]*QJ[R?-R[e]\RI'.'}Tn*JQ]wRAI*JDnR8QAU}wT8KT'.
       ']n*JEI*EJR*QJ]*JR*DJ@IQ[}*JSe*JD[n]*JPe*'.'JBI/KI}T8@?PcdnfgVCBRcP'.
        '?ABKV]]}*JWe*JD[n]*JPe*JC?8B*JE};Vq*OJQ/IP['.'wQ}*JWeOe{n*EERk8;'.
          'J*JC}/U*OJd[OI@*BJ*JXn*J>w]U}CWq*OJc8KJ?O[e]U/T*QJP?}*JSe*JCnTe'.
           'QIAKJR}*JV]wRAI*J?}T]*RJcJI[\]3;U]Uq*PM[wV]W]WCT*DM*SJ'.  'ZP[Z'.
              'PZa[\]UKVgogK9K*QJ[\]n[RI@*EH@IddR[Q[]T]T]T3o[dk*JE'.  '[Z\U'.
                '{T]*JPKTKK]*OJ[QIO[PIQIO[[gUKU\k*JE+J+J5R5AI*EJ00'.  'BCB*'.
                     'DMKKJIR[Q+*EJ0*EK';sub h{$\ = qw(% & @ x)[int    rand
                      4];map{printf  "\e[$b;%dm",int(rand 6)+101-60*   ($w
                       ||0);system(  "cls")if$w ;($A,$S)=    ($_[1],   $
                        _[0]);($M,   @,)= split  '}';for(     $z=256
                        ;$z>0; $z   -=$S){$S*=   $A;p @,}      sleep$_
                        [2];while   ($_[3]&&($    z+=$ S)       <=256){
                        p@,}}("".   "32}7D$j"     ."}AG".       "$u}OG"
                        ."$s}WG"    ."$t",""      ."24}("        ."IJ$a"
                        ."}1G$n"    ."}CO$o"     ."}GG$t"        ."}QC"
                         ."$h}"      ."^G$e"    ."})IG"          ."$r",
                         "32}?"       ."H$p}FG$e}QG$r".          "}ZC"
                         ."$l",          "28}(LC" .""            ."".
                         "$h}:"           ."J$a}EG".             "$c"
                         ."}M"             ."C$k}ZG".            "$e"
                         ."}"             ."dG$r","18"          ."}("
                        ."D;"            ."$C"  )}{h(16         ,1,1,0
                       );h(8,          .98,0,0   );h(16         ,1,1,1)
                       ;h(8.0         ,0.98,0,     1);         redo}###
                     #written                                 060204 by
                   #liverpole                                  @@@@@@@
                #@@@@@@@@@@@

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

И да, я не говорил, что однострочные комментарии усложняют чтение. Если вы про «однострочники», то это про код в одну строку типа

cat /some/file | perl -e 'print map{ s/[^a-zA-Z0-9]/_/ } grep { length $_ > 64 } split /\t/ while <>';
helios ★★★★★
() автор топика

До сих пор не понимаю, за каким фигом в C такие комменты.

Miguel ★★★★★
()

если нет pod вставок:

=что-угодно ... =cut

или все тот же pod, но по правилам. я и скобочки никогда так не ставлю. Каждому свое.

chg ★★★★★
()

Хватает. Мало того, немного непонятно, что так все впёрлись в это /*, в то время когда # прямой аналог // и маскировать всю строку так гораздо удобнее, за редким исключением когда комментируется только часть строки.

iBliss
()

Сам пишу

#####
# Комментарий
#

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

И, да, описания функций *только* в поде. Но это, как я понимаю, тема для холивара.

lodin ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.