[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Linux e java



Vítor,

Vítor E. Silva Souza wrote:
Ou seja, o Java simplesmente quer ter certeza de que você tem certeza do que
está fazendo. É como se ele dissesse: "quer copiar um double para um int?
Pode copiar, mas faça o cast, para eu saber que você tem certeza disso!".
Isso não rola só pra casts, mas para um monte de outras coisas.

Sim, você tem razão, mas o que enche o saco é ter ficar fazendo o cast dos objetos a toda hora.

A vantagem da linguagem ser tipada é a verificação que você falou, você diz para o compilador exatamente que tipo de dados é aquele (e por conseqüência as operações que ele aceita).

A desvantagem é que você é obrigado a escrever muito mais código.

Ambos tem prós e contras.

Vou citar o Gustavo numa mensagem desta mesma thread:
"Claro... cast é uma coisa boa sim... coisas restritivas ajudam muito a eliminar bugs bobos que, por exemplo, linguagens como python, perl deixam passar numa boa."

Nas linguagens com tipadas você assume que o programador vai cometer erros, então, pessimistamente, o compilador verifica tudo o que ele está fazendo. Exemplos de linguagem: C, java. Nas linguagens com tipagem dinâmica, espera-se que o programador saiba exatamente do que está fazendo. Este tipo de linguagem depende mais da qualidade do trabalho do programador (se for ruim o código fica uma caca). Exemplos de linguagens: python e lisp.

A título de exemplo: http://www.onjava.com/pub/a/onjava/2002/03/27/jython.html

Claro, o autor fala sobre jython e vai defender a segunda abordagem, mas o artigo tem alguns exemplos interessantes comparando com java.

Como já disse, ambas as abordagens têm prós e contras, eu prefiro a segunda abordagem (não será a verificação de tipos que vai salvar de uma programação mal-feita). Mas com certeza há contextos em que a primeira abordagem pode ser mais adequada.

Se puderem, leiam o excelente texto de Paul Graham (o texto é mais amplo do que o discutido aqui):
http://lib1.store.vip.sc5.yahoo.com/lib/paulgraham/acl1.txt
(se tiverem tempo de ler este texto, gostaria de saber a opinião de vocês sobre o mesmo)

"Instead of hoping that people won't make mistakes, it tries to make the cost of mistakes very low. The cost of a mistake is the time required to correct it. With powerful languages and good programming environments, this cost can be greatly reduced. Programming style can then depend less on planning and more on exploration."

Tudo é questão de ponto de vista. Falando estritamente de linguagem, eu
prefiro Java a C ou C++.

Eu também. Mas como diz o meu irmão, gosto não se discute, se lamenta. :)

[]'s Jonas



Reply to: