Aunque ya han pasado más de 15 años desde el lanzamiento de la primera versión de C#, el lenguaje no parece muy antiguo. Una de las razones es que ha sido actualizado con regularidad.

 

Cada dos o tres años, se lanzaba una nueva versión con nuevas funcionalidades en el lenguaje. Desde la aparición de C# 7.0 a principios de 2017, la cadencia de actualizaciones ha aumentado todavía más mediante versiones menores del lenguaje.

 

En el plazo de un año, se publicaron tres nuevas versiones menores (C# 7.1, 7.2 y 7.3).

 

Lea más en C# 7.1, 7.2 y 7.3 – Nuevas funcionalidades (Actualizado) (en inglés).

 

Si nos fijásemos en código escrito con C# 1.0 en 2002, se vería muy distinto al código que utilizamos hoy en día.

 

La mayor parte de las diferencias son el resultado de la utilización de construcciones del lenguaje que no existían en aquel entonces. Sin embargo, junto con el desarrollo del lenguaje, también se añadieron nuevas clases a la plataforma .NET que se benefician de las nuevas capacidades del lenguaje. Todo esto hace que el C# de ahora sea mucho más expresivo y conciso.

 

Llevemos a cabo una incursión histórica haciendo un repaso de las principales versiones de C#.

 

Para cada versión, analizaremos los cambios más importantes y compararemos el código que podría ser programado después de su lanzamiento, con el que se tenía que crear antes. Cuando lleguemos a C# 1.0, difícilmente seremos capaces de reconocer el código como C#.

 

Versiones y Evolución de C#

 

C# 7.0

 

En el momento en el que se escribió este artículo, la última versión principal era la 7.0. Su lanzamiento fue en 2017, que sigue siendo bastante reciente, y por lo tanto sus nuevas funcionalidades aún no se utilizan a menudo.

 

C# 6.0

 

C# 6.0 fue lanzado en 2015. Coincidió con la completa reprogramación del compilador, denominado Roslyn. Una parte importante de esta versión fueron los servicios de compilación que desde entonces se han utilizado con gran éxito en Visual Studio y otros editores:

 

C# 5.0

 

Microsoft lanzó C# 5.0 en 2012 e introdujo una nueva función de lenguaje muy importante: la sintaxis async/await para llamadas asíncronas.

 

Hizo que la programación asíncrona fuera mucho más accesible para todos. La funcionalidad iba acompañada de un amplio conjunto de nuevos métodos asíncronos para operaciones de entrada y salida en el framework .NET 4.5, que se lanzó al mismo tiempo.

 

C# 4.0

 

En 2010, se lanzó C# 4.0.

 

Se enfocó en el enlace dinámico para simplificar la interoperabilidad con COM y los lenguajes dinámicos. Dado que Microsoft Office y muchas otras aplicaciones de gran tamaño pueden ahora ampliarse utilizando la plataforma .NET directamente sin depender de la interoperabilidad COM, vemos poco uso del enlace dinámico en la mayoría del código C# en la actualidad.

 

Para obtener más información sobre enlaces dinámicos, consulta mi artículo Enlace dinámico en C# (en inglés) en la revista DNC.

 

No obstante, al mismo tiempo se añadió una funcionalidad importante, que se convirtió en parte esencial del lenguaje y que hoy en día se utiliza con mucha frecuencia sin que se le dé demasiada importancia: los parámetros opcionales y con nombre. Son una gran alternativa a la programación de muchas sobrecargas de la misma función

 

C# 3.0

 

C# 3.0 del año 2007 fue otro hito importante en el desarrollo del lenguaje. Las funcionalidades introducidas giran en torno a la posibilidad de utilizar LINQ (Language INtegrated Query):

 

C# 2.0

 

Hemos llegado al año 2005 cuando se lanzó C# 2.0. Muchos consideran que esta es la primera versión del lenguaje lo suficientemente madura para ser utilizada en proyectos reales. Introdujo muchas funcionalidades de las que no podemos prescindir hoy en día, aunque la más importante e impactante de todas fue, sin duda, el soporte de los genéricos.

 

Nadie se puede imaginar C# sin genéricos. Todas las colecciones que seguimos utilizando hoy en día son genéricas

 

 

C# ha sido el lenguaje principal para el desarrollo en .NET desde la versión 1.0, pero ha evolucionado mucho desde entonces. Gracias a las funcionalidades que se le fueron añadiendo versión tras versión, se mantiene al día con las nuevas tendencias del mundo de la programación y sigue siendo una buena alternativa a los nuevos lenguajes que han aparecido desde entonces.

 

Ocasionalmente, incluso logra iniciar una nueva tendencia como lo hizo con las palabras clave async y await, que más tarde han sido adoptadas por otros lenguajes. Con soporte para tipos de referencia anulables y muchas otras nuevas funciones anunciadas para C# 8.0, no hay que temer que el lenguaje deje de evolucionar.

 

Mas información:
https://www.campusmvp.es/recursos/post/la-evolucion-del-lenguaje-c.aspx

Please follow and like us: