<HTML><HEAD></HEAD>
<BODY dir=ltr>
<DIV dir=ltr>
<DIV style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana'; COLOR: #000000">
<DIV>Ola Tiago.</DIV>
<DIV> </DIV>
<DIV>Veja eu concordo com voce no que diz a metodos do tipo “obscuros” até mesmo 
classes, variaveis ou funções ou mesmo condicionais que ninguem entende até 
mesmo quem fez depois de um certo tempo.</DIV>
<DIV> </DIV>
<DIV>Aquela massima de que “quem vai manter seu codigo é um serial killer e tem 
seu endereço é verdade”. só uma coisa que não concordo e que vejo em muitas 
pessoas que estão na lista.</DIV>
<DIV> </DIV>
<DIV>Porque comentar, explicar, escrever em ingles se nossa lingua e portugues e 
temos uma deficiencia enorne de material tecnico de qualidade em lossa lingua. 
Em meus códigos, eu SEMPRE documento, comento em portugues.</DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV>Está é só a minha opnião... Sem flames.</DIV>
<DIV> </DIV>
<DIV style="FONT-SIZE: 10pt; FONT-FAMILY: 'Verdana'; COLOR: #000000">Ricardo 
Stock<BR>http://www.stocksistemas.com.br</DIV>
<DIV 
style='FONT-SIZE: small; TEXT-DECORATION: none; FONT-FAMILY: "Calibri"; FONT-WEIGHT: normal; COLOR: #000000; FONT-STYLE: normal; DISPLAY: inline'>
<DIV style="FONT: 10pt tahoma">
<DIV> </DIV>
<DIV style="BACKGROUND: #f5f5f5">
<DIV style="font-color: black"><B>From:</B> <A title=tiago.peczenyj@gmail.com 
href="mailto:tiago.peczenyj@gmail.com">Tiago Peczenyj</A> </DIV>
<DIV><B>Sent:</B> Thursday, February 27, 2014 10:12 AM</DIV>
<DIV><B>To:</B> <A title=saopaulo-pm@mail.pm.org 
href="mailto:saopaulo-pm@mail.pm.org">saopaulo-pm@mail.pm.org</A> </DIV>
<DIV><B>Subject:</B> Re: [SP-pm]Perl write-only, que comece o flame [WAS Perl e 
horário de verão]</DIV></DIV></DIV>
<DIV> </DIV></DIV>
<DIV 
style='FONT-SIZE: small; TEXT-DECORATION: none; FONT-FAMILY: "Calibri"; FONT-WEIGHT: normal; COLOR: #000000; FONT-STYLE: normal; DISPLAY: inline'>
<DIV dir=ltr>
<DIV>Existe o problema das culturas.<BR></DIV>
<DIV class=gmail_extra> </DIV>
<DIV class=gmail_extra>Se eu não sei programar, o que eu usar, seja C, Haskell 
ou Perl, vai sair esquisito. Talvez funcione. Talvez resolva o meu problema. A 
questão é que a linguagem evolui assim como a sua comunidade. Hoje tem uma parte 
da comunidade que defende boas praticas, que defende testes, que defende um 
codigo legivel.</DIV>
<DIV class=gmail_extra> </DIV>
<DIV class=gmail_extra>Recentemente eu trabalhei num projeto Ruby ( <A 
href="https://github.com/peczenyj/MooseX">https://github.com/peczenyj/MooseX</A> 
) e vou dizer, eu consigo produzir um codigo talvez até mais legivel em Ruby do 
que em Perl. Porém vc tem casos onde a galera abusa do fato da linguagem possuir 
classes abertas e não raro alguem injeta 500 metodos sem vc saber em alguma 
classe tipo Object ou String. Eis o problema da cultura: não é só pq eu posso 
que eu devo fazer. Existem praticas para produzir algo que seja usavel por um 
grupo maior de pessoas e que seja possivel dar manutenção num futuro 
proximo.</DIV>
<DIV class=gmail_extra> </DIV>
<DIV class=gmail_extra>Estou trabalhando em Perl 5.12.2 e usando Moo. Eu tento 
usar nomes legiveis para as minhas variaveis, eu tento adicionar comentarios / 
pod quando preciso fazer algo obscuro</DIV>
<DIV class=gmail_extra> </DIV>
<DIV class=gmail_extra>por exemplo:</DIV>
<DIV class=gmail_extra> </DIV>
<DIV class=gmail_extra>
<DIV class=gmail_extra>sub _generate_random_foo {</DIV>
<DIV class=gmail_extra>    my ($thing) = @_;</DIV>
<DIV class=gmail_extra> </DIV>
<DIV class=gmail_extra>    # to generate random foo based on the 
thing:</DIV>
<DIV class=gmail_extra>    # 1 - sha1_hex of thing, to generate a 
hexadecimal hash</DIV>
<DIV class=gmail_extra>    # 2 - pick two first 
hexdigits     (returns 0x00 <= x <= 0xff)</DIV>
<DIV class=gmail_extra>    # 3 - convert from hex to 
decimal  (returns    0 <= x <= 255)</DIV>
<DIV class=gmail_extra>    # 4 - apply 100 * value / 256 to 
rescale between 0 <= x < 100</DIV>
<DIV class=gmail_extra>    # 5 - truncate to integer</DIV>
<DIV class=gmail_extra>    # 6 - abs returns a positive integer 
or zero</DIV>
<DIV class=gmail_extra>    # 7 - modulus 100 will ensure it will 
return something less than 100</DIV>
<DIV class=gmail_extra>    # we will return a number between zero 
and 99</DIV>
<DIV class=gmail_extra> </DIV>
<DIV class=gmail_extra>    abs( int( 100 * hex( substr( 
sha1_hex($thing), 0, 2 ) ) / 0x100 ) ) % 100;</DIV>
<DIV class=gmail_extra>}</DIV>
<DIV> </DIV></DIV>
<DIV class=gmail_extra>os dois ultimos passos eu adicionei de paranoia depois 
que acharam "coisas estranhas acontecendo".</DIV>
<DIV class=gmail_extra> </DIV>
<DIV class=gmail_extra>qual o limite para isso ser legivel ou não? um bom 
processo de code review. Se eu simplesmente remover os comentarios alguem vai 
perder 20 minutos no futuro tentando entender essa porra.</DIV>
<DIV class=gmail_extra> </DIV>
<DIV class=gmail_extra>Eu fui programar em Java semana passada. Cara que 
dificuldade que é fazer um simples join ",", @array ! Eu preciso usar uma 
biblioteca externa pra fazer isso. E adicionar uma biblioteca externa significa 
depender de maven ( ou graddle) pra fazer alguma coisa que eu queria que tivesse 
0 dependencias externas. No fim eu posso criar uma classe "Util" que vai ter 
esse tipo de coisa. E Javadoc. Ou posso socar um foreach + StringBuilder no meio 
da minha logica e ficar com um metodo de 75 linhas no fim das contas. A minha 
dificuldade? estou fazendo sozinho, ninguem pra revisar ou criticar o meu 
codigo.</DIV>
<DIV class=gmail_extra> </DIV>
<DIV class=gmail_extra>Existem formas de analisar o codigo ( dependendo da 
linguagem ) e achar problemas, metodos muito complexos, problemas de cobertura 
de teste, etc. Esse tipo de ferramenta ajuda (E MUITO) mas não faz o trabalho 
humano.</DIV>
<DIV class=gmail_extra>
<DIV> </DIV>
<DIV class=gmail_quote>2014-02-27 9:55 GMT-03:00 Blabos de Blebe <SPAN 
dir=ltr><<A href="mailto:blabos@gmail.com" 
target=_blank>blabos@gmail.com</A>></SPAN>:<BR>
<BLOCKQUOTE class=gmail_quote 
style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">
  <DIV dir=ltr>Pra quem for continuar no assunto, seguem apenas umas 
  considerações menores e de pouca importância: 
  <DIV> </DIV>
  <DIV><A href="https://metacpan.org/pod/Devel::Cover" 
  target=_blank>https://metacpan.org/pod/Devel::Cover</A></DIV>
  <DIV><A href="https://metacpan.org/pod/Perl::Critic" 
  target=_blank>https://metacpan.org/pod/Perl::Critic</A><BR></DIV>
  <DIV><A href="https://metacpan.org/pod/Perl::Tidy" 
  target=_blank>https://metacpan.org/pod/Perl::Tidy</A><BR></DIV>
  <DIV><A href="https://metacpan.org/pod/Test::Most" 
  target=_blank>https://metacpan.org/pod/Test::Most</A><BR></DIV>
  <DIV> </DIV>
  <DIV>Algo ainda mais irrelevante:</DIV>
  <DIV> </DIV>
  <DIV><A href="https://metacpan.org/pod/Catalyst" 
  target=_blank>https://metacpan.org/pod/Catalyst</A><BR></DIV>
  <DIV><A href="https://metacpan.org/pod/Mojolicious" 
  target=_blank>https://metacpan.org/pod/Mojolicious</A> (pra focar num flame de 
  cada vez)<BR></DIV>
  <DIV><A href="https://metacpan.org/pod/DBIx::Class" 
  target=_blank>https://metacpan.org/pod/DBIx::Class</A><BR></DIV>
  <DIV><A href="https://metacpan.org/pod/Template" 
  target=_blank>https://metacpan.org/pod/Template</A><BR></DIV>
  <DIV> </DIV>
  <DIV>Eu to falando irrelevante, não pelos módulos em si, mas pela minha 
  abordagem na resposta. Eu não vou nem usar argumentos mais sólidos que 
  isso.</DIV>
  <DIV> </DIV>
  <DIV>Agora, criatura das neves, se com pelo menos isso, você ( um você 
  genérico, ninguém pessoalmente ok!? ) ainda acredita em Perl write-only, Papai 
  Noel ou no Pé Grande, nada pessoal, mas não me venha dizer que você é o 
  experiente grande programador foda do alto da montanha, porque, desculpa, você 
  não é.</DIV>
  <DIV> </DIV>
  <DIV>Se com todos esses frameworks de apoio ( pra citar o mínimo ) você ainda 
  escreve código tosco, **você** é o tosco, não a linguagem.</DIV>
  <DIV> </DIV>
  <DIV>Um código é tão ruim quanto a competência do infeliz que o escreveu, e 
  não por causa da linguagem.</DIV>
  <DIV> </DIV>
  <DIV>Existe Perl tosco? Sim. Existe. Tem coisas que eu diria que é Shell 
  Script com shebang perl.</DIV>
  <DIV> </DIV>
  <DIV>Mas se em 2014 você usa perl-5.18.2 pra escrever lixo, você é o tosco. E 
  se em 2014 você ainda propaga essa ladainha, desculpa cara, sai dos anos 90 e 
  vem viver no presente.</DIV>
  <DIV> </DIV>
  <DIV>Eu não sou tão velho assim, mas com 15 anos de mercado, já trabalhei com 
  algumas coisas (e ambientes) bem bizarras e posso garantir que não só em Perl, 
  mas em PHP, Java, C, .NET e coisinhas da moda (só pra citar as que eu já 
  trabalhei), dá pra achar coisas que vão te fazer sentir vontade de parir a 
  própria mãe só pra matar ela no berço por ter te criado e educado ao ponto de 
  vc ser obrigado a ver certos códigos. É triste.</DIV>
  <DIV> </DIV>
  <DIV>Por que a linguagem é write-only? Não, criatura, por que quem escreveu é 
  um imbecil.</DIV>
  <DIV> </DIV>
  <DIV>Assim como existem pedreiros ruins, médicos ruins, professores ruins, 
  surpresa, supressa, oh, existem programadores ruins! Nossa!</DIV>
  <DIV> </DIV>
  <DIV>Eu não vou nem entrar no mérito do gestor que te proíbe de refatorar 
  aquele código legado porque "mexer em código que está funcionando é 
  desperdício". Pra esse já me faltam adjetivos, talvez eu devesse aprender 
  klingon.<BR></DIV>
  <DIV> </DIV>
  <DIV>E só pra deixar claro aqui, eu to criticando, o cara que hoje, faz coisa 
  tosca sabendo que é tosco e dá a desculpa esfarrapada de que é culpa da 
  linguagem.</DIV>
  <DIV> </DIV>
  <DIV>A existência de um legado, que foi construído dentro de um contexto 
  particular, embora questionável, é outro papo. Muito embora eu já tenha pegado 
  muito código legado do século passado, que é bem melhor escrito que os de 
  hoje.</DIV>
  <DIV> </DIV>
  <DIV>[]'s</DIV>
  <DIV>
  <DIV>
  <DIV> </DIV>
  <DIV>
  <DIV> </DIV>
  <DIV class=gmail_extra><BR><BR>
  <DIV class=gmail_quote>2014-02-27 8:27 GMT-03:00 Alceu Rodrigues de Freitas 
  Junior <SPAN dir=ltr><<A href="mailto:glasswalk3r@yahoo.com.br" 
  target=_blank>glasswalk3r@yahoo.com.br</A>></SPAN>:<BR>
  <BLOCKQUOTE class=gmail_quote 
  style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">Em 
    <A href="tel:27-02-2014%2001" target=_blank value="+12702201401">27-02-2014 
    01</A>:05, Blabos de Blebe escreveu: 
    <DIV><BR>
    <BLOCKQUOTE class=gmail_quote 
    style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">
      <BLOCKQUOTE class=gmail_quote 
      style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">A 
        concepção de programadores experientes sobre Perl, pelo menos por onde 
        passei, é > que Perl ainda é linguagem 
      "write-only"<BR></BLOCKQUOTE><BR>Não tão experientes pelo 
      visto...<BR><BR>Mas isso é só um comentário pessoal e não agrega nada à 
      thread que<BR>aliás, WTF o que eu to fazendo!? Passou, passou, 
      passou...<BR><BR></BLOCKQUOTE><BR></DIV>Pelo contrário, faz parte do 
    problema conforme descrito pelo Geraldo. Acho totalmente válido seu 
    comentário, apesar de não ajudar muito. :-)<BR><BR>É difícil desfazer 
    preconceitos e geralmente leva tempo... algumas vezes eu acho que nem vale a 
    pena tentar. 
    <DIV><BR><BR>
    <BLOCKQUOTE class=gmail_quote 
    style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">Talvez 
      seja uma boa realizar o trabalho sujo numa outra máquina,<BR>produzir os 
      comandos de shell e enviá-los pra esse servidor via ssh ou<BR>algo 
      parecido.<BR></BLOCKQUOTE><BR></DIV>Concordo. Ele só precisar saber o 
    horário de verão, e se usar Perl é um "problema" porque ninguém conhece, 
    pode usar shell script mesmo, comparar $TZ para saber que época do ano está 
    e usar ssh/telnet para executar o programa do HP Open View lá no True64, já 
    com o valor de timezone.<BR><BR>[]'s<SPAN><FONT 
    color=#888888><BR>Alceu</FONT></SPAN> 
    <DIV>
    <DIV><BR><BR>=begin disclaimer<BR>  Sao Paulo Perl Mongers: <A 
    href="http://sao-paulo.pm.org/" 
    target=_blank>http://sao-paulo.pm.org/</A><BR>SaoPaulo-pm mailing list: <A 
    href="mailto:SaoPaulo-pm@pm.org" 
    target=_blank>SaoPaulo-pm@pm.org</A><BR>L<<A 
    href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" 
    target=_blank>http://mail.pm.org/mailman/<U></U>listinfo/saopaulo-pm</A>><BR>=end 
    disclaimer<BR></DIV></DIV></BLOCKQUOTE></DIV>
  <DIV> </DIV></DIV></DIV></DIV></DIV></DIV><BR>=begin 
  disclaimer<BR>   Sao Paulo Perl Mongers: <A 
  href="http://sao-paulo.pm.org/" 
  target=_blank>http://sao-paulo.pm.org/</A><BR>SaoPaulo-pm mailing list: <A 
  href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</A><BR>L<<A 
  href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" 
  target=_blank>http://mail.pm.org/mailman/listinfo/saopaulo-pm</A>><BR>=end 
  disclaimer<BR><BR></BLOCKQUOTE></DIV><BR><BR clear=all>
<DIV> </DIV>-- <BR>Tiago B. Peczenyj<BR>Linux User #405772<BR><BR><A 
href="http://about.me/peczenyj" target=_blank>http://about.me/peczenyj</A> 
</DIV></DIV>
<P>
<HR>
=begin disclaimer<BR>   Sao Paulo Perl Mongers: 
http://sao-paulo.pm.org/<BR>SaoPaulo-pm mailing list: 
SaoPaulo-pm@pm.org<BR>L<http://mail.pm.org/mailman/listinfo/saopaulo-pm><BR>=end 
disclaimer<BR></DIV></DIV></DIV></BODY></HTML>