Merece la pena .NET en 2024

01 Jan 2024 5 min (0) Comentarios

Un post que he estado evitando hacer durante varios años, principalmente porque tanto este blog como mi canal de youtube están centrados en C#, así que os podéis imaginar el resultado final. 

 

Pero cada vez me estáis preguntando más y más, sobre todos aquellos que estáis empezando o vais a empezar si C# o .NET merece la pena, en este post vamos a ver mi opinión y el motivo, y voy a ser como siempre lo más imparcial posible, tanto para lo bueno, como para lo malo.

 

 

1 - El estado de C# y .NET

 

Lo primero es hablar de cómo está el framework en sí, primero de todo es mencionar, qué es .NET? .NET es un framework y C# es un lenguaje (como otros, F#, VB) que funcionan sobre este framework.  Esta web y mi canal se centran principalmente en C#.

 

Cuando veis ofertas de trabajo y leeis .NET lo mas probable es que sea C#, de hecho el 85/90% de los casos será C#. Pero del mundo laboral lo veremos más adelante. 

 

.NET a su vez, lo podemos dividir en dos, 

  • .NET framework: Son las aplicaciones que hoy en día se les llama “Legacy”, si bien es cierto que .NET Framework se sigue actualizando no es ni de lejos algo similar a la otra versión. Cuando veis en internet que en .NET estas obligado a usar windows y que solo funciona en windows y código propietario, etc, todo eso, se refiere a .NET Framework.
  • .NET (core): La versión actual la cual lanzó su primera versión en 2016, y actualmente vamos por .NET 8, Son las aplicaciones que corren en el sistema actual, las app son más ligeras, es open source, corren en cualquier sistema y se puede desarrollar para ellas en cualquier sistema. Tengo post tanto para ejemplos en linux y en mac (apple silicon)

 

Eso es como resumen, si quieres más detalles de las versiones te dejo un enlace donde hablo de todas las versiones de .NET, y sobre la mala decisión con los nombres.

Aunque no lo cubro en este canal Azure tiene soporte completo a todo lo relacionado con .NET, lo cual hace que muchas empresas usen C#, por la red de seguridad que da Microsoft.

 

 

2 - Ecosistema y comunidad de .NET

 

Para mí es uno de los pilares fundamentales. En mi experiencia, tenemos un ecosistema que es mejor que cualquier otro, así de claro y simple. He trabajado múltiples lenguajes de programación en mi carrera profesional como PHP, Ruby, Go, JavaScript (incontables frameworks), y estudié como todo el mundo en españa, Java.

 

Personalmente encuentro trabajar con .NET el más sencillo de todos, las herramientas que tenemos disponibles, tanto las proporcionadas por microsoft como las de terceras son impresionantes y hacen el trabajo muy sencillo.

Trabajar con .NET o hacer un hello world es tan sencillo como descargar la versión de .NET y visual studio, todo muy bien explicado en la web de microsoft, o en mi blog claro

 

El propio microsoft saca una versión nueva cada año con actualizaciones. Con cada versión, sacan mejoras tanto de rendimiento como de funcionalidades, aquí puedes ver los cambios de .NET 8 que sucedieron el pasado noviembre (2023).

 

Hablando de C# en particular, tiene todas las funcionalidades que uno pudiera querer tener (excepto discriminated unions) en un lenguaje, y está apostando mucho por pattern matching, una funcionalidad brutal. 

Además en .NET tenemos lo que se llama .NET Foundation, básicamente son una serie de librerías bajo ese paraguas, cuando una librería es muy popular se le ofrece ser parte de la net foundation, y recibe recursos para su desarrollo, principalmente dinero o alguien de microsoft ayuda de vez en cuando, lo que hace que las librerías se mantengan actualizadas.

 

Por mucho que me pese  Microsoft tiene su propia academia, que ya están empezando a tener temas más avanzados con casos de ejemplo reales. Lo cual a mi no me viene muy bien porque es lo mismo que hago en este canal, que ya me podrían llamar a mi para hacerlos, pero bueno. 

Finalmente y en mi opinión, por norma general la gente en internet es amable con las dudas y realista cuando hablando de comparaciones se pregunta cómo es C# vs X lenguaje, cosa que no es común en todas las comunidades, cough, Ruby, cough.

 

 

3 - Casos de uso en el mundo real

 

Pasemos a cosas más serias, dónde podemos utilizar C#? 

 

Literalmente en todas partes, como he dicho antes desde .NET Core, podemos ejecutar nuestro código en cualquier plataforma, desde la web, apps de escritorio o juegos (unity) como es super popular a dispositivos móviles, incluyendo cualquier dispositivo IoT.

 

entornos en .net

 

Esto nos lleva a que sus casos de uso son potencialmente infinitos en comparación con otros lenguajes. 

Para poner casos más particulares, .NET es super popular en cualquier sistema de prácticamente cualquier gobierno del mundo, aunque esto es más por tener a Microsoft detrás, Sanidad y Fintech también son sectores donde .NET es muy muy popular. 

 

Eso es en términos generales, pero por supuesto cualquier empresa puede potencialmente trabajar en .NET, para mencionar mi experiencia personal he trabajado con agencias de viajes, empresas de almacenes o fintech entre otras.

 

Una de las características de .NET es que escala y escala muy bien y muy barato debido entre otras cosas al foco del equipo de microsoft en reducir tiempos de carga, mejorar los paquetes internos ya existentes  y por supuesto hacer que .NET corriese en linux nos vino muy bien a todos los que tenemos aplicaciones que reciben 60-100 mil llamadas por minuto. Lo que significa 80-144 millones al día.

Por supuesto con dinero ilimitado, TODO escala, pero la idea es poder hacerlo de una forma barata, y con .NET es posible.

 

3.1 - C# VS otros lenguajes

 

Podemos comparar .NET con otros lenguajes, de hecho podemos agrupar los lenguajes por grupos

grupos de lenguajes

Por norma general los del grupo de arriba nos proveen una mayor velocidad de desarrollo, especialmente ruby, con el que tengo una relación de amor odio. 

Ruby tiene la característica de ser muy muy rápido de desarrollar pero su rendimiento es terrible, el rendimiento de JS no es terrible, pero sigue sin ser comparable al segundo grupo como Java y C#. En este primer grupo tenemos los lenguajes interpretados.

 

En el segundo grupo, los lenguajes compilados o bueno, semi compilados más bien, lo que hacen es compilar en el caso de C# (o F#, o Vb) es compilar en IL (intermediate language) y en el de java en Bytecode y ambos son ejecutados tanto por CoreCLR como por la JavaVM; y son estos los que en tiempo de ejecución convierten en lenguaje máquina.

Esto nos trae ventajas como puede ser la eficiencia del código o un excelente uso de memoria ya que traen muy buenos garbage collectors en el propio lenguaje. 

 

Finalmente los lenguajes puramente compilados a lenguaje máquina, donde tenemos C/C++ o Rust, que son muy eficientes cuando se programan bien, pero es muy complicado de hacer bien y muy costosos en término de tiempo, por supuesto ganas ese tiempo luego cuando la app se está ejecutando, pero estos lenguajes se suelen utilizar únicamente cuando tenemos un requerimiento indispensable con el rendimiento o con hardware, o ambos. 

 

Elegir el lenguaje correcto para cada escenario es crucial, por ejemplo C# o Java son muy buenos para aplicaciones empresariales, donde tienes muchos empleados y muchas funcionalidades que mantener. 

Ruby es excelente para startups ya que permite hacer muchas funcionalidades muy rápido y eso es primordial (aunque por norma general, suele ser un poco chapucero), cuando estas lanzando una startup. 

 

C es ideal para apps que deben correr super eficientes y super bien, piensa en el kernel de linux o bases de datos, todo esto está implementado en C.

strings en rust vs other languages

 

4 - El mundo laboral de C# 

 

Finalmente hablemos de C# y las oportunidades laborales. 

 

Como habrás podido deducir de los puntos anteriores hay cantidad de sectores que trabajan con C#; lo que hace que las oportunidades laborales sean muy grandes, al nivel de otros lenguajes o frameworks mucho más extendidos.

ofertas laborales

Personalmente no he tenido nunca ningún problema encontrando trabajo en C#, y al ser tan popular entre grandes empresas hay muchos puestos para graduados o junior, cosa que en C o Rust es casi imposible. 

 

El hecho de que C# tenga tanto ecosistema donde funciona, nos permite no solo centrarnos en backend o en aplicaciones de escritorio que era lo popular hasta 2015, sino que ahora tenemos aplicaciones móviles o un framework web como Blazor si lo que te gusta es el desarrollo web. 

 

Por estos motivos pienso que empezar en C# tu carrera profesional es muy bueno, ya que puedes ir saltando, con mayor o menor dificultad, de un entorno a otro, lo común es empezar en backend o fullstack (con razor), pero de ahí te puedes ir moviendo, esto abre muchas puertas que al final es lo más importante. 

 

Finalmente mencionar que yo llevo desde antes de la pandemia trabajando en remoto, que para muchos puede ser importante.

 

 

Un saludo!

 

Uso del bloqueador de anuncios adblock

Hola!

Primero de todo bienvenido a la web de NetMentor donde podrás aprender programación en C# y .NET desde un nivel de principiante hasta más avanzado.


Yo entiendo que utilices un bloqueador de anuncios como AdBlock, Ublock o el propio navegador Brave. Pero te tengo que pedir por favor que desactives el bloqueador para esta web.


Intento personalmente no poner mucha publicidad, la justa para pagar el servidor y por supuesto que no sea intrusiva; Si pese a ello piensas que es intrusiva siempre me puedes escribir por privado o por Twitter a @NetMentorTW.


Si ya lo has desactivado, por favor recarga la página.


Un saludo y muchas gracias por tu colaboración

© copyright 2024 NetMentor | Todos los derechos reservados | RSS Feed

Buy me a coffee Invitame a un café