[Cascavel-pm] Transformando em objeto

Lorn lorn.br em gmail.com
Quinta Novembro 30 09:16:30 PST 2006


On 11/30/06, Adriano Ferreira <a.r.ferreira em gmail.com> wrote:
>
> On 11/30/06, Nilson Santos Figueiredo Junior <acid06 em gmail.com> wrote:
> > On 11/30/06, Luis Motta Campos <luismottacampos em yahoo.co.uk> wrote:
> > >   Perl não tem suporte a orientação à objetos.
> > >   Perl tem, sim, um "syntatic sugar" que permite ao programador se
> > > iludir, acreditando piamente que está trabalhando sobre o paradigma de
> > > orientação à objetos. Mas é pura ilusão de óptica.
> >
> > Erm, eu *não* vou iniciar um flame war. ;-)
> > Mas digamos que eu não concordo com você.
>
> Concordo com o Nilson. Se uma linguagem permite você escrever uma coisa
> assim
>
>       my $mech = WWW::Mechanize->new;
>       $mech->get($url);
>       my $html = $mech->content;
>
> você está fazendo programação com objetos. Você tem aqui criação de
> objetos, encapsulamento de dados, polimorfismo, herança, etc. Mas aí
> você vai me dizer que dá para fazer isso em C? Dá mesmo. Mas com muito
> mais trabalho. Você vai dizer que dá para olhar debaixo da mesa. Sim.
> Em Smalltalk, o código está lá para você olhar também das janelas até
> as operações com inteiro (se o leitor conseguir entender). O ponto é
> que não precisa entender para fazer muito como usuário dos objetos ou
> "objetos".


Vide meu exemplo, eu vivo fazendo isso e não sabia que isso é OO,
desconfiava, tinha minhas duvidas, mais não sabia.

> > "package" é uma diretriz de programação do Perl que serve para definir
> > > que o código e as declarações que aparecerem naquele arquivo, daquele
> > > ponto em diante, estão associadas com o "namespace" declarado na
> > > diretriz "package". NADA MAIS.
> >
> > Na verdade não tem a ver com arquivos e sim, somente com os
> > namespaces. Todas as declarações daquele ponto em diante serão
> > compiladas sob aquele namespace. Isso tem implicações em vários níveis
> > diferentes.
>
> Concordo. Está havendo confusão entre package e módulo (que é o
> package em um arquivo segundo determinadas regras de localização para
> o interpretador Perl).
>
> > >   Perl não suporta "métodos", no sentido estrito da palavra: não é
> > > possível separar a interface do código que uma determinada chamada
> > > executa, e, mesmo que alguém consiga algum recurso para isso, não vai
> > > passar de um hack sujo ou uma brincadeira habilidosa sobre os
> > > /namespaces/ do Perl.
>
> Purismo. Para fazer as coisas (no melhor estilo Perl), ajuda mais
> pragmatismo.
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>



-- 
Lorn
- Slackware Linux
www.slackwarezine.com.br
- http://lornlab.org
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20061130/208a6603/attachment.html 


Mais detalhes sobre a lista de discussão Cascavel-pm