PDF de programación - CaFePerl Issue09

Imágen de pdf CaFePerl Issue09

CaFePerl Issue09gráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 8 de Marzo del 2018)
184 visualizaciones desde el 8 de Marzo del 2018
143,1 KB
11 paginas
Creado hace 14a (30/12/2005)
CaFe Perl v0.9 - Periódico de la Comunidad
Perl de Capital Federal

Editorial

Hola Perl Mongers, bienvenidos a un nuevo número de CaFe Perl !!

En este último número del año quiero darles a todos un gran saludo, mis felicitaciones y
deseos de lo mejor para cada uno de ustedes.

Simplemente comentarles que en este número no va a estar la sección Mordiditas de aquí y
de allá, ni tampoco va a salir a mitad de mes como estuvo sucediendo últimamente. No se
asusten, sólo es un pequeño receso.

Por otro lado tenemos una jugosa entrevista a Sebastian Riedel, principal arquitecto
perteneciente al Core Developer Team de Catalyst

Espero que lo disfruten.
Hasta la próxima taza de CaFe Perl !!! ... eso sí, café del bueno ;-).

Víctor A. Rodríguez (Bit-Man)

PERlitas

Catalyst (http://catalyst.perl.org/) es un Framework para Web elegante, que soporta el patrón
MVC así como un número de patrones web experimentales. Está altamente inspirado por
frameworks como Ruby On Rails, Maypole, y Spring. Sebastian Riedel, miembro del Core
Developer Team, es nuestro invitado en este número.

Por favor Sebastian, una introducción para el grupo CaFe.pm

Mi nombre es Sebastian Riedel y soy un joven hacker de Perl5/Parrot/Perl6 de 24 años que
vive en el Norte de Alemania. Aprendí Perl hace 5 años, y trabajo como desarrollador Perl
para T- Systems International.

Cuál fue su motivación para construir Catalyst ??

Comencé luego de mantener Maypole por algunos meses, y rápidamente llegué a la
conclusión que había demasiados defectos, como el build en acciones crud, integración
TT/CDBI demasiado estrecha, objeto request pero no response, mapping uri/acción
demasiado estático ... la gente usaba varios trucos bastante feos para poner sus aplicaciones
alrededor de Maypole y crud, lo que resultaba en más trabajo y código casi inmantenible.

Así que decidí escribirlo desde cero. Todo pasó demasiado rápido para la mayoría de los
usuarios de Maypole, así que tuve que pasar el mantenimiento (a otra persona), y hacer un
fork que nombramos Catalyst1

Muchos de los desarrolladores de Maypole me siguieron pronto, y el nuevo código atrajo
nuevos desarrolladores. Hoy estoy muy contento que Catalyst es más popular que su
predecesor.

Que habilidades ( relacionadas a Perl o no) obtuvo mientras construía Catalyst ??

Aprendí mucho sobre los bus pre 5.8.x :) Catalyst es inteligente en cuanto a los features de
Perl, casi al límite, usando atributos, herencia múltiple y cosas por el estilo.

También estudié los demás frameworks del mercado como Ruby-on- Rails, OI2, CGI::App,
Struts, SpringMVC, Seaside... para robarles todos los buenas funcionalidades. :)

Qué fortalezas encuentra en Catalyst que no están en otros proyectos similares ?

De la que estoy más orgulloso es del mapping uri -> método, en mi modesta opinión no hay
framework en el mercado que lo haga de una forma tan elegante. La mayoría de los
frameworks usan un esquema fijo como el de /clase/método/argumento y re-escriben las uris
entrantes con algo como mod_rewrite de Apache, en Ruby-on-Rails it's se llama Routes.

1 N. del T. Catalyst : catalizador, elemento que acelera la reacción que se produce entre otros
dos

Algunos ejemplos de Catalyst vs. Ruby-on-Rails. :)

Mapping simple /controller/method/attr

package MyApp::C::Foo;
sub bar : Local {

my ( $self, $c, @attrs ) = @_;

}
1;
vs.

class FooController < ApplicationController

def bar
end

end

El mapping de más alto nivel (toplevel mapping), coincide con /bar

package MyApp::C::Foo;
sub bar : Global {

my ( $self, $c, @attrs ) = @_;

}
1;
vs.

class FooController < ApplicationController

def bar
end

end
ActionController::Routing::Routes.draw do |map|

map.connect "bar", :controller => "foo", :action =>

"bar"

Mapping del mundo real, coincide con /index.html

package MyApp::C::Foo;
sub bar : Path(/index.html) { my ( $self, $c, @attrs ) = @_; }
1;
vs.

class FooController < ApplicationController

def bar
end

end
ActionController::Routing::Routes.draw do |map|

map.connect "index.html", :controller => "foo", :

action =>

"bar"

Mapping de expresión regular, coincide con todo lo que termina con .html (y captura el snippet
coincidente)

package MyApp::C::Foo;
sub bar : Regex(^(*.\.html)$) {

my ( $self, $c, @attrs ) = @_;

}
1;
vs.
No estoy seguro que sea posible hacerlo en Routes

Detectó que algún módulo generado por el proyecto haya sido usado fuera de este ??

Si, especialmente HTML::Prototype es bastante popular.

Planea liberar algunos módulos como una ramificación de Catalyst ??

Lo hicimos con Module::Pluggable::Fast, HTML::Prototype... y se está trabajando en nuevo
módulos como HTTP::Body y DBIx::Class (no es realmente una ramificación de Catalyst sino
parte de la familia).

Qué limitaciones impuso Perl al proyecto ?

Recientemente estuvimos estuvimos experimentando con procesamiento asincrónico (piensa
en POE) y Seaside (Smalltalk MVC) como continuación y reemplazo de las viejas sesiones,
pero llegamos a la conclusión de que es muy difícil implementarlo en Perl 5.

