A evolução da linguagem de programação C#

Veja nesse artigo a história de como surgiu a linguagem de programação C# e quais as padronizações na qual foi submetida. Serão abordadas características específicas da linguagem, bem como um comparativo com outras linguagens, como C, C++ e Java

Neste artigo apresento Thiago Ferreira de Toledo, que pode ser contatado pelo e-mail thiagoftoledo@live.com. O Thiago foi meu aluno durante sua graduação e está concluindo o último período do curso de Tecnologia em Análise e Desenvolvimento de Sistemas da UTFPR campus Medianeira neste segundo semestre de 2013. Faz estágio na área de infraestrutura na Frimesa e participa de um grupo de pesquisa na área de Tecnologia da Informação e Comunicação na Educação.

O desenvolvimento do C# (pronuncia-se: C Sharp), de acordo com o website Wikipédia (2013), teve início no final do século XX (1999). A convite da Microsoft, Anders Hejlsberg formou uma equipe de programadores para desenvolver uma nova linguagem de programação. A primeira linguagem criada pela equipe de Hejlsberg recebe o nome de Cool. Mais tarde, na virada de século, a linguagem Cool foi rebatizada para C#.

Após o renome da linguagem, a Microsoft submeteu-a à ECMA (European Computer Manufacturers Association), associação cujo objetivo é a padronização de sistemas de informação. Em 2001, a ECMA aprovou o C# e a linguagem recebeu a especificação ECMA-334. Mais tarde, em 2003, tornou-se padrão também da ISO, recebendo a especificação de ISO/IEC 23270.

O C# surgiu com a finalidade de possibilitar a criação de soluções executáveis sobre a plataforma .NET Framework, com o intuito de flexibilizar o desenvolvimento de aplicativos. Dessa maneira, o desenvolvedor não cria soluções para um dispositivo eletrônico específico, e sim para a plataforma .NET Framework.

Para a codificação de sistemas baseados em .NET Framework, a Microsoft lançou o Visual Studio. Esta ferramenta é uma IDE (Integrated Development Environment) que conta com um editor de código, compilador, com modelos de projetos de exemplos, designers e assistente de códigos.

MSDN (2012), diz que os algoritmos escritos em C# são executados no .NET Framework, um componente para Windows que inclui um sistema de execução virtual da aplicação por meio do Common Language Runtime (CLR) e um conjunto de bibliotecas de classes, além de contar com uma solução comercial da Microsoft, que faz parte da infraestrutura de linguagem comum (CLI). O CLI é tido como um padrão internacional para a criação e execução de ambientes de desenvolvimento onde as linguagens e as bibliotecas trabalham em sincronia.

Ainda de acordo com MSDN (2012), a compilação em C# é processada em uma Intermediate Language (IL) que está em conformidade com a especificação CLI. O código IL e seus recursos, tais como bitmaps e strings, são armazenados no disco rígido em um arquivo executável chamado de Assembly. No momento da execução de um programa em C#, o Assembly é carregado para o CLR. Uma vez aprovado os requisitos de segurança, o CLR executa a compilação Just in Time (JIT) para converter o código IL em linguagem de baixo nível.

A linguagem C# e suas características

A criação do C# foi baseada nas linguagens de programação C, C++ e Java. Deste modo, programadores habituados com uma dessas linguagens são capazes de desenvolver soluções sem maiores dificuldades, pois ela reúne recursos de cada uma destas linguagens base e adiciona novos recursos exclusivos.

Em relação a linguagem C, o C# tem foco na compilação de soluções de alto nível, já a linguagem C é voltada para o desenvolvimento de baixo nível. Outras comparações, de acordo com MSDN (2012), o C#, simplifica de modo significativo a complexidade do C++ e introduz novos elementos não disponíveis no Java, tais como: tipos primitivos com valores nulos, delegações, expressões lambda e acesso direto à memória.

MSDN (2012) ressalta que, o processo de compilação do C# é mais simples e mais flexível comparado ao C++ ou Java, pois elimina-se a necessidade de arquivos de cabeçalhos separados e não há a necessidade da declaração de métodos e tipos em uma ordem específica. Um arquivo contendo códigos de programação podem ser definidos quaisquer números de classes, estruturas, interfaces e eventos que forem necessários.

De acordo com OFICINA DA NET (2007), comparada ao C e C++, a linguagem C# é restrita e melhorada em vários aspectos, tais como:

Ainda de acordo com OFICINA DA NET (2007), as diferenças do C# com o Java são: diferentemente de Java, no C# são implementados propriedades e sobrecargas de operadores, implementa modo inseguro que permite a manipulação de ponteiros e aritméticos sem checagem, exceções não são checadas, implementa goto como estrutura de controle, oferece suporte a indexadores e delegates.

MSDN (2012), ressalta algumas características do C#, a citar:

Segundo LIMA (2002), as características essenciais do C# são:

Evolução da linguagem

A primeira versão do C# começou a ser usado a partir do Visual Studio 2002. De acordo com o Website kunal-chowdhury (2012), sua principal característica era a capacidade de escrever códigos gerenciáveis. Outras características da primeira versão do C# são: conceitos de Orientação a Objetos, suporte nativo a propriedades e eventos, documentação XML, exceções, segurança de tipos, sobrecarga de operadores e gerenciamento automático de memória.

Desde a primeira versão, o C# suporta dois tipos de dados. Tipos de valor: incluem variáveis simples, como char, int e float, tipos de enumeração e de estrutura. O segundo grupo engloba tipos de dados por referência, como: classes, interface, delegates e array.

A segunda versão da linguagem (2.0) foi introduzida com o Visual Studio 2005 e Visual Studio 2005 Express. De acordo com MSDN (2005) as novidades são: tipos genéricos, iteradores, classe parcial, tipos anuláveis, métodos anônimos, qualificador de alias de namespace, classes estáticas, modificadores externos para declarar métodos declarados externamente, possibilidade de definir diferentes níveis de acessibilidades ao métodos gets e sets, maior flexibilidade no tipo de retorno e parâmetros ao passar para um delegate, buffer de tamanha fixo.

Com o Visual Studio 2008 e Visual Studio 2008 Express, o C# 3.0 (“C# Orcas”), de acordo com MSDN (2007) introduziu várias extensões de linguagem que se baseiam no C# 2.0. A versão 3.0 conta ainda com métodos de extensão, expressões lambda, tipos anônimos, tipos implícitos de arrays, expressões de consulta e árvores de expressões.

Na sua versão 4.0, contando com o Visual Studio 2010 e Visual Studio 2010 Express, os novos recursos agregados, de acordo com BURROWS (2010), compreendem: DLR, parâmetros opcionais e de argumentos nomeados, propriedades indexadas, suporte COM.

Atualmente, o C# está na versão 5.0 acompanhada com o Visual Studio 2012 e Visual Studio 2012 Express. O Website kunal-chowdhury (2012) diz que são duas as novas funcionalidades apresentadas na quinta versão da linguagem: Async e Caller Information. Async é utilizada para indicar se o método, expressão lambda, ou método anônimo são assíncronos. Caller Information para obter informações sobre a chamada a um método, obter o caminho e número de linhas do código-fonte e o nome do membro que o chamou. Caller Information é utilizado para a detecção, depuração e criação de ferramentas de diagnósticos.

Considerações Finais

A criação do C# foi baseada em C, C++ e Java. Dessa maneira, o desenvolvedor possui um apoio referencial no aprendizado da linguagem, não precisando estudar novos conceitos e paradigmas de programação opostos. Desde o seu lançamento, o C# permite o desenvolvimento de aplicações executadas exclusivamente sobre a plataforma .NET Framework.

Dentre algumas das características essenciais do C#, em ordem cronológica de versão, destacam-se : (1.0) totalmente orientada a objetos, gerenciamento automático de memória; (2.0) tipos genéricos, métodos anônimos, classes estáticas; (3.0) tipos anônimos, expressões de consulta e árvore de expressões; (4.0) propriedades indexadas, suporte COM e DLR; (5.0) Async e Caller Information.

A linguagem C# veio acompanhada de uma IDE comercial de desenvolvimento: Visual Studio. A partir de 2005, contou ainda com uma IDE gratuita, denominada Visual Studio Express. Em ordem cronológica, o Visual Studio conta com as seguintes versões: 2002, 2005, 2008, 2010 e 2012.

A utilização do Visual Studio como plataforma de desenvolvimento e o C# garantem algumas vantagens nas construções de aplicativos, tais como: programação orientada a objetos, uso de eventos nos controles, validação de dados e tratamento de erros.

Artigos relacionados