C# melhor que java

Disponível somente no TrabalhosFeitos
  • Páginas : 5 (1245 palavras )
  • Download(s) : 0
  • Publicado : 8 de junho de 2012
Ler documento completo
Amostra do texto
Por que o C# é melhor que o Java, Parte I

A Microsoft lançou a linguagem C# em meados do ano 2000. Desde então, um dos argumentos mais usados pelos concorrentes para desmerecer a nova linguagem é que “o C#não passa de um clone do Java”. Este artigo mostra que embora existam várias semelhanças, o C# traz diversos recursos importantes e que simplesmente não existem ou são muito difíceis deimplementar no Java.
Linguagem ou Plataforma?
Em primeiro lugar, antes de fazer qualquer comparação entre Java e alguma outra tecnologia, é bom enfatizar que “Java” pode significar duas coisas bastante diferentes:
* Uma linguagem de programação.
* Uma plataforma de execução, que inclui, no mínimo, um “runtime” e uma biblioteca de classes, usualmente conhecidos como “Java Virtual Machine”.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. Algumas características bastante interessantes no desenvolvimento de software, como por exemplo, o amplo suporte a diferentes culturas presente no C# foram deixados de lado por tecnicamente fazerem parte da “.NET Framework”.
Não estou também comparando oVisual Studio.NET com nenhum ambiente integrado de desenvolvimento para Java, embora o Visual Studio seja, na minha opinião, um produto muito mais completo.
Semelhanças
O C# foi sem dúvida influenciado por diversas linguagens, dentre as quais evidentemente Java, C++, Delphi e Smalltalk. Veja no quadro a seguir algumas  das semelhanças com o Java:
Semelhanças entre C# e Java |
Característica |Implementação |
Inspirado no C/C++ | Boa parte da sintaxe de ambas as linguagens foi inspirada no C/C++, especialmente declaração de variáveis, funções e estruturas de controle. |
Orientação a objetos | Ambas as linguagens suportam conceitos de programação orientada a objetos com a palavra reservada class. |
Herança | Herança simples de classes a partir de ancestral comum e herança múltiplade interfaces. |
Gerenciamento de memória | Automático, com “coletor de lixo”. |
Tipagem forte | Todas as atribuições tem os tipos validados. Os “casts” são sempre verificados em tempo de execução. Não é possível violar o sistema de tipos. |
Compila para código intermediário | Sim. No caso da Microsoft compila para “Intermediate Language” e no Java para “bytecode”. |
Tratamento de erro |Exceptions. |
Reflections | Ambas as linguagens suportam “reflections”. |
Unicode | Ambas as linguagens usam o padrão Unicode para representar caracteres e strings. |
Classe que não pode ser herdada | “final” em Java; “sealed” em C#. |
Campo constante | “static final” em Java; “const” em C#. |
Operador que verifica compatibilidade de tipos | “instanceof” em Java; “is” em C#. |
Os aspectosacima são auto-explicativos e refletem o pensamento atual no desenvolvimento de software, especialmente o uso de orientação a objetos em um ambiente “gerenciado”, no qual o programa não pode danificar o ambiente de execução.
Novidades do C#
O C# tem diversas novidades que tornam o desenvolvimento de software mais fácil e produtivo, como mostrado a seguir:
Recursos novos no C# |Característica | Java | C# |
Compilado para código nativo | Raramente. O Java é quase sempre interpretado. | Sempre compilado para código nativo. A compilação pode ser feita na instalação ou na primeira execução do programa. |
Todos os tipos derivados de ancestral comum | Não. | Sim, todos os tipos são derivados de object. |
“Boxing” e “Unboxing” - conversão de tipos por valor para tipos por referência |Não. Exige conversão manual. | Sim. |
Structs | Não. | Sim. |
Enum | Não. | Sim. |
Passagem de parâmetros por referência | Não. | Sim, de duas maneiras: ref para parâmetros de entrada e saída eout para parâmetro apenas de saída. |
Propriedades | Não. Podem ser simuladas com métodos Get/Set, com alguma dificuldade. | Sim, diretamente. A criação de “componentes” é bastante facilitada. |...
tracking img