BLOG

Por [N1] Fred el | Añadir comentario

¿Qué lenguaje de programación elegir para programar en .NET?

Lenguajes de programación .net

Muchas programadores que deciden migrar de Visual Basic 6  o que deciden aprender a programar en a la plataforma .NET tienen la siguiente duda: ¿Qué lenguaje de programación elegir para desarrollos en .NET? La plataforma .NET te permite programar en varios lenguajes de programación –básicamente en lenguajes CLI o infraestructura de lenguaje común– y una de las decisiones más críticas que debes tomar antes de hacer nada es decidir por cuál optar.

La plataforma .NET es un entorno de programación que deja a discreción del programador optar por un lenguaje u otro, ya que no existe un lenguaje .NET propio. Aprender un nuevo lenguaje de programación exige un esfuerzo y equivocarse en la elección supone un desgaste que tenemos que intentar evitar a toda costa.

¿Por qué tengo que elegir un lenguaje para programar con el framework .NET?

Digamos que .NET como entorno de desarrollo incorpora una gran gama de funcionalidades de serie. Usamos el lenguaje de programación para ir armando esas funcionalidades que nos proporciona el framework .NET. Cualquier lenguaje apto para .NET accede a las librerías de la plataforma para obtener las funcionalidades que necesitamos para construir un programa de software. El resultado final de programar en un lenguaje u otro no varia la funcionalidad del software, ya que la funcionalidad de la aplicación viene dada de la plataforma .NET, no del lenguaje que hayas usado.

En resumidas cuentas, el lenguaje de programación es un medio para montar las funcionalidades que formarán parte del software que creas.

¿Cuales son los lenguajes de programación más populares para trabajar con la plataforma .NET?

En este apartado no pretendo decir cuál es el mejor lenguaje de programación en .NET, ya que la respuesta a esta pregunta varía según quién te responda y al final es una cuestión de gustos y otros factores. Lo que sí puedo decir es que de los lenguajes de programación de .NET los más populares son C# y Visual Basic .NET. Por tanto, las comparaciones las haremos entre Visual Basic .NET y C# ya que son los más extendidos. Hablemos un poco de cada uno de ellos.

Visual Basic .NET

Hay una gran legión de programadores que literalmente aman Visual Basic y por lo tanto optan por Visual Basic .NET ya que en teoría (que no en la realidad) se supone que la adaptación es más fácil porque la sintaxis es más similar. El salto de Visual Basic 6 a Visual Basic .NET no es tan sencillo ya que hay bastantes diferencias entre ambos y tendrás que desaprender cosas de VB6 para no cometer errores de sintaxis en VB.NET. Lo que en principio parece una ventaja se termina convirtiendo en un problema. Además, otro gran inconveniente para los veteranos en Visual Basic 6 es que VB.NET no es retro-compatible con Visual Basic.

Un programador que solo haya trabajado con Visual Basic puede encontrar que la curva de aprendizaje a la hora de migrar a Visual Basic .NET le resulte muy difícil. Un programador que tenga buenos conocimientos en otros lenguajes de programación o que tenga alguna mínima experiencia con el runtime de .NET no deberá tener problemas a medio plazo. En este sentido, es casi mejor pensar que Visual Basic .NET es un lenguaje de programación totalmente nuevo inspirado en el clásico Visual Basic que creer que es una evolución de Visual Basic 6. Aquí podéis ver una comparativa más en detalle de los cambios más importantes.

Si no vienes de VB6 y optas por Visual Basic .NET debes tener en cuenta que se recomienda aprender este lenguaje si tu prioridad es programar macros y scripts para aplicaciones de Microsoft Office. Si este es tu caso, puede que te encaje bien Visual Basic .NET. 

De todos los lenguajes de programación más populares que puedes usar para programar en .NET, Visual Basic .NET es el más fácil de usar y es el menos estricto a la hora de escribir código que otros y aporta la misma funcionalidad que C# por ejemplo, ya que ambos se compilan a CIL.

Otro problema que presenta Visual Basic .NET es que no sirve para programar aplicaciones para las principales plataformas móviles del mercado, iOS de Apple  y Android de Google. Con Visual Basic .NET sí puedes hacer programas para Windows 10 Mobile, pero su uso no está tan generalizado como el resto.  Si queremos usar Mono, que es una implementación libre de la plataforma de desarrollo .NET para dispositivos Android, iOS y GNU/Linux y que permite reutilizar código y da acceso a APIs nativas, tampoco podemos usar Visual Basic .NET.

Hemos señalado anteriormente que Visual Basic .NET es más fácil de usar. Ahora bien, en términos de adopción, es decir, el número de programadores que se deciden por un lenguaje de programación, no es el lenguaje de programación apto para .NET con más adeptos pero tampoco está mal parado y ha escalado un puesto en índice TIOBE desde enero de 2016 y tres desde enero de 2015.

Es importante saber qué grado de penetración tiene un lenguaje entre los programadores porque así también te haces una idea de la cantidad de ayuda y ejemplos de código que te podrás encontrar escrito en ese lenguaje. Esto es un dato fundamental a tener en cuenta a la hora de lanzarte a aprender un lenguaje nuevo. Un buen truco para hacerse una idea general es ir a los foros de programación más concurridos del mundo y ver cuántas preguntas se hacen sobre un determinado lenguaje y que tiempos y números de respuestas hay. Si vemos en StackOverflow, hoy se han hecho 63 preguntas  sobre Visual Basic .NET, y 350 preguntas en la última semana.

Además del grado de adopción y de los grandes números, yo también recomiendo hacer una valoración cualitativa. Buscar opiniones de otros programadores, profundizar en sus experiencias, y si su contexto y su realidad es asimilable a la mía, poder tener en cuenta dicha experiencia en mi decisión. Un buen ejemplo es este hilo donde podemos leer la opinión de varios profesionales en torno a la pregunta de si es mejor aprender Visual Basic .NET o C#.

Por último, me gustaría señalar otro aspecto que es muy importante para tener en cuenta: las perspectivas de futuro y la percepción que se tiene del lenguaje. El Visual Basic clásico supuso la “democratización” de la programación, sirvió en los años 90 para introducir en el mundo de la programación a millones de personas que de profesión no eran programadores: estudiantes, personas que programaban por hobby, autónomos que se hacían sus propios programas, etc…

Esto no quiere decir que no hubiera profesionales programando en Visual Basic ni que no se pudieran hacer programas potentes. Simplemente al popularizarse tanto -llegó a tener la comunidad de desarrolladores más grande jamás entre todos los lenguajes de programación- que no sé por qué razón exactamente empezó a ser menospreciada por un sector de programadores profesionales que temían ese “intrusismo”.

Como consecuencia de esta herencia de supuesto lenguaje “vulgar”, decir que Visual Basic .NET es menos guay, menos chévere, menos bacano… que decir que programas en cualquier otro lenguaje. Es algo realmente superficial, porque como hemos explicado anteriormente, puedes obtener la misma funcionalidad del framework .NET programando en C# que en VB.NET.

El mercado laboral, pues, valora más a un programador de C# que de VB.NET. El factor trendy no es el único, pero si tiene cierto peso. El empleador que recibe un CV de un programador en C# lo ve con mejores ojos. El debate está ahí cómo se puede ver en la sección de comentarios de este post comparando VB.NET con C#.

Resumiendo, Visual Basic .NET destaca más por su simplicidad que por cualquier otro factor: es más fácil de leer y es menos estricto a la hora de desarrollar que C Sharp. Y por supuesto, hay muchos defensores de Visual Basic .NET que defienden las virtudes del lenguaje con argumentos de peso.

C Sharp (C#)

Si ya tienes conocimientos en algún lenguaje basado en C, deberías optar por C# ya que es de largo el lenguaje más popular en el que se programa en el ecosistema .NET. Casi todo el software de código abierto en el entorno .NET está hecho en C# (se pronuncia C Sharp). Los proyectos más serios y de más enjundia se hacen en C# ya que es un lenguaje derivado de C++, y es un lenguaje orientado a objetos muy potente. Los desarrolladores con experiencia en JAVA deberían encontrar el proceso de transición a C# relativamente sencillo.

Si no sabes ningún lenguaje basado en C, ni Visual Basic clásico, una de las principales razones para aprender C# y no Visual Basic .NET es que te abre las puertas a aprender más fácilmente todos los lenguajes de programación basados en C, que no es poca cosa. Entre ellos destacan Java, C++, Objective C, Perl y el propio C.

Como hemos dicho anteriormente, tanto C# como Visual Basic .NET son funcionalmente equivalentes, es decir, permiten sacarle la misma potencia al framework .NET. Si bien C# es más estricto, Microsoft pone a disposición de cualquiera una Guía de programación en C# para aprender a programar.

Si queremos poder programar para cualquier plataforma móvil además de la propia de Windows, C# es la elección. C# es soportado por Mono de Xamarín, que es una implementación libre de la plataforma de desarrollo .NET para dispositivos Android, iOS y GNU/Linux y que permite reutilizar código y da acceso a APIs nativas. En este sentido, comentar que F# también es soportado por Mono, y es una de las opciones preferidas por los programadores de la plataforma para hacer apps multi-plataforma.

En términos de adopción del lenguaje por parte de los programadores, decir que C# ha permanecido en la cuarta desde al menos el año 2014 posición en el índice TIOBE, solo por detrás de JAVA, C y C++. A fecha de hoy nada ha cambiado. Este dato ya nos da una idea de la cantidad de ayuda y ejemplos de programación nos podremos encontrar en C# en foros. En StackOverflow, hoy se han hecho 566 preguntas  sobre Visual Basic .NET, y 3.535 preguntas en la última semana.

Además de los ejemplos por parte de la comunidad, indicar que desde el año 2015 casi todas la tecnologías que saca Microsoft, que está hecha en C#, es código abierto. Se puede consultar todo el código fuente en GitHub. Esto supone una gran cantidad de código que sirve para leer y aprender.

En relación con las perspectivas de futuro y la percepción de la tecnología por parte del mercado laboral cabe referirse a varios aspectos.

Hace 20 años en muchas universidades se introducía a los alumnos de estudios técnicos en el mundo de la programación con Visual Basic clásico. Hoy en día la realidad es que se les enseña C/ C++ ya desde la universidad y en algunos casos desde la educación secundaria. C# es una derivación de C, así que el futuro de aquellos que opten por desarrollar con la plataforma de Microsoft se sentirán atraídos de forma natural por C#, al menos porque les será más familiar. Por otro lado, la mayoría de los ejemplos de código que se escriben para los alumnos en la web de formación de Microsoft están en C#, y la mayoría del código que encontrarán para la plataforma .NET por la web en general están en C#.

Esto puede suponer una oportunidad a su vez por aquellos que opten por aprender Visual Basic .NET, ya que por la ley de la oferta y la demanda, habrá más programadores programando en C# en el mercado laboral, más jóvenes, más económicos y más disponibles. Será más fácil encontrar programadores en C#. Quiere decir que será más barato contratar desarrolladores en C#. Si unimos esto al hecho de que independientemente de que programes en Visual Basic .NET o C# podrás obtener la misma funcionalidad de la plataforma de Microsoft, no hay una razón técnica de peso para descartar Visual Basic. Desde el equipo de Lenguajes de Microsoft han trabajado para garantizar la paridad entre ambos lenguajes. De hecho, desde el 2014, el compilador Roslyn, compila C# en una versión escrita en C# y compila Visual Basic en una versión escrita en Visual Basic. Esto permite garantizar la paridad, la capacidad y la calidad de ambos lenguajes. Por esa razón ningún lenguaje es técnicamente superior. Eso sí, al margen de esta consideración hay que tener en cuenta varios aspectos prácticos. 

Lo cierto es que tanto los empleadores como la industria percibe C# como algo más moderno, más actualizado que Visual Basic .NET. Cuando asistes a conferencias o si lees artículos especializados, ¿Qué lenguaje de programación muestran los ponentes/autores? Muestran C#. Y al final los programadores usan estos recursos para formarse de cara a ser más productivos. Este tipo de cosas te desmotivan si optas por Visual Basic NET. Si estás con C#, el mundo te mima mucho más.

Resumiendo, ¿puedes usar Visual Basic .NET para crear aplicaciones empresariales? Claro que sí. Visual Basic .NET es incluso más fácil de leer y tiene una productividad en muchos casos superior a C#. ¿Deberías usar Visual Basic .NET para crear tus aplicaciones empresariales? Aquí debemos tener en cuenta una serie de consideraciones prácticas: la vida de tu producto de software, los desarrolladores con los que trabajas, los desarrolladores que tu empresa va a contratar, y el camino que sigue la industria. La respuesta puede parecer clara a la luz de lo que expone este artículo, pero en verdad nadie tiene la posesión de la verdad. Lo que sí es cierto es que a medio plazo el camino más fácil es C#. Es lo más sensato, equivocadamente o no, es lo que hay.

Artículo relacionado: ¿Cómo aprender a programar en Microsoft .NET?

Velneo es el entorno ágil para el desarrollo
de aplicaciones empresariales

PRUEBA VELNEO

Deja un comentario

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies