2011/7/15 Nelson Ferraz <[email protected]> > 2011/7/15 Hernan Lopes <[email protected]>: > > catalyst é perfeito... > > Se ele é perfeito, significa que não pode ser melhorado. Eu me recuso > a pensar dessa maneira. > > E se ele *não é* perfeito, a questão que fica é: como pode ser > melhorado? Todos nós sabemos -- e eu sou o primeiro a admitir -- que o > Catalyst é extremamente flexível e poderoso. Qualquer melhoria nessa > área trará apenas ganhos marginais, e não nos ajudará a atingir a > ubiquidade. (Se é que este é o nosso objetivo.) > > > depois de trabalhar com .net por 1 ano e pouco, > > tive aula de struts na faculdade e te confesso que fiz o trabalho final > em um final > > de semana após a primeira semana de aula... acabei indo estudar e > trabalhar um > > pouco com COBOL em uma oportunidade de estágio que me apareceu... depois > > dessas experiências estava me formando em ciência da computação e o > assunto > > do momento eram "frameworks" > > Você estudou ciência da computação, tem experiência com .Net, PHP, e > até COBOL. Definitivamente não é o público-alvo que me preocupa. > > Aliás: posso estar enganado, mas a maioria daqueles que defenderam o > Catalyst nessa thread estudam (ou estudaram) Ciência da Computação. > > Vamos pensar sobre isso. > > E aqui eu peço um favor: não entrem em modo de defesa automático, não > tentem proteger o seu framework preferido; ajudem-me a identificar > falhas, pontos que podem ser melhorados. > > Eu quero saber como é que o sujeito que *não* estudou computação e mal > sabe HTML -- ou seja, 99% da população -- vai usar o Catalyst. > > Vamos fazer o seguinte exercício: uma página web simples, com um > formulário que ao ser enviado responda "Hello, $nome!". É assim que a > maioria das pessoas vai tomar o primeiro contato com o seu framework. > > > 1) PHP > > Abra um editor de texto e salve estes dois arquivos, em qualquer lugar: > > ==== index.php ===== > > <form method="post" action="hello.php"> > <input type="text" name="name"> > <input type="submit"> > </form> > > ==== /index.php ===== > > > ==== hello.php ===== > > <h1><?php echo( $_POST["name"] ) ?></h1> > > ==== /hello.php ===== > > Isso é tudo. Dois arquivos, em qualquer lugar, e está funcionando. > > > 2) Mojolicious::Lite > > ==== hello.pl ===== > > #!/usr/bin/perl > > use Mojolicious::Lite; > > get '/' => 'index'; > > post '/hello' => sub { > my $self = shift; > my $name = $self->param('name'); > $self->stash( name => $name ); > } => 'hello'; > > app->start(); > > __DATA__ > @@ index.html.ep > <form method="post" action="/hello"> > <input type="text" name="name"> > <input type="submit"> > </form> > > @@ hello.html.ep > <h1>Hello, <%= $name %></h1> > > ==== /hello.pl ===== > > Execute o programa com: ./hello.pl daemon > > Isso é tudo. Um arquivo, em qualquer lugar, e está pronto. > > > 3) Catalyst > > Vou seguir o tutorial em > > http://search.cpan.org/~bobtfish/Catalyst-Manual/lib/Catalyst/Manual/Tutorial/02_CatalystBasics.pod > > $ catalyst.pl Hello > created "Hello" > created "Hello/script" > created "Hello/lib" > created "Hello/root" > ... > created "Hello/script/hello_create.pl" > Change to application directory and Run "perl Makefile.PL" to make > sure your install is complete > $ cd Hello > > $ script/hello_create.pl view HTML TT > > > Open the lib/Hello/Controller/Root.pm file in your editor. > > sub index :Path :Args(0) { > my ( $self, $c ) = @_; > > $c->stash(template => 'index.tt'); > } > > Create a root/index.tt template file (put it in the root under the > Hello directory that is the base of your application). > > <form method="post" action="/hello"> > <input type="text" name="name"> > <input type="submit"> > </form> > > ==== Neste ponto eu precisei buscar na documentação como obter um > parâmetro do request ($c->req->params), pois a informação só aparece > duas páginas do tutorial adiante - WTF???? ===== > > sub hello :Path :Args(0) { > my ( $self, $c ) = @_; > > my $name = $c->req->params->{name}; > > $c->stash( > name => $name, > template => 'hello.tt', > ); > } > > Create a root/index.tt template file (put it in the root under the > Hello directory that is the base of your application). > > <h1>Hello, [% name %]</h1> > > > Isso é tudo... pelo menos eu acho, pois não consegui instalar o > Catalyst no meu Mac [one dependency not OK > (MooseX::Role::WithOverloading)]. WTF?!?!?!?!?!! > > Espero que vocês consigam entender a minha frustração. Imaginem um > usuário iniciante, com pouca experiência em Perl! >
Eu fico sem graça de opinar pois não colaboro com a comunidade, mas, qual o sentido de deixar o Catalyst fácil para 99% das pessoas ( as que mal sabem HTML )? Essas pessoas querem é produtos prontos: Wordpress, Joomla, Openbravo, etc.... Acho que a discussão na verdade é aquela velha: "Como angariar novos seguidores para Perl?" - e penso que a resposta também é: Produtos. O problema que enfrentamos é que a comunidade é formada em sua maioria de pessoas com perfil de cientistas da computação, então a galera prefere escrever coisas mais core. O pessoal aqui já faz demais - [ workshop, equinocio, yapc ] - ( para ser sincero eu não faço nada para a comunidade atualmente ), mas acho que falta definirem um produto e trabalharem nele, de preferência algo mais enterprise, tipo um CRM. abs, > > []s > > Nelson > =begin disclaimer > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ > SaoPaulo-pm mailing list: [email protected] > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> > =end disclaimer >
=begin disclaimer Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: [email protected] L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer
