.NET x JAVA  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
Crown
Debugger

Membro desde: 19/01/2010 17:14:49
Mensagens: 52
Offline

Bom o titulo é sensacionalista mas é so para chamar a atencao mesmo...Queria saber como anda os principais pontos do .net e do java, como escalabilidade,peformance,confiabilidade etc.., quem tiver uns benchmaking ou artigos .NET x JAVA pode enviar, o intuito é identificar os cenarios onde cada linguagem se encaixa e nao identificar a "melhor"(ou bala de prata)...obrigado


ps:como eu disse e repito, nao é um post sensacionalista, faz algum tempo que nao vejo nada sobre e queria me atualizar nos melhores cenarios onde as linguagens se encaixam entao resolvi pedir a ajuda de vcs, por favor sem brigas uehuehu

This message was edited 2 times. Last update was at 17/04/2010 09:06:40

Lucas Emanuel
GUJ Master

Membro desde: 09/08/2009 23:48:57
Mensagens: 1143
Localização: Heap
Offline

Na verdade é complicado responder isso. Desculpe se voce me interpretar como mal educado, mas você está no forum de usuários de Java. Então a resposta da maioria fica meio tendenciosa
Crown
Debugger

Membro desde: 19/01/2010 17:14:49
Mensagens: 52
Offline

Em um forum de java mas na area de arquitetura, tem que ser muito infantil para vim nessa area brigar para saber qual é a melhor tecnologia, resumindo nao quero sabe se java trata tipos de refencia diferente do c#, eu quero ver CENARIOS. Se nao tem como conseguir uma resposta decente nessa area é melhor trocar o nome dela.


ps: mas vlw, pela opniao


This message was edited 2 times. Last update was at 17/04/2010 07:00:02

rogelgarcia
GUJ Master
[Avatar]

Membro desde: 21/06/2007 23:27:21
Mensagens: 1850
Offline

O povo aqui.. briga até no offtopic.. ehheheh

Mas eu acho que os dois são concorrentes diretos..

O cenário onde os dois melhores se aplicam, são os mesmos..

A diferença principal que eu considero, é que .NET é mais forte na área de desktop do que java...

Mas eu prefiro Java

Rógel Garcia, criador do framework NEXT

http://www.nextframework.org
maxmustang
Java Ninja
[Avatar]

Membro desde: 08/01/2009 11:18:56
Mensagens: 270
Offline

Nervosão


Kill Rock And RoLL !!!

~ Viva hoje como se Jesus Voltasse ainda hoje ~
~ Jesus te ama!! <3 ~
~ Blog de Java MaxNaWeb: http://maxnaweb.wordpress.com/ ~
~ Blog de RPG Dados Sujos: http://dadossujos.worpdress.com ~





[Email] [MSN]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Online

Falando só na linguagem, e não nas APIs, acho o C# uma muito mais completo e fácil de usar do que o Java. Ele tem alguns recursos interessantes como os extension methods, propriedades, sobrecarga de operadores e metodos unsafe (dificilmente vc usa esse último, mas é 1000x melhor que escrever um JNI, se vc vier a precisar). Sem falar numa implementação real de generics. São pequenos detalhes que tornam o código mais fácil de ler e de manter.

Gosto também do LINQ, que vem junto com a linguagem. Permite que você rode queries "sql like" em collections. Sem falar que ele usa estratégias eficientes para fazer isso, como um BD faria. No java, somos obrigados a iterar constantemente sobre colleções para fazer filtros, ou usar uma API de terceiros que faça algo similar. O LINQ ainda tem verificação do compilador, o que uma API no java não tem.

A API de Collections do Java, entretanto, é mais completa. Não só tem interfaces mais bem definidas, como também mais classes e melhores. Por exemplo, sinto falta de uma implementação de TreeSet no C#, ou de uma interface que seja pai de HashSet. Acho que a MS está pecou muito em não adicionar essa interface logo que o HashSet foi adicionado.


É difícil comparar ambas as APIs. As duas são gigantes e muito completas. Só posso adiantar que a MS está fazendo um ótimo trabalho com o C#, o que mostra que a companhia amadureceu muito. Uma grande vantagem do Java é que, por ser mais maduro, tem mais APIs de terceiros disponíveis.

Também é difícil falar em benchmarks. Linguagens virtualizadas já são difíceis de serem medidas por si só. O juliocbq, aqui do GUJ, fez um benchmark recentemente com operações matemáticas sobre inteiros nas duas linguagens, e o Java ganhou com larga margem (aliás, quase ganhou do C++ também). Mas, a menos que vc faça softwares para tratamento de imagens como o Julio, o gargalo dificilmente estará na linguagem. Portanto, acho que discussões desse tipo geralmente são inúteis. O que eu gosto de acrescentar é que no C# você tem mais controle sobre o garbage collector, o que pode facilitar o desenvolvimento de aplicações de tempo real.

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
UMC
GUJ Master
[Avatar]

Membro desde: 09/04/2009 14:03:36
Mensagens: 1685
Localização: Feira de Santana - BA
Offline

rogelgarcia wrote:O povo aqui.. briga até no offtopic.. ehheheh

Mas eu acho que os dois são concorrentes diretos..

O cenário onde os dois melhores se aplicam, são os mesmos..

A diferença principal que eu considero, é que .NET é mais forte na área de desktop do que java...

Mas eu prefiro Java

hehehe
.NET = Microsoft.

Mais eu fico com JAVA

vlw

Compro o livro SCJP 6 Kathy Sierra, de preferência e português, quem tiver manda MP.!!!

umcaste.com

Graduando em Sistema de Informação.

espero ter ajudado...

falando nisso, caso seu problema tenha sido resolvido, edite o seu primeiro post e coloque um [RESOLVIDO] no titulo do tópico. (créditos maior_abandonado)

UMC-ASTEC -> Recomenda o NEXT!
O Next, é um framework para desenvolvimento de aplicações JEE. Baseado em Spring e Hibernate, tem como foco facilitar o trabalho do programador e dar produtividade ao desenvolvimento de aplicações web. Conta com diversos recursos que irão turbinar o desenvolvimento de suas aplicações.
(Créditos Rogel Garcia)

Download do NEXT


Quer aprender a programar com facilidade!?

Aqui





[WWW]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Online

UMC wrote:.NET = Microsoft.


Não é muito melhor, nem muito mais errado, que dizer que Java = Oracle.

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
marcosalex
GUJ Expert
[Avatar]

Membro desde: 20/02/2008 12:32:59
Mensagens: 3371
Offline

As ferramentas da MS pra .NET vêm com muito mais coisa pronta, enquanto a Sun vêm com o básico e deixa o resto pra terceiros, daí muita gente tem a impressão do .NET ser mais fácil. E alguns recursos que ele tem a mais são coisas que raramente você precisaria. Quantos aqui já usaram sobrecarga de operadores na prática?
[Yahoo!] aim icon [ICQ]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Online

marcosalex wrote:As ferramentas da MS pra .NET vêm com muito mais coisa pronta, enquanto a Sun vêm com o básico e deixa o resto pra terceiros, daí muita gente tem a impressão do .NET ser mais fácil. E alguns recursos que ele tem a mais são coisas que raramente você precisaria. Quantos aqui já usaram sobrecarga de operadores na prática?


De que "mais coisa pronta" você está falando? Acho que em termos de ferramentas, o Java ainda dá de 10 a 0 no C#. O Netbeans é uma IDE muito melhor que o visual, sem falar nas ferramentas de profiling, trazidas pela própria Visual VM. Precisei usar um profiler no C# achei apenas o DotTrace, que não é da MS, e é caríssimo (talvez venha algo assim no Visual 2010). Ok, a parte de janelas e web do Visual é bem completinha, mas não achei muito melhor que a do Netbeans.


Extension methods são muitíssimo úteis. Uma implementação real de generics também. O LinQ é simplesmente sensacional e não há nenhuma implementação de terceiros que faça o que ele faz, justamente por ele ser suportado pelo compilador e não só por uma biblioteca. Você tem verificação das linq queries em compile time, da maneira mais segura possível.


Nunca entendi o conservadorismo da sun quanto à sobrecarga de operadores. Alguns locais simples ela já seria útil, no próprio Java, e aposto que muitos usariam na prática. Que tal concatenar Strings num StringBuilder através do sinal de +, no lugar de chamar .append? Ou de ter a classe BigDecimal e BigInteger suportando operadores matemáticos, ao invés de métodos? Que tal ter a classe List e Map usando o operador de [] ao invés de métodos como get, put e set?

Veja, no C# é assim que se usa um map:



Vemos exemplos dessas classes praticamente todos os dias aqui no GUJ. A sintaxe delas já seria muito simplificada pela possibilidade de sobrecarga de operadores. Especialmente no caso das classes matemáticas, onde expressões numéricas são muito mais facilmente descritas. Suponha que x e y são BigDecimals, vamos comparar sintaxes?


A alegação é que operadores mal usados podem deixar o código difícil de manter. Acho que essa alegação pode ser usada para praticamente qualquer recurso e para mim soa como uma desculpa para lá de esfarrapada. Como vc poderá perceber por expressões como aquela acima, sem sobrecarga é que temos um código rebuscado e mais difícil de manter. Aliás, se sobrecarga é assim tão inútil, pq a Sun xunxou a classe String desde o início do Java para tê-la?

This message was edited 7 times. Last update was at 21/12/2010 22:16:22


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
Leozin
JWizard
[Avatar]

Membro desde: 18/06/2005 21:01:26
Mensagens: 2310
Localização: São Paulo/SP
Offline

Muito bom o teu post vini, parabéns.

Eu já trabalhei muito no .NET e agora voltei (pra fazer uma migração de um sistema Java pra vb.NET). No que eu fui lidar com ele, precisei de umas bibliotecas por fora e para a minha surpresa: muitas APIs são pagas.

Em 2006 quando eu precisei de algo pra SMTP, o que funcionava era pago. O free não funcionava. Esse mês fui procurar uma ferramenta pra testes de cobertura, e é BEM caro (200 dolares) e assim vai indo.

Mas a linguagem é legal, eu só não curto o visual studio como editor de código. Para WYSIWYG eu acho que atende bem, mas se tu tiver que botar a mão no código:
- Refactoring é muito pobre
- Navegação entre métodos é ruim também
- Quando rola exception, as linhas não aparecem no stacktrace
- a forma de organização de packages
- entre outros que não lembro mais

A minha única crítica é a ferramenta e APIs pagas, porque a linguagém em sí é muito boa

http://www.leozin.com.br/blog
[ICQ]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Online

Leozin wrote:Muito bom o teu post vini, parabéns.

Eu já trabalhei muito no .NET e agora voltei (pra fazer uma migração de um sistema Java pra vb.NET). No que eu fui lidar com ele, precisei de umas bibliotecas por fora e para a minha surpresa: muitas APIs são pagas.

Em 2006 quando eu precisei de algo pra SMTP, o que funcionava era pago. O free não funcionava. Esse mês fui procurar uma ferramenta pra testes de cobertura, e é BEM caro (200 dolares) e assim vai indo.

Mas a linguagem é legal, eu só não curto o visual studio como editor de código. Para WYSIWYG eu acho que atende bem, mas se tu tiver que botar a mão no código:
- Refactoring é muito pobre
- Navegação entre métodos é ruim também
- Quando rola exception, as linhas não aparecem no stacktrace
- a forma de organização de packages
- entre outros que não lembro mais

A minha única crítica é a ferramenta e APIs pagas, porque a linguagém em sí é muito boa


Concordo. Todos os dias que uso o Visual, sinto muita falta do Eclipse. E olha que já estou trabalhando a praticamente 1 ano, tempo suficiente para descobrir macetes e recursos. Sinto falta exatamente do que você falou.

Outra coisa que sinto falta é a MS não ter sugerido uma code convention oficial para o C#. O pessoal até copia o estilo da API, mas não há nenhum documento oficial, como a Sun tem para o Java.

Ah sim, outra coisa legal do .net, que nunca entendi pq a Sun não incorporou esse recurso nos seus .jar também, é a possibilidade do arquivo de manifesto descrever coisas como:
- Nome da biblioteca;
- Descrição;
- Versão.

A última informação, claro, é a mais importante. No .net você pode checar em runtime se a dll que você está usando está ou não na versão correta, ou na versão mínima. O que é muito útil se você depende de pacotes externos. Você também pode obter essa informação via reflexão, o que te permite fazer uma página, por exemplo, que liste todas as versões dos assemblies instalados para sua aplicação no servidor. Informação valiosa para diagnostico de erros e debug.


De maneira geral, ainda sou mais satisfeito com o Java, principalmente por causa da API da Sun. A do C# é ótima também, mas tem muita coisa que sinto como se estivesse faltando, ou como se a implementação não tivesse sido tão bem pensada. Muitas vezes notei que a API do .Net é pouco extensível, coisa que sabemos que a do Java não é.

This message was edited 1 time. Last update was at 18/04/2010 13:58:10


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
 
Índice dos Fóruns » Arquitetura de Sistemas
Ir para:   
Powered by JForum 2.1.8 © JForum Team