[SP-pm] Validar session no Catalyst

Eden Cardim edencardim at gmail.com
Wed Jul 13 21:17:37 PDT 2011


>>>>> "Nilson" == Nilson Santos Figueiredo <acid06 em gmail.com> writes:

    Nilson> 2011/7/13 Eden Cardim <edencardim em gmail.com>:
    >> Na verdade, eu tenho trabalhado bem pouco com Catalyst e perl em geral
    >> ultimamente. Não sei se você viu na outra thread, eu sugeri o
    >> happstack. Ultimamente tenho experimentado muito mais com lisp,
    >> javascript e haskell, e sim, é difícil voltar pro Perl em alguns casos,
    >> mas a disponibilidade de componentes no Perl pelo cpan ainda é
    >> imbatível. Por sinal eu colaborei com o Matt Trout no design de dois
    >> frameworks alternativos, o Reaction, o Web::Simple e o HTML::Zoom (cujo
    >> design inicial foi meu), exatamente por não estar satisfeito com o combo
    >> Catalyst+DBIx::Class+TT. Voltei a usar num projeto aqui porque é mais
    >> fácil terceirizar, mas pessoalmente não estou mais usando porque não
    >> aguento algumas limitações que o catalyst tem. Inclusive, uma delas o
    >> André Walker tá resolvendo no gsoc.

    Nilson> Fiquei curioso: que vantagens você acredita que Javascript tem sobre
    Nilson> Perl, como linguagem? Não consigo pensar em nenhuma.

O javascript em particular não é "melhor" que perl mas é conceitualmente
diferente em alguns aspectos, a orientação a objetos é mais
bem-estruturada. Já Lisp é mais "puro" então é mais fácil mexer no
código sem introduzir muito side-effect, o que faz programas em lisp
serem mais manuteníveis, apesar de eu achar bem difícil iniciar um
projeto em lisp.

    Nilson> Eu acho que não basta documentar. Por exemplo, é bem documentado que
    Nilson> quando se usa orientação a objeto, o objeto é passado como o primeiro
    Nilson> parâmetro e, normalmente, damos o nome de $self a essa variável. Todo
    Nilson> mundo sabe disso.
    Nilson> No entando, eu prefiro 42 milhões de vezes mais escrever:

    Nilson>   method foo ($arg) {
    Nilson>       $self->blablabla($arg)
    Nilson>   }

Taí uma vantagem do javascript :)

    Nilson> Do que:

    Nilson>   sub foo {
    Nilson>       my ($self, $arg) = @_;
    Nilson>       $self->blablabla($arg);
    Nilson>   }

    Nilson> Documentar não resolve esse problema. Documentar resolve o problema
    Nilson> somente de quem está aprendendo a usar aquela ferramenta, em outras
    Nilson> palavras, a documentação serve para listar as excentricidades de algo.

Esse tipo de problema não porque é core da linguagem, mas nem o Mojo nem
o Dancer resolvem problemas desse tipo. O Mojo em particular nunca vai
resolver porque precisaria usar algo como o Devel::Declare, que precisa
de compilação. O que eu to falando é que a flexibilidade do catalyst
permite que se implemente coisas de uma forma que fique mais similar ao
que o mojo e o dancer propõem, mas essas alternativas não são
bem-documentadas.

    Nilson> Esse ponto "trivial" pode ser importante pra muita gente.

É trivial do ponto de vista de implementação, tá virando mantra já, não
precisava reimplementar o framework todo pra fazer reajustes na sintaxe,
era só criar outro dispatcher.

    Nilson>  E pode ser a diferença entre algo ganhar aceitação ou
    Nilson> não. Se surgisse um novo framework web com a mesma sintaxe
    Nilson> do Catalyst, não ganharia praticamente nenhum adepto,
    Nilson> acredito eu. O Dancer traz a proposta de uma sintaxe que
    Nilson> parece ser mais moderna e aposta forte na integração com o
    Nilson> Plack

O Dancer integra tão bem com plack quanto os outros frameworks, afinal
de contas, esse é o propósito do plack.

    Nilson>  tenta se vender como o "cool kid on the block" (e, em
    Nilson> geral, tem conseguido).

Engraçado, a impressão que eu tenho dele é de que ele é o patinho feio
dos 3. O código é bem ruinzinho e a abordagem usando exports limita
bastante o que dá pra fazer com ele além de propaganda, além de ficar
uma mistura de OO com procedural que é bem chatinho de
estruturar. Experimenta escrever testes unitários pra ele e vê onde você
vai parar.

    Nilson> O Mojolicious também tem uma sintaxe
    Nilson> mais "moderna" mas me parece que foca em lutar contra o
    Nilson> "dependency-hell" (que pra mim nem é um problema, pra ser
    Nilson> sincero, acho bem fácil e rápido instalar módulos, mas tem
    Nilson> gente que parece que não concorda)

E a brilhante idéia do sri pra fugir das dependências foi tentar
reinventar tudo sozinho.

    Nilson> Eu acho que faz perfeito sentido os 3 existirem. É como falar que não
    Nilson> faz sentido existir vários estilos de metal diferentes, porque é tudo
    Nilson> "rock pesado" tocado com guitarras.

Que bom você mencionar isso, da forma que eu enxergo, a analogia tá mais
pra banda cover, só aparecer alguém com uma proposta diferenciada que
logo aparece a turma de caroneiros. Não vou falar muito de metal senão
vou apanhar dos headbangers de plantão. Mas o que eu vejo é algo tipo
Madonna vs Britney Spears vs Lady Gaga. Aliás, acho que o Mojo tá mais
pra Jennifer Lopez, atriz, cantora, compositora, produtora musical,
dançarina, estilista e produtora de televisão, já vem tudo no pacote,
sem dependências, bem fácil de vender e fazer o deploy. :D

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