[Rio-pm] [SP-pm] Compilação

breno breno em rio.pm.org
Quinta Novembro 15 19:08:20 PST 2007


Não sei exatamente como essa questão se aplica no Perl. De um modo
geral, programas gigantes que levam dias para compilar são assim pq
compilam junto com eles uma série de bibliotecas e dependências. O
código em si, mesmo grande, dificilmente será monolítico, de modo que
durante a execução sua estrutura e dependências acabarão carregadas
sob demanda, quer ele tenha sido pré-compilado ou não.

No caso de programas em Perl, se o programa foi bem feito então a
maioria do código está distribuido entre diferentes módulos, em um
modelo distribuido com diversos processos rodando em paralelo, cada um
carregando uma parte do sistema (como é com a maioria dos softwares de
grande porte, de um modo geral). Nesse caso, suponho que uma aplicação
em Perl funcionará de forma análoga a código pré-compilado, com o
mesmo drawback de uma aplicação Perl de pequeno e médio porte (demora
um pouquinho antes de começar a primeira execução pq está carregando e
compilando tudo para a árvore de parsing).

Mas, sinceramente, é difícil encontrar sistema assim feitos em Perl,
acredito que por dois motivos fundamentais:

   1) Boa parte das funcionalidades do Perl em aplicações grandes está
associada ao uso de dependências de bibliotecas externas (compiladas)
ou bancos de dados (também compilados), de modo que apenas os wrappers
são em Perl e o resto já está presente no seu sistema. Ou seja, menos
coisa pro perl se preocupar em compilar/interpretar, ele apenas lida
com os sinais nesse caso;

   2) Perl, convenhamos, é uma linguagem poderosa o suficiente para
tornar tarefas complexas possíveis de maneiras compactas e eficientes,
e ao usar Perl dificilmente seu programa atingirá proporções que de
fato assustam para conseguir fazer o que vc quer. E, se atingir, boas
práticas de forking e independência modular farão com que você tenha
apenas pequenos atrasos de primeira execução dessas partes do seu
programa, e não um grande atraso do programa como um todo (o que seria
desagradável, até pq a grande maioria das funcionalidades de um
programa desse porte são usadas de fato apenas pela grande minoria)



Não sei se consegui responder sua pergunta, estou meio com sono e
posso ter me repetido, ou não feito sentido algum. O resumo é: não se
preocupe com isso, pode fazer seu navegador web ou ferramenta de
office em Perl que vai dar tudo certo =P

[]s

-b

On Nov 15, 2007 11:32 PM, Lorn <lorn.br em gmail.com> wrote:
> <estou_sem_acentos>
> Bom, pelo pouco que conheço, sei que Perl eh compilado e interpretado.
> Se esse sistema que vocë chama de "Grande" eh via web, mod_perl
> resolve seus problemas, pois ele "compila e interpreta" as instrucoes
> do seu codigo Perl e deixa na memoria pronto pra uso :)
> Se nao for, voce pode usar PAR que gera um pacote binario e nesse
> pacote ja vai tudo, desde o proprio perl quanto ate os modulos que
> voce usar ai eh soh executar seu programa onde voce quiser.
> Meus 2 centavos...
> </estou_sem_acentos>
>
>
> On Nov 15, 2007 4:32 PM, Blabos de Blebe <blabos em gmail.com> wrote:
> > Boa tarde a todos,
> >
> > Ultimamente andam me rodeando assuntos como interoperabilidade,
> > máquina virtual, compilação, etc.
> >
> > Eu ainda to lendo 'O Livro' de perl e estou no começo, então
> > possivelmente minha dúvida será respondida
> > no decorrer das páginas. De qualquer forma eu sei que é uma pergunta
> > meio idiota, mas lá vai:
> >
> > Cenário:
> >
> > Tem uma pessoal aí que diz que pra ser portável tem que ter máquina
> > virtual, "porque vc compila pra um e
> > roda em todos". Outros dizem que para ser portável, basta ser
> > compilável em qualquer plataforma. Os
> > adeptos das máquinas virtuais respondem que grandes sistemas demoram
> > muito pra compilar, gerando
> > custos extras, etc.
> >
> > Perl é portável sem essa papagaiada toda.
> >
> > A pergunta é: Dado um sistema que demore dias pra compilar numa
> > linguagem qualquer. Dado que
> > esse sistema tenha sido re-escrito em "Elegante Perl". Como Perl se
> > comporta ao levantar um
> > sistema gigante? Ou seja, quais as dificuldades que Perl poderia
> > enfrentar nesse cenário ou em
> > algum semelhante?
> >
> > Eu tenho lá minhas especulações sobre o que aconteceria, mas já que
> > não tenho como testar,
> > gostaria das opiniões dos grandes mestres.
> >
> > Obrigado
> > _______________________________________________
> > SaoPaulo-pm mailing list
> > SaoPaulo-pm em pm.org
> > http://mail.pm.org/mailman/listinfo/saopaulo-pm
> >
>
>
>
> --
> Lindolfo "Lorn" Rodrigues
> - www.slackwarezine.com.br
> - http://lornlab.org
> - http://sao-paulo.pm.org
> use Catalyst;
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>


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