domingo, maio 29, 2005

Java vs .NET ( Xiitas vs 'Entusiastas' )

Ultimamente o que mais se fala em termos de plataforma de desenvolvimento, onde todos que opinam, acham que tem uma visão melhor sobre a ferramenta ou tecnologia que usa, dizendo e tentando provar que a tal é a melhor opção do mercado. Sou a prova viva de que na maioria das vezes puxamos a sardinha para nosso lado, eu tenho uma relação de amor com a plataforma .NET (ta bom, pode falar, M$ ta no sangue) , e em todas as conversas que tenho sobre JAVA vs .NET, pode-se imaginarcomo termina (quando termina).

Depois de algumas conversas no trabalho, um colega (Ederson) que assina a lista dediscução de sua universidade, mandou um documento que estava circulando por lá, resolvipostar aqui na íntegra o documento.

PS: Que fique claro que estou postando, não que eu esteja concordando com tudo o que está sendo dito neste texto.

JAVA vs .NET

Normalmente as discussões envolvendo Java e .NET ou Linux versus Windows se desenrolam muito mais no terreno emocional do que no campo técnico, algo como quando dois torcedores fanáticos falam sobre futebol. É certo que a rivalidade ainda não chegou ao mesmo nível de uma partida entre Brasil e Argentina, mas todo debate relacionado às duas tecnologias tem sido quase sempre pontilhado por certo ardor futebolístico.

Os partidários da ferramenta da Microsoft estão agora mais confiantes. O motivo está no fato de a empresa vir alardeando aos quatro cantos que neste ano liberará a versão 2.0 da sua plataforma de desenvolvimento, conhecida pelo codinome Whidbey. Como bem frisa Mauro Sant'Anna, diretor-técnico da Architettura, empresa certificada como Microsoft Solution Developer, o objetivo principal da Microsoft como a nova versão é aumentar a produtividade. "O Visual Studio do Whidbey, por exemplo, trará novidades em termos de bibliotecas de classes e CLR (common language runtime), além de mais recursos nas linguagens, ferramentas para trabalho em equipe e um ambiente integrado mais abrangente", afirma Sant'Anna. O consultor observa que o desenvolvimento mais rápido para todas as linguagens se deve a uma redução drástica no número de códigos do sistema - cerca de 70% menor - e ao acesso a dados mais simplificado.

Muitos se lembram do barulho causado pela Microsoft quando anunciou a plataforma .NET no ano 2000. Alguns chegaram a preconizar que ela significaria uma mudança radical de paradigma e que o mercado deixaria de desenvolver aplicações isoladas e vender licenças de software. E mais, que a partir daquele momento tudo seria web services - as aplicações seriam usadas como a energia elétrica. A idéia, sem dúvida bastante sedutora, até agora porém não se materializou. O propósito com o Whidbey é retomar e fortalecer essa concepção. "Essa é a terceira versão do .NET. E todo mundo conhece a lenda que diz que somente após a terceira versão um software torna-se eficiente. Na primeira há aquela pressão em se lançar o produto rapidamente, mesmo que apresente falhas. A segunda versão é para consertar os bugs mais graves. E a terceira é um aprimoramento, já que a Microsoft teve tempo de sobra e pôde desenvolver tudo com calma", observa Sant'Anna.

Sutis diferenças

Como era de se esperar, o consultor Júlio César dos Santos Lins, da Qualiti Software Processes, empresa de desenvolvimento com sede no Porto Digital de Recife (PE) e certificada Sun Programmer for Java 2 Platform, sustenta, ao comparar as duas plataformas, que o Java é mais maduro, tem mais tempo no mercado e possui uma comunidade bastante desenvolvida e ativa. Além disso, oferece mais opções de tecnologia e frameworks. "A portabilidade e a comunidade open source dão ao Java uma vantagem competitiva", diz ele, reconhecendo que a plataforma .NET, por outro lado, foca em produtividade, com um ambiente integrado, além das facilidades do sistema operacional, o que lhe dá alguma vantagem pela forte adoção do Windows nas empresas. Para ele, não há uma resposta definitiva sobre qual dos dois ambientes é melhor. "Em cada caso específico, um leva ligeira vantagem sobre o outro. Cabe ao desenvolvedor escolher de acordo com as suas necessidades."

Um aspecto salientado por Lins é quanto à questão dos custos, pois a primeira coisa que a empresa usuária pensa ao adotar o Java, segundo ele, é que irá reduzir gastos com desenvolvimento por tratar-se de uma ferramenta de código aberto. O consultor realizou um levantamento no mercado com o propósito de comparar versões gratuita e comercial da plataforma Java com o custo médio do .NET. Na média, a comparação mostrar que os dois padrões se equivalem. Os exemplos tiveram como base um suposto ambiente formado por seis programadores, um servidor e uma CPU. O primeiro modelo para J2EE é totalmente gratuito, com o Eclipse como opção de IDE (ambiente de desenvolvimento integrado), plug-ins, o JBoss como servidor de aplicação e o sistema operacional Linux. Nesse conjunto, o custo é zero. Por outro lado, a solução comercial utilizaria o JBuilder Enterprise (US$ 3,5 mil), o servidor de aplicação WebLogic (US$ 10 mil) e o Linux (grátis), totalizando, na média, US$ 15,5 mil para o Java.

No caso do .NET, com o ASP.NET, cada licença do Visual Studio custa US$ 1.799 (6 x US$ 1.779) e o Windows Server Enterprise sai por US$ 3.999, o que totaliza US$ 14.793. Mas se no item custos as duas tecnologias estão num patamar muito próximo, como será no campo da produtividade? "Medir a produtividade é algo bastante complexo, pois envolve diversos fatores além da programação. É preciso conhecer a capacitação da equipe em todo o ciclo de desenvolvimento, pois muitos dos problemas que surgem estão no processo, e não na ferramenta", justifica Lins.

Quem acompanha o mercado de desenvolvimento de software já deve ter visto alguns estudos ou artigos publicados, mostrando que uma ou outra plataforma é mais eficiente, mais barata e mais produtiva que outra. "Isso não passa de guerra de marketing, onde são mostrados alguns resultados isolados ou cases específicos para convencer o usuário que seu produto é melhor. Esses estudos são tendenciosos e quase sempre apontam resultados contraditórios", dispara Lins. Ele acrescenta que do lado do Java fica muito difícil fazer uma avaliação, já que existem muitas opções (são 12 IDEs e 21 servidores) e porque diversos frameworks utilizados não seguem a especificações J2EE.

Jogo empatado

Uma outra questão ressaltada pelo especialista da Qualiti é em relação ao desempenho no desktop, dúvida que atormenta os desenvolvedores de aplicação. "As duas plataformas se baseiam em uma linguagem intermediária. O código Bytecode ou MIL é interpretado, por isso a necessidade de uma máquina virtual. Compiladores JIT existem nas duas plataformas", observa Lins. "O pódio de melhor desempenho tende a ser temporário, pois a cada nova versão são agregadas melhorias em ambos os produtos. E, muitas vezes, os problemas de desempenho estão na aplicação, e não na plataforma", alerta.

Na opinião de LIns, os nichos de mercado ainda estão se definindo para as duas plataformas e o segmento de aplicações para servidor tende para uma divisão igualitária, embora reconheça que o .NET vem crescendo de forma impressionante. Obviamente, atrás disso está todo o poderio econômico da Microsoft. Mas o que também deve ser levado em conta é que do outro lado do campo estão gigantes como Sun, IBM, BEA e a comunidade open source. Nas aplicações de desktop, a plataforma .NET leva vantagem pela grande disseminação do Windows, que está instalado em pelo menos 95% dos computadores, conforme calcula Lins. Só que, na outra ponta, o Java, mais especificamente o J2ME, ganha folgado quando o assunto é dispositivo móvel. "No mundo, são mais de 350 milhões de celulares com Java e 600 milhões de JavaCards circulando", observa o especialista, acrescentando que as duas plataformas deverão dividir o mercado, integradas por meio de tecnologias como web services. Por enquanto, o jogo está empatado.

;)

2 Comments:

At 5:48 PM, Anonymous Anônimo escrito...

... feliz de quem usa Python, ;-)

 
At 1:56 AM, Anonymous Anônimo escrito...

Ainda bem que eu uso C++. ;)

 

Postar um comentário

<< Home