<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>