[SP-pm] Validar session no Catalyst

Eden Cardim edencardim at gmail.com
Wed Jul 13 07:52:29 PDT 2011


>>>>> "Nelson" == Nelson Ferraz <nferraz em gmail.com> writes:

    Nelson> Eden,
    Nelson> Olhando para os seus exemplos em Catalyst, eu percebo duas coisa:

    Nelson> 1) Tirando diferenças de sintaxe, eles são essencialmente iguais aos
    Nelson> exemplos em Mojolicious

Esses exemplos em particular, são iguais porque eu fiz assim de
propósito, pra ilustrar meu ponto. Existem formas bem melhores de se
fazer, mas que consomem mais caracteres. O fundamental é ilustrar que o
core do Catalyst é bem flexível e dá pra fazer bastante com ele, e não,
não é uma "solução enterprise" só porque a documentação mostra exemplos
com mais verbosidade.

    Nelson> 2) A sintaxe faz uma baita diferença. :)

Faz diferença sim, mas não uma "baita", o que faz muito mais diferença é
a semântica, o projeto do core e o paradigma.

    Nelson> Essa é a razão, afinal, porque a gente usa Perl, e não Python -- ou Lisp.

Não é não, em particular, eu uso perl invés de python porque perl tem o
cpan, tem cultura de retrocompatibilidade, e tem programação funcional
projetada desde o começo do core (o Guido van Rossum é explicitamente
averso a programação funcional). De resto a sintaxe não tem muita
diferença, aliás, o python é muito mais rico em termos de sintaxe, mas
não acho que isso é necessariamente bom, prefiro os recursos mais
simples e flexíveis do perl. Já Lisp é fundamentalmente diferente de
perl, é uma linguagem funcional, não imperativa, e isso muda toda a
forma de pensar sobre programação, não só os caracteres que você precisa
digitar no source. A sintaxe de lisp é mais simples ainda e por isso
mesmo é mais rica e flexível.

O corolário disso tudo, é que o Mojo, Dancer, CGI::Application etc, não
mudam nem um pouco a forma das pessoas pensarem em programação web,
apenas mudam os caracteres que tem que digitar. O diferencial do
Catalyst é ser mais flexível, bem-testado e robusto, além de ter uma
ecologia de componentes muito maior e mais vasta. Se for pra pensar
igual, porque mudar? Não faz sentido.

    Nelson> (De acordo com Larry Wall, "Lisp has the visual appeal of oatmeal with
    Nelson> finger nail clippings mixed in" -- comentário que um programador Lisp
    Nelson> classificou como "funny and irreverent, but largely true. It’s a great
    Nelson> language but it doesn’t look great.")

Mas em momento algum ele falou que "ser feio" = "ser improdutivo" = "é
ruim". Lisp em termos puramente formais é muito melhor do que perl e eu
trocaria perl por lisp na hora, se houvesse algo similar ao cpan e à
ecologia de perl em geral. Se você tá interessado só em economizar
caracteres, muda pra algo como haskell, que tem evoluído bastante com o
cabal (o cpan deles), eu estou cada vez mais tentado a mudar de vez pra
lá.

A propósito, dá uma olhada happstack, é um paradigma completamente
diferente, devido à diferença fundamental de paradigma do haskell:
http://happstack.com/docs

Se eu tivesse interessado só em digitar menos código, essa seria minha
recomendação. Não que não seja importante reduzir a quantidade de
código, mas re-escrever 30k linhas de código mal-testado pra ganhar uma
ou duas linhas de código por aplicação, sem agregar nenhuma mudança
fundamental de implementação é contraditório e está simplesmente fora da
minha capacidade de compreensão.

-- 
   Eden Cardim       Need help with your Catalyst or DBIx::Class project?
  Code Monkey                    http://www.shadowcat.co.uk/catalyst/
 Shadowcat Systems Ltd.  Want a managed development or deployment platform?
http://blog.edencardim.com/            http://www.shadowcat.co.uk/servers/
http://twitter.com/#!/edenc


More information about the SaoPaulo-pm mailing list