At 11:19 15/7/2001 -0300, Jorge Luiz Godoy Filho wrote:
>Ainda vejo Java como algo 'evil'. E extremamente problem�tico.
As pessoas v�em o que querem ver e n�o aquilo que tem que ser, j� dizia um
grande reggaero :)
Bom, algumas mensagens na thread chamaram-me a aten��o e achei legal que
certos pontos fossem esclarecidos:
1 - Java � a �nica linguagem total e completamente port�vel. Ponto. E nao
estou falando aqui de engines de expressoes regulares e modelos de objeto,
e sim de interfaces de conexao a banco de dados, m�todos distribu�dos e
toolkits gr�ficos, i.e. coisas que as pessoas realmente necessitam em
aplicacoes que precisam ser port�veis, que podem ser bem diferentes nas
v�rias implementa��es de outras linguagens em v�rios sistemas, enquanto
Java mant�m consist�ncia do Palm ao E10k. Sim, h� possibilidade de se fazer
c�digo nao port�vel em Java abusando de JNI, usando conven��es de
diret�rios mal-pensadas, mas isso pode ser feito em qualquer linguagem, e
mesmo assim Java tem classes pr�-definidas para trabalhar com a maioria dos
problemas que dependam de alguma forma de acep�oes sobre a plataforma de
forma port�vel. Java � Write Once Run Anywhere. Se vc programa segundo a
especificacao Java nao precisa ficar preso a uma JVM, mas pode rodar seu
c�digo em qualquer JVM que siga a especifica��o para a qual vc programou.
2 - As m�quinas virtuais da Sun, IBM, Transvirtual, Borland, Microsoft,
Intel e etc sao livres para uso pessoal E comercial sem custo algum.
3 - Dizer que Perl escala t�o bem quanto Java n�o � racional. Eu andei
estudando, e ainda continuo estudando Perl por algum tempo e realmente �
uma linguagem interessante que tem seus usos, mas ela _promove maus h�bitos
de programa��o_. Tem operadores demais, detalhes demais, sintaxe confusa,
compromete a legibilidade do c�digo e num projeto grande com v�rias pessoas
torna-se imposs�vel de manter (falo aqui de projetos com bem mais do que
716 linhas). Al�m de que aquela coisa que colocaram no Perl e disseram que
� orienta��o a objeto s� pode ser piada. E de mau gosto. Em compensa��o,
Java tem um modelo de OO que se n�o � perfeito chega muito perto, sintaxe
concisa, operadores que fazem sentido, tipagem forte e aus�ncia de
vari�veis do tipo $_, $%, $^ que s� servem para poluir o c�digo e
dificultar a vida de terceiros q porventura venham a manter o c�digo. �
exatamente por isso que n�s vemos projetos enormes como ambientes de
desenvolvimento, RDBMS/OODBMSs, browsers, servidores de aplica��o,
webservers e etc escritos em Java, enquanto o m�ximo de complexidade que eu
vi num programa Perl � um cliente de e-mail.
4 - Granted, Java no cliente � bloatware. Mas o foco de Java n�o � mais
isso, e sim no servidor. Quem j� deu uma lida na especifica��o de Servlets
disponivel em http://java.sun.com/products/servlet/download.html, sabe que
servlets Java sao interpretados uma �nica vez. Durante essa vez, eles
passam por um JIT que compila o bytecode para a arquitetura nativa e
armazena esse c�digo em mem�ria, tornando servlets Java t�o ou mais r�pidos
que CGIs em C/C++, Perl e outras linguagens, mesmo usando de artif�cios
como interpretadores embutidos em webservers. JSPs sao convertidos em
Servlets em tempo de execucao, entao caem na mesma categoria. Al�m disso,
Servlets Java e JSP, por separarem a l�gica do design de forma consistente
e suportarem distribuicao de classes e metodos entre v�rios modulos que
podem estar geograficamente dispersos, podem ser integrados em servidores
de aplica��o de maneira nunca alcan�ada por um Perl da vida. Ex.: IBM
Websphere, BEA Weblogic, Oracle AS, etc.
5 - A linguagem 'Java' � propriet�ria. As implementa��es nao precisam ser.
Existem v�rias JVMs com c�digo fonte dispon�vel (Kaffe, e a da Blackdown me
v�em � mente) tanto sob licen�as propriet�rias como GPL e coisas do tipo. E
n�o, nenhuma das implementa��es de terceiros precisam ter c�digo da Sun,
pois a m�quina da Sun � propriet�ria e nao pode ser redistribu�da sob outra
licen�a que n�o a SCSL (o JDK da Sun acompanha fontes para os
interessados). Isto �, eu posso desenvolver um Kaffe da vida 100%
compat�vel com a �ltima especifica��o de Java e redistribu�-lo sob a GPL
sem qualquer �nus. O que eu NAO posso � fazer propaganda da minha
implementa��o dizendo q ela � 100% compat�vel com Java sem o consentimento
da Sun. Entretanto, eu posso mant�-la 100% compat�vel ou mesmo adicionar
extensoes � minha vontade e cham�-la de qualquer outra coisa, menos Java.
Isso foi e est� sendo feito pela Microsoft, HP e outros e n�o � nenhuma
novidade. O Alexandre Oliva fez algo parecido quando adicionou c�digo �
reflection API do Kaffe e o chamou de Guaran�. As especifica��es da JVM, do
compilador e da biblioteca de classes estao dispon�veis para download
gratuito em http://www.javasoft.com para qualquer um que deseje implementar
algo compat�vel ou semelhante sob qualquer licen�a.
6 - As JVMs dispon�veis para Linux tem baixa performance pelo mesmo motivo
que tem baixa performance no Mac OS cl�ssico: Java usa de recursos
presentes em sistemas operacionais modernos que infelizmente nao est�o bem
implementados em todos os sistemas operacionais dispon�veis. As duas JVMs
que seguem Java2 totalmente em ambiente Linux, a da IBM e a da Sun, est�o
totalmente corretas de acordo com a especifica��o e rodam bem nos seus
respectivos sistemas operacionais e de terceiros. O Linux apenas n�o ajuda.
Nao � o caso de Java nao ser suficientemente bom rodando em Linux, e sim do
Linux nao ser suficientemente bom para rodar Java =)
PS: desculpem ressuscitar essa thread, mas s� pude checar a lista hoje.
--
Thiago Pimentel
Preview Tecnologia
He who fights and run away lives to fight another day.
-- Bob Marley
Assinantes em 20/07/2001: 2242
Mensagens recebidas desde 07/01/1999: 123948
Historico e [des]cadastramento: http://linux-br.conectiva.com.br
Assuntos administrativos e problemas com a lista:
mailto:[EMAIL PROTECTED]