Java Vs .net - Quem é Melhor???
1 - 80% dos negócios do mundo rodam em cima de programas COBOL. Nem Java nem .NET vão decidir o futuro da humanidade, portanto.
2 - Nunca vi um sistema que não pudesse ser implementado em qualquer linguagem que seja. Portanto, a discussão Java x .NET não se decide na esfera técnica.
3 - Produtividade - não é criando grids para acesso direto a tabelas que se mede produtividade, mas sim no tempo total que leva para uma idéia sair da cabeça do usuário de negócios até se transformar em um sistema rodando no ambiente de produção, testado, aprovado e homologado. Numa “competição” Java x .NET, é certo que ambas as tecnologias chegariam empatadas “na margem de erro” caso se considerasse todo o ciclo de vida de um sistema.
4- Ainda em produtividade, só de 15% a 20% do tempo é gasto efetivamente em implementação. O grosso do esforço é gasto em levantamento de requisitos e testes.
Por falar em produtividade, só 30% do tempo do programador é gasto em desenvolvimento de fato, em média. O resto é perdido em debugging ou reescrevendo requisitos que foram mal-entendidos (e mal-explicados, por conseguinte). Pare e pense na sua rotina diária e veja se vc discorda desses números.
Assim, 20% X 30% = 60% do tempo total de um projeto em desenvolvimento REAL. Supondo que uma das duas tecnologias fosse 50% MAIS PRODUTIVA do que a outra (e nenhuma delas o é), o impacto final seria de 3% sobre o tempo total do projeto. Quase indetectável.
Assim, o desafio proposto perde a validade em si. Até porque ninguém vai sair “convertido” de um evento desses. Agora, um desafio de ponta a ponta, num prazo de algumas semanas, por exemplo, esse sim teria valia. Mas já não seria mais um desafio Java x .NET, mas, talvez, um desafio MDA x AMD (tipo Together) x Agile (S. Ambler), por exemplo.
4 - Decisões estratégicas - Há uns 20 anos, mais ou menos , o Natural/ADABAS ganhou um grande mercado do COBOL, porque era muuuito mais produtivo e fácil de mexer. Hoje quem tem Natural/ADABAS quer morrer, porque a Software AG está cobrando os tubos (zilhões de dólares) pela renovação das licenças e a tecnologia é “imigrável”. Paralelo com .NET, proprietário como Natural/ADABAS. Erro estratégico.
Outro exemplo: há 30 anos, C prometia ser o que Java promete hoje. Se alguém algum dia teve um sistema de negócios escrito em C, então deve ter uma boa história de migração urgente para contar. Paralelo com Java, “assembleísta” como C. Outro erro estratégico.
Então, amigos, tecnologicamente falando, Java e .NET se equivalem.
Não consigo imaginar um sistema corporativo (que é o que interessa, afinal) que possa ser feito em um, mas não no outro. Ou que saia muito mais rápido em um do que no outro.
Texto gentilmente cedido pelo Grupo [UML-FATEC]
OBS. Mas eu prefiro Java e você?
Abraços
Tiago Silveira
Compare Preços de: games, PS2, PS3, Nintendo, Wii, iPod no Buscapé.

abril 10th, 2007 at 11:52 pm
Mas é mais um caso de religião do que de tecnologia.
Só não tive uma boa impressão de java quando comecei a aprender, e por influencia de amigos acabei fugindo de java como diabo foge da cruz.
O motivo que que eu mais uso é que é muita linha pra pouco resultado… (pode corrigir se eu estiver errado, não da nada.)
abril 11th, 2007 at 9:59 am
Quanto a questão de “muita linha para pouco resultado”, não necessariamente esta correta. Ferramentas/Frameworks mais antigos ( e até alguns recentes ) chegavam a complicar bastante a vida do desenvolvedor as vezes ( Ex.: Struts 1.x com seus amontoados de XML e ActionForms ), mas hoje existem outros frameworks que fazem do desenvolvimento mais tão ágil quanto ou até mais que o .NET.
Mas enfim, concordo que em qualquer quesito da para se ter resultado semelhante com as duas tecnologias. Nunca enfrentei um projeto que não pudesse ser feito em uma das duas. Porém, a noticia da necessidade da migração do Orkut (http://info.abril.com.br/blog/sandra/20070410_listar.shtml) de .NET para Java me deixou um pouco impressionado.
PS.: Sou fã de Java =);
abril 11th, 2007 at 2:13 pm
Na vida real, já peguei o ônibus de trás, porque o da frente estava cheio demais. Mas não faria isso na vida profissional.
O C# é uma linguagem muito bacana. Muito bem feita. Por isso atraiu bastante gente e impulsionou o .NET. Não questiono a eficiência desta plataforma, pois, conheço muita coisa que funciona, e muito bem. Mas, na minha opinião, quem dita as regras, ainda, é a SUN.
No fundo, aposto no Python, no Ruby e no PHP ;-), porque enquanto a SUN e a Microsoft se atrapalham em meio aos seus conflitos, outros produtos passam a ter a preferência do desenvolvedor. E é preciso dizer que estão agradando, e muito.
[]’s
abril 11th, 2007 at 6:14 pm
Eu como quero mesmo é virar 100% analista, to + preocupado é com UML.
abril 12th, 2007 at 8:34 am
Acredito que você deva se especializar em uma, mas deve conhecer a outra, pois ai você terá uma visão melhor do que cada uma e capaz.
abril 12th, 2007 at 7:22 pm
Em um “sistema real”, como disse, você sabe que a fase de desenvolvimento ocupa bem mais tempo, e sabe também que não se leva tanto tempo em Análise como você quis dizer.
Mas concordo que a discussão “Java versus .NET” é na maioria das vezes uma discussão de paixão.
Hoje em dia existe uma busca por linguagens que se dizem altamente produtivas, então os desenvolvedores na maioria das vezes não dominam a linguagem totalmente. Aqui vem a pergunta: Se este programador até hoje estivesse fiel a sua antiga linguagem, com maior domínio da mesma, seria ele mais produtivo que utilizando .NET ou Java?
Hoje, vejo sistemas muito mal feitos utilizando Java e .NET, falhas por falta de domínio das mesmas. Funções no código criadas para fazer algo que nativamente a linguagem já oferecia e coisas do gênero.
abril 10th, 2008 at 5:49 pm
As duas plataformas são excelentes.
Porém o que deixa o desenvolvimento rápido em NET e o IDE Visual Studio .NET. Se alguém inventar de programar ASP.NET/C# na unha igual a muitos programadores JAVA fazem, vão levar um século para finalizar um sistema.
Um bom IDE para desenvolvimento é tudo. Ja programei em .NET gostei e agora por questões profissionais estão partindo para J2EE. Estou gostando. O Eclipse esta cada vez melhor.
abraço.
LOUIS
abril 16th, 2008 at 11:20 am
Agradeço se as respostas continuarem sendo imparciais!
NOTA: Thiago, ótimo post, parabéns!
Abraço a todos,
Bornato
maio 27th, 2008 at 12:10 pm
eu não entendi a sua consideração. Talvez o embasamento dos programdores em escrever a DML no código é pensando em uma arquitetura MVC, daih as queries ficariam em camadas específicas da aplicação, o q eh certo. Escrever DML no banco é voltar a programar em duas camadas além de deixar atribuições demais para um banco resolver além de engessar uma empresa a ter que trabalhar com um banco específico, ou seja, se for Oracle e tudo estiver escrito nele, nunca a empresa poderá se aproveitar de uma solução livre como Postgre ou MySQL. O Hibernate proporciona uma coisa dessas.
junho 10th, 2008 at 10:12 am
O que acontece (pelo menos eu penso assim) é que não faz sentito jogar a logica de negocio dentro do banco para a maioria dos sistemas, ja que os mesmos só fazem o CRUD basico, concordo que há algumas funcionalidades que é bem melhor fazer com functions e triggers, mas devemos avaliar em qual momento um é mais pertinente que o outro. Por exemplo, trabalhei em uma grande empresa de telefonia celular aqui em São Paulo e muitas coisas eram feitas em java, principalmente os sitemas web utilizados, o que ficava para o SGBD mesmo era coisas que exigiam muito processamento do proprio banco como relatorios, extração das alterações feitas na base entre outros (alias devo avisar que lá havia muito mais pessoas que trabalhavam com PL/SQL que com java).
Acredito que devemos analisar o cenario para ver qual abordagem devemos escolher.
Já para a disputa de qual melhor linguagem entre Java e .NET é uma pura besteira pois são praticamente as mesmas coisas, agora seria interessante fazer uma comparação entre esses tipos de linguagem com linguagens mais dinamicas como Ruby, Python, Groovy
junho 17th, 2008 at 5:51 pm
Trabalho no setor público onde utilizamos Java
Tenho uma empresa de software, setor privado, onde estamos utilizando .NET
Principais vantagens do Java para web:
- OpenSource
- Multiplataforma
- Mais flexível que .NET, podendo “TUNAR” o sistema, ganhando desempenho em velocidade.
Principais vantagens do .NET:
- IDE MUITO mais produtiva, principalmente na camada de Interface com Usuário
- MENOR CURVA de APRENDIZADO, leva muito menos tempo para um leigo aprender .NET doque aprender Java, isto é FATO, constadado por min, e por empresas de dão cursos.
- Possui uma IDE centralizada o Visual Studio, diferente de java que possui VÁAARIAS IDEs, onde podem haver incompatibiliades de projetos, bibliotecas, se for mudar de IDE.
- Possui suas bibliotecas centralizadas e de um único fornecedor, diferente de JAVA, que temos vários fornecedores, e temos que ficar baixando, analisando, testando várias bibliotecas, plugins, frameworks diferentes que fazem a mesma coisa, sem falar nos projetos que perdem a continuidade… Hoje você pode começar a trabalhar com uma biblioteca, plugin etc, que amanhã não vai ter mais suporte e continuidade….
- Continuando.. Quem é desenvolvedor, sabe os problemas no dia-a-dia, com problemas de configuração de bibliotecas, e plugins… é um saco.. coisa que no .NET nem precisa se preocupar.
- Em java temos fornecedores, pensadores, que sempre estão criando novas tecnologias, realmente o .NET COPIA, as MELHORES idéias de java.. assim como a SUN ja copiou ideias do .NET como o Code behind para o JSF… então quem trabalha com .NET pode ficar tranquilo, que as novidades do JAVA serão implementadas em .NET e sem o problema de ficar procurando qual o melhor fornecedor de uma tecnologia.. por exemplo em java temos Hibernate, EJB etc… em .net temos o QLinq… a arquitetura MVC tbem foi copiada para o .NET… Como bill gates disse quando foi perguntando pq a microsoft só copia, e nunca cria.. ele respondeu: “Nós copiamos, e MELHORAMOS”
obs: Mensagem do pessoal do Orkut, quando migraram de .NET para Java: Eles constataram que para aplicações para internet de Pequeno e Médio porte e Até Grande porte o .NET é a ferramenta ideal, devido sua facilidade, e produtividade, e outros quesitos como os que citei a cima… o Java é melhor utilizado em aplicações de GRANDE ou “MEGA” porte, onde é possível customizações de baixo nível, ganhando mais performance e velocidade do sistema(site)…. com o crescimento do orkut eles precisaram de aumentar a performance… se não fosse por isso, estariam usando o .NET…
Quero ressaltar que não sou evangelista, e não puxo sardinha de .NET e nem de Java.. particularmente, preferiria usar o JAVA, devido ser OpenSource, e ter uma comunidade grande contribuindo… Mas como tenho uma empresa e oque viso é LUCRO, o .NET me da mais RETORNO que Java…