Rachel Rouemeliotis, da O'Reilly, recentemente conversou com Eric Lippert, líder do Compiler Team do C#. A conversa incluiu um resumo sobre o mundo e a filosofia do C#, o que motivou o InfoQ a ouvir Lippert diretamente para obter mais detalhes.
Lippert começa sua entrevista com a O'Reilly comentando sobre a popularidade do C# "por todo o ecossistema Windows" e ressaltando seu uso no desenvolvimento para X-Box 360, Windows Phone, ASP e aplicações comerciais. Um ponto forte do C#, diz, é que se trata de uma linguagem de propósito geral e não de uma linguagem de domínio específico. A despeito dessa generalidade, Lippert lembra que o C# não tem por objetivo incluir tudo e qualquer coisa.
O InfoQ ouviu Lippert sobre a estratégia da Microsoft para o C# e o Visual Basic, e sobre os objetivos da empresa para cada uma das linguagens. Ao comparar C# e VB, a Microsoft considera ambas como linguagens de propósito geral, que devem evoluir conjuntamente. Isso não significa que virão a se tornar a "mesma linguagem", apenas com sintaxes diferentes. Na verdade, diz Lippert, "a Microsoft tem a intenção de que os principais recursos novos do C# sejam incorporados no VB e vice-versa".
Exemplos de recursos que já foram adicionados são o suporte ao LINQ e a covariância de tipos genéricos (generic covariance). Um próximo recurso a ser incluído é o suporte à programação assíncrona usando as palavras reservadas async/wait. Lippert comentou que "o problema é que vivemos em um mundo com latência", e que os programadores precisarem escrever seus programas para lidar com atrasos enquanto são aguardadas entradas do usuário ou comunicações de rede. Para reduzir esse peso, as palavras reservadas async/await permitem que o programador estruture seu programa de modo que o compilador possa auxiliar no gerenciamento de seções de código assíncronas. Isso proporciona código mais legível e de mais fácil desenvolvimento.
Em nossa conversa, Lippert reconheceu as históricas "diferenças filosóficas nos projetos do C# e do VB, que vão muito além dos recursos suportados por cada linguagem":
O VB foi desenvolvido com a filosofia de "impor o menor número de obstáculos possível para usuário; se o código não está claro, tentar entender o que o desenvolvedor queria dizer". Já o C# foi projetado com a filosofia "se o código não está claro, pode estar errado; orientar o usuário para que corrija o código antes de continuar". O objetivo - a produtividade dos desenvolvedores - é o mesmo para VB e C#, mas as abordagens filosóficas para alcançar a produtividade são opostas. Isso é bom: programadores têm opiniões diferentes sobre como resolver problemas da forma mais eficiente, então é positivo criar ferramentas que encorajem diferentes estilos de trabalho.
Na sua conversa com a O'Reilly, Lippert comentou alguns caminhos que o C# pode trilhar no futuro - sempre ressaltando que são apenas opiniões e que não representam o posicionamento oficial da Microsoft.
Com relação ao projeto Roslyn, Lippert confirmou ao InfoQ que os compiladores existentes distribuídos com o Visual Studio serão substituídos no futuro pelos desenvolvidos para o Roslyn. Além disso, as ferramentas de análise do Roslyn substituirão o mecanismo existente de análise de código em tempo de codificação. (Esta é a parte que fornece comentários e sugestões em tempo real, durante a escrita de código na janela de edição do Visual Studio.)
Quanto ao futuro das linguagens, Lippert esclarece que não há ainda um conjunto definitvo de novos recursos planejados para o C# e o VB, além do que é incluído no Visual Studio 2012. Lippert afirma que a Microsoft está monitorando as "tendências da indústria" e que seu grupo ainda está no estágio de exploração, para melhor definir problemas observados e suas possíveis soluções.