Desenvolvimento - C#

VB.NET ou C#?

Nos meus cursos envolvendo a arquitetura Microsoft .NET, uma questão frequentemente colocada durante o intervalo é qual linguagem será mais usada, VB ou C#? Das muitas linguagens existentes para o desenvolvimento em .NET, estas duas com certeza serão as mais populares. Mas dentre as duas, qual será a preferida?

por Mauro Sant'Anna



Meus cursos envolvendo a arquitetura Microsoft .NET, uma questão frequentemente colocada durante o intervalo é qual linguagem será mais usada, VB ou C#? Das muitas linguagens existentes para o desenvolvimento em .NET, estas duas com certeza serão as mais populares. Mas dentre as duas, qual será a preferida?

Quem programa em C/C++, Java ou Delphi com certeza vai escolher o C#. Nos casos do C/C++ e do Java, a razão é a grande semelhança com o C#. Quanto aos programadores Delphi, este é um grupo de pessoas que não usa VB por definição. A principal questão é, no fundo, qual linguagem os programadores VB vão escolher? A resposta parece ser óbvia: o próprio VB.NET, mas as coisas não são tão simples.

No Visual Studio 6, o VB e C/C++, o correspondente do C#, são muito diferentes, tanto em produtividade (melhor no VB), quanto no que você pode fazer (mais coisas no C/C++). A própria tarefa já baliza a linguagem usada: você procura fazer tudo em VB e o que não for possível você faz em C/C++.

A princípio, não existem razões técnicas fortes para os programadores VB migrarem para o C#. As capacidades das duas linguagens são praticamente idênticas e ambas compartilham a mesma biblioteca de runtime, a .NET Framework, uma sofisticada biblioteca de classes. Para ser absolutamente franco, você só pode escrever código inseguro (com ponteiros) em C#, mas é um tipo de programação que você não deve usar de qualquer maneira, exatamente por ser insegura.

Mas existem alguns fatores que complicam o quadro: o VB.NET não é idêntico ao VB 6; ao migrar para a arquitetura .NET, existe uma curva de aprendizado que não é ligada à nenhuma linguagem e sim ao próprio ambiente (biblioteca de classes, processo de compilação, ASP.NET, WebServices etc) e que deve ser vencida por todos os programadores, independentemente da linguagem. O C# foi feito do zero para a nova arquitetura e não carrega o peso da compatibilidade com nenhuma versão anterior, além de ser bem mais fácil de aprender e usar que o C/C++. A própria Microsoft usou o C# para a criação de diversos componentes da nova plataforma, incluindo a própria biblioteca de classes e o compilador JScript.

Finalmente, existem algumas razões psicológicas que talvez jogue um papel a favor do C#. Muitos programadores VB se sentiram inferiorizados pelo fato do VB não conseguir fazer tudo que era possível em C++ ou mesmo em Delphi. A tarefa impossível mais comum era chamar qualquer API do Windows, justamente o que o VB.NET não é capaz de fazer, por exigir ponteiros. Por causa disto, ainda existe uma sensação de exclusão no VB.NET, mesmo que pela falta de um recurso que não deve ser usado.

É possível que vários programadores VB confrontados com a necessidade de aprender a nova arquitetura resolvam fazê-lo em C#. O C# tem mais charme e um gosto de novidade que muitos programadores apreciam. Finalmente, qual profissional será mais bem remunerado no mercado: um programador VB ou C#? Se o C# for considerado semelhante ao C++, esta é uma desvantagem do VB.

Acredito que a maioria dos programadores VB irá para o VB.NET, mas um bloco significativo vai debandar para o C#. Somados ao pessoal vindo de C/C++, Java e Delphi, deve deixar o páreo entre VB.NET e C# realmente equilibrado.

Mauro Sant'Anna

Mauro Sant'Anna - Mauro tem mais de 20 anos de experiência no desenvolvimento de software, com produtos publicados no Brasil, Portugal e Estados Unidos, além de extensa experiência em treinamento e consultoria no desenvolvimento de software, tanto criando material como ministrando cursos.
Mauro é um "Microsoft Most Valuable Professional" (MVP - www.microsoft.com/mvp), “Microsoft Regional Director” (RD - www.microsoft.com/rd), membro do INETA Speaker’s Bureau (www.ineta.org) e possui as certificações MCP, MCSA (Windows 2000/2003), MCAD (C# e VB), MCDBA, MCSE (Windows 2000/2003).
Sua empresa, a M. A. S Informática (www.mas.com.br), treinou centenas de turmas em desenvolvimento de software nos últimos anos.