Dúvida entre Perl, Python, Tcl

Estou procurando uma linguagem de Scripting que seja multi-plataforma, opensource,
que suporte compilação nativa também, rode em micros mais antigos, e que tenha
uma boa quantidade de bibliotecas e que sirva para finalidades diversas.
Alguém poderia me explicar as vantagens e desvantagens dessas linguagens
Perl, Python, Tcl, e qual àrea elas atuam melhor, ou seja, qual sua principal finalidade?

Eu uso Python e ela, ao meu ver, atende à todas as suas requisições.

www.python.org para maiores informações.

[quote=ralobao]Eu uso Python e ela, ao meu ver, atende à todas as suas requisições.

www.python.org para maiores informações.[/quote]

Sabes me dizer se Python tem alguma VM ou Compilador para dos?
Sabes quais sao os requisitos minimos para rodar Python?
Obrigado pela ajuda.

parece que python tem compilador sim…

hehehe, mas se vc quer uma linguagem multi-plataforma com compilador e VM, pq não usar java mesmo?
ou groovy?

[quote=hains]Estou procurando uma linguagem de Scripting que seja multi-plataforma, opensource,
que suporte compilação nativa também, rode em micros mais antigos, e que tenha
uma boa quantidade de bibliotecas e que sirva para finalidades diversas.
Alguém poderia me explicar as vantagens e desvantagens dessas linguagens
Perl, Python, Tcl, e qual àrea elas atuam melhor, ou seja, qual sua principal finalidade?
[/quote]

Tudo IMHO:

  • Perl: tendencia do codigo virar macarrao mal-cheiroso.

  • Tcl: ha muito tempo atras dei uma olhada. O expect eh legal, mas a linguagem nao tem muita abrangencia no Brasil. Na epoca em que o TK era um diferencial, poderia ate ser vantagem, mas hoje em dia…

  • Python: muita gente fala bem. Esta na moda, eh fashion e parece ser uma linguagem bacana. Ja fiz uns “hello world” com ela e no Brasil existe uma boa comunidade de usuarios (inclusive com boa documentacao traduzida: www.pythonbrasil.com.br).

O Python parece atender todas as caracteristicas desejadas. Sobre compilador, procure por psyco (psyco.sourceforge.net). E tem bindings para interfaces graficas como GTK e wxWindows. E tem tambem o Jython, uma integracao entre Python e Java.

Alem do Jython, voce pode considerar outras linguagens de script que rodem na propria plataforma Java (talvez voce ainda nao conhecesse essa opcao): Groovy (Java), JRuby (Ruby), Rhino (Javascript), dentre outras. Essa serie de artigos do developerWorks aborda essas linguagens: http://www-106.ibm.com/developerworks/views/java/articles.jsp?sort_order=desc&expand=&sort_by=Date&show_abstract=true&view_by=Search&search_by=alt.lang.jre

Marcio Kuchma

[quote=microfilo]parece que python tem compilador sim…

hehehe, mas se vc quer uma linguagem multi-plataforma com compilador e VM, pq não usar java mesmo?
ou groovy?[/quote]

Adoro java. Mas para micros mais antigos ficaria inviável.
Groovy, jah houvi falar, mas nunca fui atras.
Poderias me dar algumas explicacoes?
Valeu pela ajuda.

[quote=kuchma]

  • Tcl: ha muito tempo atras dei uma olhada. O expect eh legal, mas a linguagem nao tem muita abrangencia no Brasil. Na epoca em que o TK era um diferencial, poderia ate ser vantagem, mas hoje em dia…
    Marcio Kuchma[/quote]

A principal desvantagem de tcl eh que nao tem muita documentacao em portugues? Voce conhece mais algumas desvantagens, que eu deveria cuidar? Vi bastante coisa sobre tcl, mas ainda estou em duvida.
Tcl atende algumas de minhas requisicoes mais importantes como ser leve e opensorce, so nao encontrei um compilador nativo opensource.
Se voce puder me falar mais sobre tcl, ficaria agradecido.

[quote=kuchma]

  • Python: muita gente fala bem. Esta na moda, eh fashion e parece ser uma linguagem bacana. Ja fiz uns “hello world” com ela e no Brasil existe uma boa comunidade de usuarios (inclusive com boa documentacao traduzida: www.pythonbrasil.com.br).

O Python parece atender todas as caracteristicas desejadas. Sobre compilador, procure por psyco (psyco.sourceforge.net). E tem bindings para interfaces graficas como GTK e wxWindows. E tem tambem o Jython, uma integracao entre Python e Java.
Marcio Kuchma[/quote]

Python me parece muito interesante, mas me dizeram que um pouco pesada para micros mais antigos, e nao muito compativel, nao sei se isso eh verdade, se puder mas dizer mais algumas coisas, tambem ajudaria bastante.

