Eh no minimo engracada essa comparacao "justa" da Microsoft...
 
Primeiro, pq o proprio whitepaper diz o seguinte:
 
The Java Pet Store takes a complete object-oriented approach
 
E depois contrasta isso com o .NET, o q mostra q ele nao tem uma abordagem completamente orientada a objetos, como eu suspeitava e sempre disse...
 
Muitas das "vantagens" q o .NET levou em performance sao questionaveis, como eles mesmos reconhecem no paper. O uso indiscriminado de stored procedures pra tudo logicamente q economiza linhas de codigo comparado ao mesmo codigo J2EE.).
 
Isso implica na obrigatoriedade de suporte a SPs no banco e, alem disso, tem suas disvantagens, pq eh necessario q o desenvolvedor tenha uma serie de permissoes para alterar, visualizar ou excluir a SP do banco, enqto codigo SQL, de preferencia lido de algum XML - pq o Pet Store da Sun nao faz isso, btw? - eh portavel, altamente configuravel e facil de ser manipulado pelo desenvolvedor, podendo atingir um range muito maior de target databases.
 
Se somassemos as linhas das procedures a conta da Microsoft, jah teriamos uma diferenca significativa. Se jogassemos o codigo SQL do Pet Store da Sun no Oracle, por exemplo, teriamos um aumento de performance significativo tb do lado Java.
 
Depois, a Microsoft fala da superioridade de seus WebForms sobre o MVC. Pra "desenhar" telas, existe uma ferramenta maravilhosa chamada DreamWeaver, embora algumas IDEs suportem isso com certas limitacoes. Esses "controles" q leem de tipos de dados podem ser facilmente implementados com TagLibs em Java, e de forma muito mais portavel por sinal. Eh soh procurar na Internet para achar duzias deles.
 
De qqer forma, o fine-grained control dado pelo MVC ao desenvolvedor e a possibilidade de portabilidade eh muito superior a uma solucao WebForms. Serah q a solucao Microsoft suportaria WAP, por exemplo, SEM MEXER EM ALGUMAS "PAGINAS"?? Uma solucao JSP usando XML/XLS/schemas faz isso brincando.
 
Eh engracado tb q, enqto para a solucao J2EE os .js foram contados nas linhas, os .vbs e os .vsdisco nao entraram na conta da Microsoft... Isso daria uma imensa diferenca... Pq serah q eles nao contaram?
 
Como sempre, a Microsoft soh conta o q eh relevante para eles e deixa os desenvolvedores vivendo num mundo de ilusao. Sem contar q eu amaria ver um benchmark contra uma solucao Java rodando em LInux/Unix, q sao sistemas operacionais realmente performaticos...
 
-----------------------------------------------------------------------------
Michael Nascimento Santos
Sun Certified Programmer for the Java 2 Platform
Moderador SouJava - www.soujava.org.br
----- Original Message -----
From: Marcelo
Sent: Tuesday, October 23, 2001 3:15 AM
Subject: benchmark Java vs. .NET

Olá,
 
Algumas pessoas levantaram as questões de real escalabilidade e performance como muito mais relevantes do que a comparação de features de linguagem entre C# e Java. Bom, alguns de vocês devem estar familiarizados com o Java Pet Store, que é uma aplicação exemplo da Sun de uma arquitetura básica de uma aplicação J2EE. http://java.sun.com/j2ee/blueprints/index.html
 
Entre outras coisas, esta aplicação foi usada pela Oracle para demonstrar a escalabilidade do Oracle Application Server: http://otn.oracle.com./tech/java/oc4j/pdf/java_performance_results.pdf
 
Essa mesma aplicação foi implementada utilizando o .NET Framework e SQL Server 2000. Os resultados são, no mínimo, muito interessantes.
 
 
Note que os números abaixos foram obtidos usando os mesmos scripts de teste e configuração de hardware usada pela Oracle. Note tambem que o número de linhas de código na versão .NET é muito menor (ver gráfico anexado).
 
 
.NET Pet Shop vs. Java Pet Store Performance Metrics*

 

Per page user response times at 450 concurrent users

App Server CPU Utilization % at 450 concurrent users

User Load supported at 1 second avg. response time

.NET with ASP.NET Output Caching

Microsoft .NET 28 times faster than J2EE

J2EE requires 6 times more CPU utilization than .NET

.NET supports 6 times more concurrent users than J2EE

.NET with no ASP.NET Output Caching

 

.NET 8 times faster than J2EE

J2EE requires 4.3 times more CPU utilization than .NET

.NET supports 4 times more concurrent users than J2EE

 
Marcelo Uemura
Software Design Engineer - MSDN
Microsoft Corporation

Responder a