C# VB o C++ La eterna discusión!

Derivada de una pregunta en los foros sobre que lenguaje elegir, os dejo esta conversacion para continuarla si lo considerais interesante. 


Debemos hacer honor a la verdad y desde la introducción de .NET francamente no existe diferencia alguna y apenas pequeños matices para valorar si es mejor desarrollar con Visual Basic o en C#. Los amantes de formas metódicas,  programadores veteranos e inclusive la mayoría de empresas del sector, tienden a valorar mucho mas el C# que el VB, por la herencia que supone creer que el “C” conlleva un grado más elevado de conocimiento, de la misma forma que cuando hablamos de Visual Basic parece que sea un lenguaje asociado a los que están iniciando o aprendiendo, personalmente creo que estos pensamientos no ayudan ni reflejan la realidad de ambos lenguajes.


A mi forma de entender y estando seguro de que me dejare cosas en el tintero, las justificaciones para utilizar uno u otro vienen determinadas principalmente por rasgos tales como :


  • C++, Dentro de la familia de Visual Studio, va a ser el único lenguaje que me permitirá compilar aplicaciones “no administradas” o sea generar compilados binarios o ejecutables directamente por la CPU. A demás de brindarme la posibilidad de desarrollar con uno de los lenguajes más extendidos y valorados por la comunidad de desarrolladores. –> Cuando hablamos de código no administrado haciendo referencia a compilados binarios que se ejecutan directamente, significa que los compilados no dependen de ningún ‘runtime’ o  ‘JIT’ (Just in time compiler.) Solo rinden dependencias sobre las librerías o en su contexto MFC, WIN32, CLR o lo que utilicen externamente. En este caso tenemos en nuestras manos todos los mecanismos para incrementar los rendimientos o podemos implementar técnicas de optimización para controlar procesos donde la velocidad o determinados parámetros pasan a ser críticos. En este sentido con el Framework lo tendremos muy complicado o inaccesible.
  • C#, A mi entender destaca por ser una atractiva implementación del “C” tradicional a la plataforma.NET, su principal distinción mirandolo fríamente debería radicar en ser un lenguaje reconocido y aprobado como estándar por el “ECMA ” y que como tal cualquier plataforma puede adoptar, pues como especificación pertenece a la comunidad. “Véase proyecto MONO” que compatibiliza plataformas con la implementación de un compilador de C# y las librerías que dan soporte a las diferentes tecnologías de .NET.
  • Finalmente Visual Basic, es un “DULCE”, pues a pesar de no estar considerado un lenguaje de primera línea, sus formas, expresiones y facilidades lo hacen el favorito de los que se concentran más en la facilidad de programar, anteponiendo la simplicidad (RAD) a técnicas y estilos de programación.

En igualdad de condiciones y pensando en una aplicación que va a rodar bajo plataforma Windows, vas a obtener los mismos resultados tanto en C# como en Visual Basic (con algún que otro matiz), es mas Visual Studio te permite desarrollar soluciones con independencia de cómo y con qué lenguaje se hayan desarrollado diferentes partes.


Sé que esta explicación no te ofrece una respuesta, yo prefiero pensar en que tu entorno en tanto a recursos humanos o recursos de ayudas que puedas tener más a mano, deberían definir si VB o C#… de entrada descartaría C++ si no es para una aplicación de cierta complejidad con necesidades muy concretas de rendimiento o de prestaciones como procesamiento paralelo, que exigen trabajar directamente con librerías de Intel o para poder aprovechar de una forma directa alguna librería de renderizado en 3D (que quizás sea tu caso), por poner un ejemplo. 


;-)

2 thoughts on “C# VB o C++ La eterna discusión!”

  1. BUEno la verdad prefiero Csharp por costumbre pero he visto que hay algunas cosas en la IDE que tiene VB.NEt que no tiene el Csharp, pero en .Net todo llega a ser MSIL asi que no le veo mucho problema al respecto.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>