<p>Desenvolvedores de soluções Desktop costumam partir do princípio que
linguagens compiladas funcionam sempre mais rápido que as interpretadas
(como Perl).</p>Ainda que muitos desenvolvedores de serviços
online já estejam acostumados com mecanismos que carregam
interpretadores como mod_perl e ISAPI e cujo desempenho se aproxima
bastante daquelas em C/C++, são poucos os desenvolvedores 3D que pensam
em Perl quando o objetivo é performance. Bom, eles deveriam!
<br><br>GPUs (Graphics Processing Units) são microprocessadores
especializados em processamento de gráficos disponíveis em todas as
placas de vídeo modernas, e estão a cada dia tirando a carga das CPUs
para o tratamento de números. O processamento moderno de GPGPU (General
Purpose GPUs) se aproxima de programas em C e carrega grandes vetores
de dados dentro da GPU, onde o processamento acontece independentemente
da CPU. Como resultado, a contribuição de programas atados à CPU
diminui, e a diferença entre Perl e C se tornam insignificantes em
termo de performance GPU.
<br><br>A mais nova versão do módulo POGL (Perl OpenGL), disponível em <a href="http://graphcomp.com/opengl/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://graphcomp.com/opengl/</a>
e diretamente via CPAN, adicionou suporte ao GPGPU. O autor colocou
ainda uma série de benchmarks entre C e Perl, demonstrando não haver
qualquer diferença estatística de performance entre implementações em C
e em Perl, e apresentando inclusive casos em que a performance em Perl
é melhor do que em C para operações OpenGL!
<br><br>De um modo geral, C foi melhor que Perl em operações
Vertex/Fragment Shader, enquanto Perl foi melhor em operações de
Objetos Frame Buffer. Essa similaridade é explicada por diversos
fatores, dentre eles a alta quantidade de operações realizadas pela
GPU; o fato do POGL ser um módulo C compilado; e que operações não-GPU
são mínimas. Ainda assim, esse é de fato o ambiente típico de operações
de processamento e renderização de imagens. E é aí que entram as
vantagens do Perl, seja na portabilidade, facilidade e agilidade de
desenvolvimento, diversos módulos de imagens para carregar texturas em
vetores de dados GPGPU, ser essencialmente mais rápido do que Java (em
especial sob mod_perl/ISAPI), ou pelo simples fato de não haver suporte
a FBO (Frame Buffer Objects) em Java, Python ou Ruby até a data de
hoje. E os resultados mais favoráveis ao Perl foram obtidos onde? No
Windows Vista!
<br><br>Com Perl, desenvolvedores OpenGL/GPU de Desktops podem
prototipar seus códigos rapidamente em Perl e depois portar (caso
necessário) para C/C++ mais tarde. É fácil perceber também as vantagens
em escrever o código em uma janela e executar na outra sem qualquer IDE
ou compilação, permitindo experimentações em tempo real com novos
algoritmos, modelos e efeitos especiais.
<br><span><br>--<br>Notícia adaptada, original por Shlomi Fish, Bob Free, Mike Friedman e Brian D Foy em <a href="http://www.perl.com/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">www.perl.com
</a></span>