[quote=kuchma]
Alem do Jython, voce pode considerar outras linguagens de script que rodem na propria plataforma Java (talvez voce ainda nao conhecesse essa opcao): Groovy (Java), JRuby (Ruby), Rhino (Javascript), dentre outras. Essa serie de artigos do developerWorks aborda essas linguagens: http://www-106.ibm.com/developerworks/views/java/articles.jsp?sort_order=desc&expand=&sort_by=Date&show_abstract=true&view_by=Search&search_by=alt.lang.jre
Marcio Kuchma[/quote]

Como comentei anterior a essa mensagem, o fato de nao querer usar java e seus derivados, eh por ela ser pesada demais para micros mais antigos.

Agradeco desde jah sua ajuda.

Bom, vamo la: primeiro o que eh um micro “antigo”? Quanto de processamento, e o que ele tem de memoria e recursos em geral? Pq ao inves de gastar dinheiro desenvolvendo o software de uma maneira dificil vc nao joga o dinheiro no hardware (que eh soh tirar da caixa, montar e ligar) e usa uma solucao mais simples no software (que depende de especificacao, testes, desenvolvimento, etc e tal)?

Completando o que o cv disse…se seu cliente não possui hardware suficiente para rodar uma aplicação assim, provavelmente esteja mesmo na hora de fazer um upgradezinho :wink:

Além disso, provavelmente o custo com RH para se desenvolver em determinadas linguagens deve ser muito mais alto…

Pentium 100mhz, 16mb em média.
Tem alguns 486 66 8mb também.
São umas 300 máquinas, o upgradecinho ficaria upgradeção ;o).
Muito desse micros são usado como terminais, outros como estação, etc.
E eu tambem queria desenvolver programas diversos para essas plataformas, não só para essa empresa, mas queria distribuir programas na net, aí o numero ficar enorme de micros “antigos” ;o).
Mas de qualquer forma, valeu pela ajuda.

nesse caso sugiro voce usar C.

Ou grandes arquivos de metal, papel e caneta hehe

[quote=hains]A principal desvantagem de tcl eh que nao tem muita documentacao em portugues? Voce conhece mais algumas desvantagens, que eu deveria cuidar? Vi bastante coisa sobre tcl, mas ainda estou em duvida.
Tcl atende algumas de minhas requisicoes mais importantes como ser leve e opensorce, so nao encontrei um compilador nativo opensource.
Se voce puder me falar mais sobre tcl, ficaria agradecido.[/quote]

Nao conheco o minimo de Tcl pra poder falar com autoridade, mas minha opiniao eh que eh uma linguagem um pouco obscura - o que fatalmente vai impactar em aspectos como: teu aprendizado pessoal, evolucao da linguagem, busca de profissionais para desenvolvimento ou manutencao do codigo. Uma boa fonte de informacao em portugues eh www.souzamonteiro.com.

Bom, minha opiniao nesse caso eh: teste. Voce deve ter um parque de “maquinas-alvo” a disposicao, certo? Coloque em cada uma delas o Tcl e o Python e veja o comportamento de ambos. Eu posso falar, outros podem falar, mas o teu cenario exatamente quem conhece eh apenas voce mesmo - recomendo testes pra poder validar as opinioes dos outros. :smiley:

Alem disso depende do tipo de software que voce quer desenvolver. Faca um “benchmark caseiro” para ter dados reais.

Entao, com relacao a isso, se voce nao pode depender de maquinas melhores (upgrade), considere uma arquitetura cliente-servidor se isso for possivel. Gerar executaveis independentes para maquinas desse porte em uma linguagem de alto-nivel nao eh uma tarefa muito simples - mas mesmo assim acho que o Python compilado pode dar conta do recado. A ideia de compilar o Python (ou o Perl ou qualquer outra linguagem) eh tornar o codigo tao rapido quanto se fosse em linguagens de baixo nivel (C, p.ex.). A situacao eh extrema, mas nao tanto para exigir desempenho melhor do que em C, certo? :smiley:

Em todo caso, tenho alguma literatura sobre Python, Perl e Tcl (dentre outras) da qual quero me desfazer. Se interessar, entre em contato via mensagem privada. :mrgreen:

Marcio Kuchma

Olá

[quote=hains]… linguagem … multi-plataforma, opensource,
que suporte compilação nativa também, rode em micros mais antigos, e que tenha uma boa quantidade de bibliotecas e que sirva para finalidades diversas.[/quote]

Como disse o louds, o C é tudo isto e ainda roda em micros antigos. E com certeza o C é mais fácil de aprender do que muitas linguagens de script, como por exemplo perl.

[]s
Luca

hahahahahah

Python, etc, roda nesses PCs?

Roda sim. E você pode usar C para as situações que exigem desempenho crítico + python.

Uma boa solução seria usar Pyrex http://nz.cosc.canterbury.ac.nz/~greg/python/Pyrex/

Falou! :slight_smile:

mas uma hora ou outra o cara vai acabar tendo que trocar esses pcs, né?

não tem condição…

tomara q sim… ehehehe… ((;

Outra perguntinha pentelha (pq eu sou pentelho, afinal): a aplicacao TEM que rodar local no cliente? Nao pode ser, digamos, uma aplicacao web? Em 95 a internet ja existia, e essas maquinas quebravam um galhao :slight_smile: