Comparação entre Tcl e Perl

Todos sabem que sempre gostei e muito da linguagem Tcl/Tk (Tool Command Language / Tool Kit) e continuo gostando. Em Novembro de 2000, adotei a linguagem PERL (Practical Extraction and Report Language) como linguagem predileta e usada profissionalmente.

[ Hits: 17.615 ]

Por: Fábio Berbert de Paula em 05/11/2002 | Blog: https://fabio.automatizando.dev


Introdução



Todos sabem que sempre gostei e muito da linguagem Tcl/Tk (Tool Command Language / Tool Kit) e continuo gostando. Em Novembro de 2000, adotei a linguagem PERL (Practical Extraction and Report Language) como linguagem predileta e usada profissionalmente. Muitos vieram me perguntar o porque disso, sendo assim, escrevo este edital para esclarecer meus motivos e compartilhar da minha pequena experiência com as linguagens.

Vamos começar falando um pouco sobre o Tcl. O Tcl é uma linguagem de programação interpretada, possui uma sintaxe bem leve e flexível, onde praticamente qualquer código que você desconfia que pode funcionar acaba funcionando. No Tcl declaramos variáveis sob demanda, ou seja, não é preciso dizer ao interpretador quais as variáveis serão usadas e nem quando serão usadas. Se for preciso, você pode declarar uma variável na última linha do seu programa e ninguém vai reclamar disso. Outra grande vantagem com relação a variáveis é que não precisamos especificar o seu tipo. O interpretador Tcl tenta adivinhar o tipo da variável toda vez que ela é usada, logo podemos escrever um bloco de código da seguinte forma:
set coringa 10;
puts "Temos um número com valor $coringa";
set coringa "Fábio Berbert de Paula";
puts "Nosso número virou uma string: $coringa";
Isso é o que chamamos de linguagem sem burocracia! ;o)

O Tcl é usado para escrevermos programas que não usam as bibliotecas gráficas do sistema. Não podemos escrever um aplicativo com interface para cliques de usuário com Tcl puro. É aí que entra o Tk.

Tool Kit (Tk) é um conjunto de bibliotecas gráficas que contém rotinas para criação de botões, janelas, menus, barras de rolagens e coisas do tipo. Quando queremos desenhar uma interface gráfica para nosso aplicativo, fazemos chamadas as bibliotecas gráficas do Tk e temos o que chamamos de uma ferramenta poderosa. Abaixo segue o exemplo de um aplicativo gráfico em Tcl/Tk escrito em apenas uma linha:
pack [button .but1 -text "Clique Aqui" -command {tk_messageBox -message "Olá, mundo!" -title "Que legal"}]
Sinistro não ? Quem usa C++ nunca deve ter imaginado escrever um aplicativo gráfico em 1 linha, isso eu garanto.

As bibliotecas do Tcl padrão são bem enxutas, ocupam pouco espaço em disco e possuem ótima performance. A medida em que se torna necessário expandir as bibliotecas da linguagem, podemos instalar o que chamamos de extensões. Por exemplo, suponha que você deseja fazer o seu programa em Tcl acessar uma base de dados contidas no MySQL. Sem problemas, instale a extensão tcl-sql no seu interpretador e você passa a dispor de funções que executam consultas, inserções e outras em um banco de dados do MySQL. Se você deseja criar um aplicativo multimídia para gravar e reproduzir arquivos de audio, instale a extensão Snack e por aí vai.

Resumindo, para cada tipo de coisa que não esteja incluída nas funções padrões do interpretador Tcl, você encontra uma extensão que satisfaz as suas necessidades. Assim é o Tcl.

Ótimo, até agora só falei bem do Tcl. Mas por que diabos troquei de linguagem ? Ora, usei a linguagem durante minha fase acadêmica, mas hoje preciso trabalhar para o meu sustento e infelizmente o mercado não absorve programadores para essa linguagem. O que pesa muito na hora da escolha da linguagem é a sua popularidade, não é à toa que linguagens como o Visual Basic e ASP tem uma legião de seguidores ... e olha que são linguagens tão boas quanto o sistema operacional que as suporta. ;o)

Quando me perguntam onde encontrar documentação para iniciação em Tcl, nunca tenho a resposta na ponta da língua, este é o problema. É mais fácil cruzar com um finlandês tomando sol na praia de Ipanema que encontrar um site em Português que fale sobre Tcl.

Bom, essa é a minha visão sobre o Tcl. Agora vamos falar um pouco sobre PERL.

