logo
Contato | Sobre...        
rebarba rebarba

Rodrigo Strauss :: Blog


Parece que a certificação de Visual C++ voltou (ou quase)

O Fabio Galuppo disse no blog dele que nas novas provas para o Framework 2.0 (ainda em beta, segundo ele) vocês escolhe a linguagem de programação que será usada durante o teste. E, para meu espanto, estava lá na lista o C++/CLI. Ainda não tive notícias sobre provas do Visual C++ 2005 unmanaged - nem o pessoal da Microsoft soube responder se elas vão voltar - mas já é um grande progresso. Eu sinceramente duvido que elas voltem (ainda bem que eu já tirei a minha), mas...

Essa mudança se deve provavelmente ao fato de que o C++/CLI consegue produzir assemblies 100% gerenciados, da mesma forma que o C# e VB8. "Da mesma forma" é modo de dizer, já que o C++/CLI usa o otimizador do Visual C++, o que faz com o que os assemblies sejam melhores do que os gerados pelo C# e VB. Eu já falei sobre o otimizador do Visual C++ antes.

Ah, e só para lembrar, o Wiki C/C++ está a todo vapor, com muitas visitas e colaborações. Vamos ver se agora alguém se anima a escrever sobre C++/CLI :-)


Em 09/01/2006 14:01, por Rodrigo Strauss


  
 
 
Comentários
Fabio Galuppo | website | em 13/01/2006 | #
1. C++/CLI além de utilizar o otimizador do VC++ ele comprovadamente gera uma IL melhor do que o C# ( http://msdn.microsoft.com/msdnmag/issues/05/01/COptimization...). Eliminando o mito que compilador .NET é tudo igual, na compilação JIT com certeza é tudo igual - mas o compilador pode ser camarada e gerar um IL otimizado.

2. Outro ponto, o VC++ juntamente com C++/CLI permite integração de código nativo e gerenciado no mesmo assembly (isto é excelente!).

3. C++/CLI possui semantica de stack para objetos .NET. Por causa disto, vc tbm não precisa se preocupar com chamada Dispose (Close) para liberar recursos gerenciados, ele é chamado quando o objeto sair do escopo.

4. Algumas construções em C++/CLI são mais simples do que em C#. Vide item 3, ex.: objetos temporários

5. Esta é para gerentes: Considerando 2 bons programadores, a quantidade de esforço para uma tarefa de programação em .NET é igual para C# e C++/CLI. Por exemplo, para criar um socket, compactar os dados com a stream GZip e enviar os dados compactados - leva o mesmo tempo de desenvolvimento nas 2 linguagens. Ou seja, todas as tarefas que envolvem as classes do .NET Framework tem o mesmo peso.

6. Indiscutivelmente, o VC++ oferece mecanismos melhores para interoperabilidade do que P/Invoke e COM Interop (apesar de suportar estes tbm, veja C++ Interop - http://msdn2.microsoft.com/en-us/library/2x8kf7zx.aspx).

7. Em breve, STL/CLI ou STL.NET ou STL para .NET :)

Abstraindo certos esteriótipos (tipo programador ineficiente), isto deixa claro a viabilidade do C++ em .NET, bem como a melhor na plataforma se comparado as outras linguagens (C#, VB.NET, Delphi.NET, Cobol.NET, ...)!
rebarba rebarba
  ::::