Estoy esperando Perl 6, que hará todo esto terriblemente simple :)

Tiene alguna opinión o consejo sobre Perl 6 ?

Úselo ! (http://pugscode.org)

Paa alguien que recién comienza, le recomendaría olvidarse de Perl 5 y comenzar con
Perl 6 ?

Todavía no, la implementación actual (Pugs) tiene un alto nivel de calidad, pero todavía hay
bugs y funcionalidades pendientes. Sin contar con la falta de treeware1.

Qué consejo le daría a los futuros diseñadores y hobistas que se enfrentan a un nuevo
proyecto ??

No perderse en los detalles, tratá de darle un api bien diseñada y hacerla funcionar, así se
puede hacer un "release early, release often". Si es lo suficientemente buena, más gente se
unirá a tu proyecto y lo limpiará por vos :)

Esto no significa “escribir código horrible” :)

1 Software dentro del arbol perteneciente al desarrollo de Pugs

En qué partes del código le aconsejaría a un novato en Perl que mire, para tener un
aprendizaje placentero ?

Bueno, hace poco tuvimos una discusión con perin en perlmonks sobre eso, hay demasiadas
técnicas avanzadas en el código de Catalyst, así que no le aconsejaría a los codificadores
“novatos” mirar en el. Es fácil usarlo para una codificador “novato”, pero no entenderlo
internamente.

Cómo se puede colaborar con Catalyst ??

Simplemente
http://lists.rawmode.org/mailman/listinfo/catalyst

#catalyst

unirse

a

en

irc.perl.org

y/o

a

la

lista

de

e-mail,

Hay alguna habilidad preferida para colaborar en Catalyst ?

Si, IRC es una habilidad que hay que tener, ya que discutimos casi todo en nuestro muy
cativo canal #catalyst (irc.perl.org)... :)

Qué funcionalidades cree que no están presentes, y cuáles agregará pronto ??

Estoy portando Catalyst a Perl6.

Por lejos no soy el único trabajando sobre Catalyst, de hecho la mayoría de los commit son
hechos por otros miembros del equipo. Nuevos plugins surgen cada día :)

Algún módulo favorito de CPAN ??

Muchos! :)

Devel::ebug

SVK

LWP

Test::Pod

Test::Pod::Coverage

Template::Toolkit

HTML::Mason

Class::DBI

DBD::SQLite?

Inline

YAML

Locale::Maketext::Simple

Class::Accessor::Fast

Class::Data::Inheritable

POE

DateTime

RPC::XML

Alguna experiencia (graciosa o no) que tuvo mientras construía Catalyst y que quiera
compartir con nosotros ??

Hay algunos puntos que vienen a mi cabeza.

Ya que los desarrollos actuales sobre web frameworks están mayormente dominados por la
gente de Ruby tuve que lidiar con ellos un tanto, y encuentro un tanto divertido cómo tratan
de publicitar la falta de alternativas como una funcionalidad, en contraste con nuestro
TIMTOWTDI. Más divertido es que otro frameworks prefieren imitar a Catalyst en lugar de
unir fuerzas y producir uno superior. No es que no me guste la competencia, pero preferiría
que desarrollen nuevas funcionalidades para robarlas nosotros :)

SudorNews

Perl Program Repair Shop and Red Flags

Mark Jason Dominus está haciendo otra de las suyas. Básicamente se trata de un libro en el
cual se va a abordar el tema de cómo reducir ese código a la mitad de tamaño y con la misma
funcionalidad (o sea el doble de valor pro línea !!) Más info en http://perl.plover.com/

Parrot 0.4.0

Parrot, la máquina virtual sobre la que correrá Perl 6 y otros lenguajes, ya cuenta con la
versión 0.4.0. si quieren saber
lo que se viene, entonces apunten sus browsers a
http://www.parrotcode.org

Mini-intro-Tutorial de Catalyst

En este número hay una entrevista a Sebastian Riedel, creador y arquitecto principal de
Catalyst. Si quieren interesarse, una forma es mirando un tutorial para aprender de que se
trata. Aquí van más de uno : http://libertonia.escomposlinux.org/story/2005/8/18/194122/414 y
http://libertonia.escomposlinux.org/story/2005/12/1/22557/4136 . También hay un muy
divertido calendario en http://catalyst.perl.org/calendar/2005/

Etapas de un programador Perl

Así como hace tiempo circulaba, y aún circula, un texto sobre cómo programan distintas
jerarquías dentro de una empresa,
tenemos lo nuestro. Entrá en
http://prometheus.frii.com/~gnat/yapc/2000-stages/ y divertite.

también en Perl

Entrevista a Richard Foley

Si estás mas o menos entrenado en Inglés no podés perderte este Perlcast a Richard Foley :
http://www.perlcast.com/audio/Perlcast_Interview_014_Foley.mp3

Perl del lado del cliente

Si te sentís raro cuando te hablan de programación del lado del cliente, y cuando explicás que
usás
:
http://www.perl.com/pub/a/2005/12/01/client_side_success.html

entonces

artículo

Perl,

este

es

para

vos

Traducción de "How to be a Programmer"

En
http://ieschandomonte.edu.es/~ohermlope/mediawiki/index.php/Traduccion_de:_How_to_be_
a_Programmer van a poder encontrar un trabajo en proceso del que, incluso, van a poder
participar.

Calendario Perl 2005

versión

La
en
http://web.mit.edu/belg4mit/www/ y seguramente van a encontrar cada una de las entradas
mas que útil e interesante.

del Calendario Perl

encontrar

pueden

oficial

2005

no

la

Coca-C
  • Links de descarga
http://lwp-l.com/pdf9323

Comentarios de: CaFePerl Issue09 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad