Meio velinho esse texto mas vale apena ler!
Escrito por Paulo Krieser: 
Prosseguindo com a sequência de colunas sobre as comparações entre  linguagens de programação, neste artigo vamos comparar o Java ao .NET. 
Antes que sigam as críticas, cabe esclarecer que o .NET não é uma  linguagem, e sim uma plataforma da Microsoft que permite a utilização de  diversas linguagens, como C#, Visual Basic, J# e ASP. Vamos focar então  a comparação na construção de aplicações web, utilizando J2EE e o  framework ASP NET da Microsoft, que é onde as duas linguagens mais  competem. 
Comecemos pela questão das licenças de uso, que influenciam  diretamente no TCO (para referência aos fatores sendo comparados,  consultar na minha coluna Fatores  para Escolha da Linguagem de Programação). Apesar da Sun deter a  marca Java, a mesma tornou a linguagem open source, permitindo aos  usuários efetuar alterações convenientes. Para a plataforma .NET,  existem algumas iniciativas free, como os projetos Mono e DotGNU. Porém,  para se aproveitar todo o potencial da plataforma, é praticamente  necessário se adquirir o servidor Microsoft juntamente com o ambiente de  desenvolvimento Visual Studio. Sem estas ferramentas, além de não se  aproveitar tudo o que se tem, a velocidade de desenvolvimento fica  fortemente prejudicada. Além disto, nada na Microsoft é open source. 
No item escalabilidade, as implementações das duas plataformas  provêem mecanismos de balanceamento de carga, permitindo habilitar um  cluster de máquinas para servir às cargas dos usuários que forem  aumentando ao longo do tempo. A grande diferença entre o J2EE e o .NET é  que desde que o .NET suporta apenas Win32, um número maior de máquinas  se faz necessário, comparando ao J2EE, devido às limitações dos  processadores. 
Em um fator de extrema importância, como velocidade de  desenvolvimento, o .NET leva grande vantagem. A sua IDE proprietária, o  Visual Studio, é baseado em RAD (Rapid Application Development),  aumentando a agilidade na construção de aplicações. O Visual Studio .NET  inclui várias ferramentas interessantes em termos de produtividade,  como por exemplo o Web Forms. Estima-se que um projeto criado do zero,  leve-se de 10% a 20% menos tempo para entrar em produção quando  desenvolvido em .NET. 
O Microsoft .NET oferece independência de linguagem, permitindo os  componentes serem escritos em VB.NET, C# e J#, por exemplo. Para fazer  isto funcionar, o código-fonte nestas diferentes linguagens é traduzido  para um código intermediário (análogo aos bytecodes do Java) chamado  Microsoft Intermediate Language, abreviado IL. O Common Language Runtime  (CLR), análogo ao JRE (Java Runtime Enviroment) do Java, interpreta o  IL e traduz em código de máquina. 
Com um conjunto de linguagens rodando sobre a plataforma .NET, os  desenvolvedores diminuem a habilidade de compartilhar as melhores  práticas, diminuindo a assertividade do compartilhamento de informações.  Assim, especula-se que um conjunto de linguagens rodando em CLR pode  levar a uma combinação de código espaguete que fica difícil de manter.  Com a liberdade para se utilizar diversas linguagens, a aplicação  torna-se mais complexa, necessitando de experts em diferentes  linguagens, o que também faz aumentar o TCO e a entropia do sistema. 
As duas tecnologias apresentam uma curva de aprendizado parecida,  com a diferença de que o Java possui mais material para aprendizado na  internet do que o .NET, que é proprietário e a principal fonte de  conteúdo é o MSDN. 
Analisando o último quesito, portabilidade, praticamente não há o  que comparar. Como já dito na coluna  anterior, o Java segue o princípio write once, run anywhere,  permitindo executar as aplicações na virtual machine em praticamente  qualquer ambiente. O .NET roda apenas no Windows, no seu hardware  suportado, e no ambiente .NET. Há algumas implementações adicionais do  .NET que rodam em outras plataformas, porém que não permitem o uso de  todo o potencial do framework. 
Concluindo a análise, a plataforma J2EE, possuindo uma  interoperabilidade melhor, permite mais facilmente integrações com o  legado através de web services e JCA (Java Connector Architecture) e uma  maior facilidade de portabilidade, podendo rodar em qualquer sistema  operacional. A grande vantagem do .NET é a sua incrível ferramenta de  desenvolvimento, que incrementa bastante a velocidade na construção de  aplicações. Porém, esta vantagem apresenta o custo das licenças de uso e  de se ter uma plataforma proprietária e fechada, seguindo a iniciativa  monopolística da Microsoft. 
Para a escolha de qual tecnologia utilizar, deve-se analisar o que  já se tem de legado e os skills da equipe que irá trabalhar no projeto,  aproveitando os conhecimentos já existentes nas linguagens. 
Não perca a próxima coluna, onde vamos comparar Ruby on Rails com  PHP (vamos deixar o Java um pouco de lado). 
Fonte : JavaFree.org
 
 
1 comentários:
Vamos falar de Delphi....hehehe,
No final o que conta é se vai gastar $$ com a ferramenta(.NET) ou com o tempo gasto pra desenvolver a aplicação(JAVA)
A vida é dura
Postar um comentário