[Cascavel-pm] Perl no "mundo real"

Nilson Santos Figueiredo Junior acid06 em gmail.com
Sábado Agosto 6 08:43:43 PDT 2005


On 8/5/05, "Er Galvão Abbott - PortoAlegre.pm" <galvao em perl.org.br> wrote:
> Gostaria que as pessoas que de fato trabalham com Perl em seus empregos
> ou têm conhecimento de que a empresa onde trabalham utiliza Perl dessem
> seus depoimentos.

Olá Galvão,

Primeiramente, gostaria de dizer que seria *bastante* interessante se
essa lista de cases de sucesso fosse colocada em algum local público,
como no site da perl.org.br. Acredito que muitas pessoas (como eu por
exemplo) trabalham em lugares onde a filosofia da empresa é outra
bastante diferente e um dos principais argumentos contra Perl é que,
supostamente, grandes projetos não são desenvolvidos em Perl hoje em
dia. Pelas respostas, eu vi que existem vários e vários projetos que
poderiam colocar esse tipo de argumentos por água abaixo e se não
fosse considerado prova o suficiente que Perl é uma linguagem que se
adapta tanto à pequenas tarefas quanto a grandes projetos, pelo menos
eu ficaria satisfeito pois teria provado que Perl não era adotado por
simples medo irracional da mudança pelos responsáveis por tomar
decisões. ;-)

De qualquer forma, aonde eu trabalho, eu vivo um processo de
evangelização de Perl. É uma empresa razoavelmente grande (mais de 200
pessoas dedicadas ao desenvolvimento de software) com uma filosofia
Microsoft-centric e, aos poucos, eu tento (e com variados graus de
sucesso, às vezes, consigo) ir inserindo um pouco de Perl na cultura
do meu departamento (8-10 desenvolvedores).

Atualmente, só existem sistemas internos em Perl, nada que chegue ao
cliente final:
- O processo de build do sistema principal, feito em VB6, é
completamente automatizado por um utilitário em Perl. Ele interage com
o SourceSafe para pegar as versões atualizadas, trata das
idiosincrasias relacionadas ao COM+ do Windows e faz mágica para
compilar o projeto pelo VB6 via command line. Existem planos futuros
para que no final também seja gerado um instalador a partir disso,
utilizando como base o PAR ou PerlApp, para deployment.
- Ferramentas de manutenção de código. O sistema é razoavelmente
grande e, por isso, é fácil ocorrerem fatos como existir código que
não é mais utilizado em lugar nenhum (por exemplo, uma variável que
deixou de existir, uma função que não é chamada por mais ninguém).
Existe um mini-parser de VB6 que cuida desse tipo de coisa e "limpa" o
código, na medida do possível. Caso fosse necessário, o parser é
poderoso ao ponto de conseguir, por exemplo, renomear variáveis para
garantir que a nomenclatura de variáveis definida pela política de
desenvolvimento está sendo seguida (e.g. todas as variáveis do tipo
string devem ter o prefixo "str") entre outras coisas.
- Ferramentas de auxílio ao desenvolvimento. Existe um sistema
(novamente baseado no mini-parser de VB6, citado acima) que gera uma
árvore de dependências entre todas as funções do sistema. Por exemplo:
uma determinada função x, do componente y, é chamada pelas páginas a,
b e c. Essa função x, por sua vez, chama as funções i e j do
componente z e também chama as stored procedures s, t e u no banco de
dados.
- Interpretação de logs do sistema para geração estatísticas variadas.

Certamente, já existiram outros usos para tarefas menores, mas não me
recordo de nenhum caso específico que valha a pena citar.

A maioria das tarefas acima citadas seriam bem difíceis de serem
realizadas em outras linguagens enquanto em Perl são trivialmente
conseguidas, dadas as ótimas capacidades para manipulação de strings e
dados em geral.

-Nilson Santos F. Jr.


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