C# -  Dez Diferenças marcantes entre C# e Java


 Neste artigo vou apresentar as dez diferenças principais entre as linguagens C# e Java.

A seguir as 10 diferenças principais entre a linguagem C# e a linguagem Java. Você pode ver as diferenças como uma vantagem do C# sobre o Java mas meu propósito aqui não é esse.

Usei Java por mais de 10 anos antes de usar C#, e nutro um apreço por ambas as linguagens, e as vejo como ferramentas de trabalho.

Muitas vezes não é você quem escolhe a ferramenta que vai usar, é o seu cliente, por isso meu conselho é : aprenda as duas linguagens e você vai ficar bem na fita.

 10 diferenças entre C# e Java
       
1 A linguagem C# é uma das linguagens da plataforma .NET, e por conseguinte ela suporta a interoperabilidade, ou seja,  a linguagem C# pode acessar o código escrito em qualquer linguagem .NET compatível e pode também herdar as classes escritas nestas linguagens.  Isto não é possível na linguagem Java.
   
2  O código escrito na linguagem C# na compilação gera um '.EXE'  ou uma '.dll' que também é chamado de Portable Excecutable File. Este arquivo contém código MSIL (Microsoft Intermediate Language).
 A linguagem Java na compilação gera um arquivo '.class' o qual contém bytecode.
   
3   O portable executable file da linguagem C# pode conter qualquer número de classes, ao passo que o arquivo '.class' da linguagem Java contém somente uma única classe.
   
4   Os métodos na linguagem C# não são métodos virtuais por padrão. Na linguagem Java todos métodos não estáticos, não finais e não privados, são virtuais por padrão o que pode afetar o desempenho.
   
5   As classes na linguagem C# são agrupadas em Namespaces ao passo que na linguagem Java elas são agrupadas em Packages.
   
6   Os Namespaces na linguagem C# não estão relacionados com diretórios. Na linguagem Java os Packages estão diretamente relacionados com nomes de diretórios.
 Na linguagem C# você pode ter múltiplos Namespaces em um arquivo. Na linguagem Java um arquivo pertence a um Package (pacote).
   
7   As variáveis do tipo de dados primitivos na linguagem C# são mais poderosas.  Na linguagem C# as variáveis do tipo de dados primitivos são objetos e podem chamar funções. Na linguagem Java as variáveis do tipo primitivo não podem chamar funções.
   
8   A linguagem C# possui recursos como Properties e Indexers.  A linguagem Java não possui esses recursos.
   
9   A linguagem C# suporta Estruturas (Structure), Sobrecarga de operadores e diretivas de pré-processadores. A linguagem Java não suporta esses recursos.
   
10  Na linguagem C# podemos facilmente chamar funções API do Windows e acessar componentes COM. Na linguagem Java essas tarefas são muito mais difíceis de realizar.

Devemos levar em conta que a linguagem C# veio depois da linguagem Java e 'trouxe' consigo muito dos recursos do Java.

Desta forma, atualmente a linguagem C# não é mais apenas uma linguagem para o desenvolvimento para aplicações Windows mas pode ser usada para construir aplicações web, Windows Store e aplicações para dispositivos móveis incluindo o Android e o iOS.

Por ser uma linguagem mais nova ela tem a 'obrigação' de trazer algumas melhorias, senão não teria sentido criar uma nova linguagem.

Outro detalhe é, que não possuir determinado recurso, não faz a linguagem pior ou melhor, pois temos que levar em conta a filosofia da linguagem, e, como ela foi pensada e estruturada.

E outro detalhe, não existe linguagem melhor ou pior, existe a ferramenta mais adequada para fazer  um determinado trabalho.

Veja nas referências outros artigos que comparam a plataforma .NET e a plataforma Java.

Porque há um só Deus, e um só Mediador entre Deus e os homens, Jesus Cristo homem.
1 Timóteo 2:5

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

Referências:


José Carlos Macoratti