PERL é uma linguagem que se assemelha e muito com o TCL, é interpretada, possui as mesmas vantagens com relação a declaração e uso de variáveis, por ser interpretada é multi-plataforma, assim como o Tcl é uma linguagem de domínio público e tem em sua versatilidade a sua maior virtude.

Em Tcl temos as extensões, em PERL temos os módulos. Sempre que queremos adicionar uma funcionalidade a mais a linguagem, instalamos um módulo. A PERL possui uma vasta coleção de módulos pela Internet a fora e ao contrário do Tcl, seus módulos se encontram bem organizados em um repositório central, a CPAM (www.cpan.org).

Bom, para resumir e encerrar o artigo, apresento uma tabela comparando as duas linguagens em alguns dos pontos que considero fundamentais na escolha da mesma.

-TclPerl
PopularidadeNo Brasil é pouco usada. É mais conhecida no meio acadêmico e mesmo assim, não é o que podemos chamar de linguagem popular.Sem dúvidas é a linguagem mais popular do mundo Unix. Não falta emprego para quem domina a PERL.
DocumentaçãoEm Português é quase nula. Em Inglês podemos encontrar bastante coisa, mas nada que se compare com a quantidade de documentação da PERL.Em Português podemos encontrar dezenas de sites e centenas de livros. Em Inglês nem se fala, a documentação é abundante.
EstruturaMuito bem estruturada, podemos entender com facilidade o código de programas escritos por outras pessoas.Por ser flexível aos extremos, tem sua estrutura desorganizada. Marinheiros de primeira viagem não vão entender bulufas de um simples código escrito por terceiros.
PortabilidadePor ser interpretada, é portável para vários sistemas operacionais.Idem
DesempenhoNão tem o mesmo desempenho de uma linguagem compilada, mas responde bem a grandes quantidades de processamento.Idem    

Páginas do artigo
   1. Introdução
Outros artigos deste autor

I Encontro da Comunidade Viva o Linux

cpulimit - Limitando o uso da CPU por processo

Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota

Criando um painel de rede em PHP

Docalysis: Análise de Documentos com Inteligência Artificial

Leitura recomendada

Programando em Perl (parte 1)

Programando em Perl (parte 2)

Um pouco de PERL

Módulos CPAN no Debian e distros GNU/Linux em geral

Perl e MySQL

  
Comentários
[1] Comentário enviado por Ale_ em 19/01/2004 - 12:04h

http://www.freenetpages.co.uk/hp/alan.gauld/port/

tem algma coisa de python/tk

[2] Comentário enviado por rsouza em 22/03/2004 - 13:22h

Esse artigo é o que eu procurava, alguém com experiência, para tirar minhas dúvidas. Agora posso estudar perl com certeza que essa é a linguagem que queria.

Valeu Fábio...

[3] Comentário enviado por Agente Smith em 07/03/2005 - 13:15h

Para quem se interessou em aprender sobre Tcl e Tk, aqui tem um ótimo curso em português desta linguagem:

http://www.souzamonteiro.com/curso_tcl/

[4] Comentário enviado por mago em 05/04/2005 - 17:10h

Bom ... existe sim algumas oportunidade bem interessantes em TCL mas em sua maioria estão sendo migradas para Perl por falta de profissionais qualificados.

Quanto a ser Interpretado ... Perl não é propriamente uma linguagem interpretada ... mas isso vou falar em um artigo que estou preparando para publicar aqui, que deverá ser bem esclarecedor.

[5] Comentário enviado por jobsavage em 14/12/2005 - 15:04h

De fato, como o autor mesmo falou eh bastante inutil falar da linguagem tcl hoje em dia uma vez que vc faz o mesmo com perl. Ai esta um motivo para naum falar mesmo. Acho que o artigo deveria focar mais o porquê de alguém usar perl (um dos motivos, acredito, para o artigo), e naum tentar fazer comparações do gênero. Mas como o autor mesmo falou, o que naum falta eh sites em português fazendo o mesmo. Logo...

[6] Comentário enviado por dimitri.ramos em 23/11/2006 - 09:02h

Você saberia me dizer como faço para adicionar um script em pearl no Nagios? Consegui um script para monitorar alguns serviços bem específicos em servidores de jminha rede, o problema é que não estou conseguindo fazer arelação deste script em pearl com o nagios, Valeu !!!

[7] Comentário enviado por yetlinux em 16/05/2009 - 19:14h

Dois links para TCL/TK:


http://tclbrasil.cipsga.org.br/tcltk.htm
http://www.orkut.com.br/Main#Community.aspx?cmm=741325


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts