Pode parecer redundante mais uma linguagem em meio tantas já disponíveis no mercado. Porque então deveríamos nos importar em aprender C#?
Podemos dizer que precisamos de uma nova linguagem assim como precisamos de novas roupas, novos carros, novos aparelhos eletrônicos, enfim. Tudo evolui, inclusive os sistemas computacionais (aliás, isso é o que evolui antes de qualquer coisa). Fazendo uma analogia, seria possível navegar na internet num computador construído para funcionar na época de 1990? Imagine rodar uma aplicação atual em um micro 486.
As necessidades mudam e por isso, mesmo o poder das linguagens existentes não se ajustam às necessidades atuais. O .NET e o C# foi concebido sobre os padrões atuais da Web e por isso, atende ao padrões de comunicação, integração entre dispositivos e plataformas. Outra vantagem é que muitas das falhas dos modelos de linguagens mais antigas foram contornadas com elegância e eficácia no C# como eventos, suporte a propriedades, existência um ancestral comum a todos os objetos entre outras.
Também temos a questão de produtividade. O .NET fornece um completo framework de classes que atendem às mais variadas necessidades como acesso a bancos de dados, envio de e-mail, tratamento de strings e acesso nativo a Web Services. Uma implemantação mais “light” do .NET Framework permite desenvolver aplicações para dispositivos móveis com o mesmo conhecimento e produtividade já adquiridos anteriormente. Trata-se do .NET Compact Framework que pode ser instalado em dispositivos que rodem versões do Windows CE e Windows Mobile.
Como o C# é baseado no C++ e no Java, tudo o que foi visto pode ser aproveitado e aperfeiçoado através dos novos recursos disponibilizados pela linguagem.
A princípio, quando uma construção do C++ não oferece problemas, ela é usada. Mas o C# modifica bastante o C++ e não tem a pretensão de manter compatibilidade.