| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/08/2005 13:11:18
|
kina
JavaEvangelist
![[Avatar]](/images/avatar/3db11d259a9db7fb8965bdf25ec850b9.png)
Membro desde: 04/08/2004 18:53:19
Mensagens: 340
Localização: Sampa
Offline
|
ai galera, blz?
Estava conversando com um camarada meu e este me mostrou estes artigos abaixo falando pq C# é melhor que Java
C# Melhor que Java Parte I
C# Melhor que Java Parte II
Ai, eu só queria a opinião da galera.
falou
This message was edited 1 time. Last update was at 05/08/2005 13:11:56
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/08/2005 13:21:51
|
Luca
Moderador
![[Avatar]](/images/avatar/17e62166fc8586dfa4d1bc0e1742c08b.jpg)
Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline
|
Olá
Aparentemente estes artigos são antigos e a comparação foi feita usando a versão 1.4. Quem escreveu é um cara competente mas TOTALMENTE adepto da M$. Será que este artigo é isento o bastante para que eu leia o resto?
Mas de qualquer forma não me importa qual é a melhor rodando somente no Windows. Faz tempo que dou valor a coisas que funcionam também em ambiente Unix-like e não sei se o C# já chegou lá.
[]s
Luca
|
Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."
CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/08/2005 13:30:38
|
Filipe Sabella
GUJ Expert
Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline
|
Post de blog velho, não considera Java 5. Diversas funcionalidades agora existem: autoboxing/unboxing, anotations, enums, foreach, varargs
Propriedades
Java: Não. Podem ser simuladas com métodos Get/Set, com alguma dificuldade.
C#: Sim, diretamente. A criação de ?componentes? é bastante facilitada.
"com alguma dificuldade". Isso que é benchmark.
Tipo numérico pouco sujeito a erros de representação e arredondamento
Java: não.
O cara não programa em Java
Campo readonly
Java: Não.
O cara REALMENTE não programa em Java
Documentação integrada em XML
Java: Não.
C#: Sim, permitindo que o programador escreva facilmente a documentação enquanto programa. Este documentação pode depois ser extraída do fonte ou usada no próprio ambiente de desenvolvimento.
Não é em XML mas faz a mesma coisa.
Arquivo ?executável? independente do namespace
Não sabia que C# fazia assim. Que perigo @.@
|
Former LIPE. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/08/2005 13:33:54
|
Fabricio Cozer Martins
GUJ Ranger
![[Avatar]](/images/avatar/2ecd2bd94734e5dd392d8678bc64cdab.jpg)
Membro desde: 08/05/2004 10:22:03
Mensagens: 935
Localização: Salvador/Brasil
Offline
|
Por uma questão de objetividade, esta comparação limita-se à linguagem de programação Java e não compara as plataformas da Sun e da Microsoft.
pediu pro java ir sem escudo e espada pra essa comparacao.
|
Fabrício Cozer Martins
Analista de Sistemas
Bacharel em Ciência da Computação da UFBa
Sun Certified Programmer for Java 2 Platform 1.4
Sun Certified Web Component Developer for J2EE 1.4 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/08/2005 13:34:02
|
kina
JavaEvangelist
![[Avatar]](/images/avatar/3db11d259a9db7fb8965bdf25ec850b9.png)
Membro desde: 04/08/2004 18:53:19
Mensagens: 340
Localização: Sampa
Offline
|
Uma coisa que eu achei legal foi o switch com String.
Bem que poderia ter ^^
Sim, estes artigos estão meio "desatualizados" ou comparando versões diferentes das atuais ^^
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/08/2005 13:35:36
|
escordeiro
Java Ninja
Membro desde: 20/08/2003 09:31:08
Mensagens: 257
Localização: Belo Horizonte
Offline
|
Além da defasagem de versão que o Luca comentou, existem algumas coisas estranhas nesse artigo. Sobre a Parte I:
Semelhanças: "Orientação por Objetos" e "Herança" são características separáveis??
Recursos novos em C#:
- Propriedades: Existe alguma dificuldade em criar getters e setters? Se não me engano, a sintaxe de propriedades em C# é mesmo interessante, mas é basicamente a mesma coisa...a diferença é que é criado um "método" de propriedade que implementa o get e o set
- Documentação integrada com XML: Nunca pesquisei, mas não é possível com algum Doclet?
- Arquivo "executável" independente do namespace:
"Um 'package' Java obrigatoriamente está associado a um único arquivo '.class'." Ahn????
- Chama APIs do Windows e DLLs: Pode chamar sim, com JNI
|
Flickr |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/08/2005 13:45:04
|
kina
JavaEvangelist
![[Avatar]](/images/avatar/3db11d259a9db7fb8965bdf25ec850b9.png)
Membro desde: 04/08/2004 18:53:19
Mensagens: 340
Localização: Sampa
Offline
|
escordeiro wrote:
- Chama APIs do Windows e DLLs: Pode chamar sim, com JNI
Bem, ele não falou que não dava (eu acho), mas disse que é muito mais dificil que no C#.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/08/2005 13:45:49
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Documentação XML - quá quá quá... Qual a diferença entre isto:
e isto:
Tudo bem, o .NET gera por default um arquivo XML contendo um resumo da documentação para poder ser lido por qualquer ferramenta que saiba ler XML, mas até aí não é nada que não possa ser resolvido via doclets.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/08/2005 13:47:27
|
escordeiro
Java Ninja
Membro desde: 20/08/2003 09:31:08
Mensagens: 257
Localização: Belo Horizonte
Offline
|
Essa parte específica tem um "não" categórico e uma frase que explica outra coisa (go figure...)
Mas o artigo apresenta alguns pontos interessantes sim, apesar do autor ser um religioso "do outro lado"
|
Flickr |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/08/2005 13:52:19
|
farribeiro
JavaEvangelist
![[Avatar]](/images/avatar/947018640bf36a2bb609d3557a285329.png)
Membro desde: 20/04/2005 00:15:49
Mensagens: 474
Localização: Araçatuba
Offline
|
expandindo a resposta do povão que já foi respondida
http://www.guj.com.br/posts/list/2113.java
This message was edited 1 time. Last update was at 05/08/2005 14:00:59
|
Fábio Rodrigues Ribeiro
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/08/2005 14:01:43
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Há pouco tempo atrás tive de escrever um programa C# - nada demais, um serviço do Windows que atende a conexões TCP. O que achei legal no C#:
- Obviamente é bem mais simples fazer algo que precise chamar uma API do Windows - por exemplo, precisava criar um "hard link" para um arquivo, e isso requer chamar a API "CreateHardLink". Se fosse em Java teria de escrever uma DLL JNI - nada demais, mas é sempre um incômodo. (Existe o JAWIN para resolver esse problema de chamar APIs do Windows, mas não é fácil de usar - tente entender a string que o JAWIN usa para poder preencher os parâmetros para chamar as APIs...)
Em C# você usa:
- Aquelas coisas extremamente Windows-escas, como adicionar um contador ao Performance Monitor ou escrever no Event Viewer, são bastante simplificadas (são um parto de escrever em C++ no Windows, e já estão bem mastigadas no .NET Framework);
O que achei desajeitado:
- A filosofia é parecida com a do Java, mas as coisas estão nos lugares errados. Vou dar uma lista das equivalências para algumas classes que tive de usar.
java.util.HashMap -> System.Collections.Hashtable
java.io.InputStream -> System.IO.BinaryReader
java.io.OutputStream -> System.IO.BinaryWriter
java.io.File -> System.IO.File, System.IO.Directory
Class.forName ("Teste" .newInstance -> Type.GetType("Teste" .GetConstructor (new Type[0]).Invoke (new Object[0])
System.arraycopy -> Array.Copy
java.lang.StringBuffer, java.lang.StringBuilder -> System.Text.StringBuilder
new String(byte[], String), String.getBytes(String) -> System.Text.Encoding
This message was edited 1 time. Last update was at 05/08/2005 14:02:47
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/08/2005 14:23:19
|
Luca
Moderador
![[Avatar]](/images/avatar/17e62166fc8586dfa4d1bc0e1742c08b.jpg)
Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline
|
Olá
Dei uma lidinha a mais no artigo e vi uma citação a um artigo de maio de 1996 ao explicar de forma incompleta como o Java é montado e omitir hotspot que segundo a Sun é tecnologia chave do Java. São coisas assim que tiram a credibilidade de um artigo. Pena, perdi a vontade de ler.
[]s
Luca
|
Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."
CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/08/2005 14:45:08
|
rodrigousp
JavaEvangelist
![[Avatar]](/images/avatar/69d1fc78dbda242c43ad6590368912d4.jpg)
Membro desde: 09/10/2003 14:23:31
Mensagens: 379
Offline
|
kina wrote:
escordeiro wrote:
- Chama APIs do Windows e DLLs: Pode chamar sim, com JNI
Bem, ele não falou que não dava (eu acho), mas disse que é muito mais dificil que no C#.
Por uma questão de objetividade, esta comparação limita-se à linguagem de programação Java e não compara as plataformas da Sun e da Microsoft.
E isto acima, não foi uma comparação de plataforma ??? Como é que faz mesmo para o C# chamar uma API do X-Window ???
Sobre o uso de Javadoc
Já viu o suporte que as IDE oferecem para Javadoc ? Um refactor do eclipse muda inclusive os javadocs (o visual.Net faz isso ?) Eu até achava a idéia do Knuth de escrever em CWEB legal, mas Javadoc é muito bom...
E mais uma coisa: Tratamento de exceções.
C# - você não é obrigado a tratar Exceptions.
Java - você é obrigado a tratar Exceptions ( a menos das RuntimeException) ou declarar que o método irá lança-las.
|
Rodrigo di Lorenzo Lopes - blogger |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/08/2005 15:08:27
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
rodrigousp wrote:E mais uma coisa: Tratamento de exceções.
C# - você não é obrigado a tratar Exceptions.
Java - você é obrigado a tratar Exceptions ( a menos das RuntimeException) ou declarar que o método irá lança-las.
É, percebi isso. Estou muito acostumado com o esquema do Java; quando vi que em C# isso não era obrigatório acabei ficando com uns programas assim em C# (o Visual Studio nem diz que exceção um trecho de código pode lançar - você tem de ficar procurando API por API o que pode acontecer )
O System.Exception do C# equivale ao java.lang.Throwable.
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/08/2005 15:42:34
|
rodrigousp
JavaEvangelist
![[Avatar]](/images/avatar/69d1fc78dbda242c43ad6590368912d4.jpg)
Membro desde: 09/10/2003 14:23:31
Mensagens: 379
Offline
|
Coisas que não deveriam ter no C#:
Ponteiros: Perigoso e obscuro. É o tipo de coisa que a gente quer em linguagens de baixo-nível
Sobrecarga de operadores: torna o código sujo, difícil de ler.
Goto: sem comentários !!!
Argumentos irrelevantes quando comparar a linguagem e não a plataforma.
Chama APIs do Windows e DLLs
Chama objetos COM/COM+
Cria objetos COM/COM+
Destructor: na verdade, no Java não é o possível finalizar um objeto diretamente, mas o comportamento do destructor pode ser reimplementado, sobreescrevendo o método finalize.
|
Rodrigo di Lorenzo Lopes - blogger |
|
|
 |
|
|