historia-evolucion-de-csharp

Historia y evolución de C#

No podíamos hacer un curso de C# sin hablar brevemente de su historia. Aunque solo sea por entender de donde venimos, y algunas de las peculiaridades del entorno .NET.

A finales de los años 90, Microsoft se enfrentaba al serio desafío de competir con Java, el lenguaje que dominaba el desarrollo de aplicaciones empresariales en ese momento.

Java, creado por Sun Microsystems en 1995, promovía una filosofía de “escribir una vez, ejecutar en cualquier lugar” gracias a su uso de la máquina virtual Java (JVM).

Java, como lenguaje, estaba muy bien. Pero el acceso de Microsoft a Java era limitado debido a problemas de licencia y conflictos legales con Sun Microsystems.

Así que Microsoft se lió la manta a la cabeza a desarrollar su propio lenguaje, copiando desacaradamente inspirándose fuertemente en Java, pero diseñado para integrarse a con la plataforma Windows.

Bajo la dirección de Anders Hejlsberg, un reconocido ingeniero de software que había trabajado en Turbo Pascal y Delphi, comenzó el desarrollo de un nuevo lenguaje que acabaría convirtiéndose en C#.

Le pusieron C# inspirándose en C, y C++. El # se supone que son cuatro símbolos +, dos arriba y dos abajo, queriendo dar a entender que es la evolución natural de C++.

La era de .NET Framework

C# fue presentado por primera vez en 2000 como parte de la iniciativa .NET de Microsoft. La primera versión oficial de C# se lanzó en 2002, junto con el marco de trabajo .NET 1.0.

iniciativa-dotnet

Microsoft y su iniciativa .NET

La plataforma .NET era un intento ambicioso de crear un entorno que permitiera a los desarrolladores construir aplicaciones de todo tipo y ejecutarlas en diferentes dispositivos y plataformas (era la máquina virtual de Java).

Como decía, C# se inspiraba fuertemente en Java. (en fin… que cuando empezó creo que todos pensamos “madre mía, una copia mala de Java de Microsoft” 😆). Pero poco a poco empezaron a ponerle cosas, y ganó su propia identidad.

En 2007 la versión de C# 3.0 introdujo importantes mejoras en el lenguaje. Además, venía de la mano .NET Framework 3.5, que añadió las tecnologías WFC y WPF. Para estas alturas empezaba a ser un gran lenguaje de programación.

Para mi, la consolidación de C# se alcanza con la versión 5.0, lanzada en 2012, acompañada con .NET Framework 4.5. Para bien o para mal, es una de las versiones más usadas (digo “para mal” porque muchos proyectos nunca pasaron de ahí).

La era de .NET Core y C# 6.0 y 7.0

La popularidad de C# estaba funcionando bastante bien. Nunca fue un lenguaje tan popular como otros (Python, JavaScript, o C++), pero tenía su nicho… tenía una popularidad correcta .

Pero Microsoft (y los desarrolladores) teníamos una espinita clavada. Por mucho que nos hubieran dicho al principio, la compatibilidad entre dispositivos era casi nula. C# funcionaba únicamente en Windows.

Así que a Microsoft se le fue la pinza y dijo “¡vamos a hacherlo grachiocho! 🤡”, vamos a dividir todo el .NET Framework en cachos. (porque si algo funciona, porque no vas a fastidiarlo).

De esta forma surge, en mi opinión, una de las mayores cagadas de .NET, el lanzamiento .NET Core en 2016. Una versión modular y ligera de .NET Framework, diseñada para ejecutarse en Windows, Linux y macOS.

Además, .NET Core sería Open Source. Tiene su repo en Github, tienes todo el código disponible, e incluso reportar errores o colaborar. Un cambio enorme y terriblemente positivo ❤️❤️.

En definitiva, que .NET Core fue un paso adelante importante (¿necesario? seguramente no) para convertirse en un lenguaje realmente multiplataforma. Pero a cambio, complicaba mucho … todo, complicaba mucho todo.

Pero es que, con todos sus huevazos 🥚🥚 mantuvieron también .NET Framework, en paralelo con .Core, Standard, Xamarin… una idea de pinza

Así que solo unos años más tarde, básicamente Microsoft tuvo que recular y volver a unificar lo separado. 👇

Unificación con .NET

En 2020, Microsoft unificó .NET Framework, .NET Core y Xamarin bajo una única plataforma. Así que empezando con la versión .NET 5, sólo habría una plataforma, llamada .NET (así, a secas, sin nada detrás)

¿Podían haberlo puesto un poco más fácil con los nombres? Pos… puede ser. ¡Pero en Microsoft no hacemos así las cosas!

Esta versión representó una consolidación y simplificación del ecosistema .NET, ofreciendo una plataforma unificada para el desarrollo de aplicaciones en múltiples sistemas operativos y dispositivos.

Una consolidación que no hubiera hecho falta si no se hubieran puesto a trocear el Framework… pero bueno, yo que sé 🤷

El presente y futuro de .NET

Y llegamos a la actualidad, donde .NET continúa evolucionando a pasos agigantados. Con la llegada de .NET 6 y .NET 7, Microsoft ha seguido mejorando el rendimiento, la compatibilidad y la facilidad de uso del framework.

Además, continuamente se introducen nuevas tecnologías, como ASP.NET Core, Entity Framework Core, MAUI, o Blazor ha abierto nuevas posibilidades y ha atraído a una nueva generación de desarrolladores.

Además, cuenta con la integración con Azure (la plataforma de nube de Microsoft), ofrece una amplia gama de servicios y herramientas que facilitan el despliegue y la gestión de aplicaciones en la nube.

En fin, que esperemos que le quede cuerda para rato, ya que es un gran lenguaje de programación, Open Source, y realmente multiplataforma.