Introdução
Essa especificação é baseada em um envio da Hewlett-Packard, Intel e Microsoft, que descreveu uma linguagem chamada C#, que foi desenvolvida dentro da Microsoft. Os principais inventores dessa língua foram Anders Hejlsberg, Scott Wiltamuth e Peter Golde. A primeira implementação amplamente distribuída do C# foi lançada pela Microsoft em julho de 2000, como parte de sua iniciativa .NET Framework.
O Comitê Técnico 39 da Ecma (TC39) [mais tarde renomeado para TC49] Grupo de Tarefas 2 (TG2) foi formado em setembro de 2000, para produzir um padrão para C#. Outro Grupo de Tarefas, o TG3, também foi formado na época para produzir um padrão para uma biblioteca e ambiente de execução chamado Common Language Infrastructure (CLI). (A CLI é baseada em um subconjunto do .NET Framework.) Embora a implementação do C# da Microsoft dependa da CLI para suporte à biblioteca e ao tempo de execução, outras implementações do C# não precisam, desde que ofereçam suporte aos recursos e à API exigidos por esse padrão C# (consulte o Anexo C).
À medida que a definição de C# evoluiu, os objetivos usados em seu design foram os seguintes:
- O C# destina-se a ser uma linguagem de programação simples, moderna, de uso geral e orientada a objetos.
- A linguagem e suas implementações devem fornecer suporte para princípios de engenharia de software, como verificação de tipo forte, verificação de limites de matriz, detecção de tentativas de usar variáveis não inicializadas e coleta automática de lixo. A robustez do software, a durabilidade e a produtividade do programador são importantes.
- A linguagem destina-se ao uso no desenvolvimento de componentes de software adequados para implantação em ambientes distribuídos.
- A portabilidade do código-fonte é muito importante, assim como a portabilidade do programador, especialmente para os programadores já familiarizados com C e C++.
- O apoio à internacionalização é muito importante.
- O C# destina-se a ser adequado para escrever aplicativos para sistemas hospedados e embarcados, desde os muito grandes que usam sistemas operacionais sofisticados até os muito pequenos com funções dedicadas.
- Embora os aplicativos C# tenham a intenção de ser econômicos em relação aos requisitos de memória e poder de processamento, a linguagem não se destinava a competir diretamente em desempenho e tamanho com C ou linguagem assembly.
O nome C# é pronunciado "C Sharp".
O nome C# é escrito como a LETRA LATINA MAIÚSCULA C (U+0043) seguida pelo SINAL DE NÚMERO # (U+0023).
ECMA C# draft specification