Historia y Evolución

Historia y Evolución

r

Steve André Sánchez González # 25 1°"C"

Nombre

Nombre

Main goEl nombre C# fue inspirado por la notación musical donde una almohadilla (#) indica que la nota escrita debe hacerse un semitono más alto en el tono. Esto es similar al nombre del lenguaje C++, donde “++” indica que una variable debe ser incrementada en 1. El símbolo de la almohadilla (#) también se asemeja a una ligadura de los cuatro símbolos “+” (en una cuadrícula de dos en dos), lo que implica que el lenguaje es un incremento de C++ tal y como se puede observar en la siguiente imagen.al and vision

Origenes

Andrés Hejlsberg

Andrés Hejlsberg

Decidió formar un equipo de trabajo en 1999 para crear un nuevo lenguaje de programación, que hoy conocemos como C#. En cambio, en sus inicios el nombre inicial que se barajó fue Cool (C Object Oriented Language), lo que en español traduciríamos con un lenguaje de programación orientado a objetivos.

Familia de lenguajes C

C# tiene sus orígenes en la familia de lenguajes C y su primera versión, tal y como explica Microsoft, se parecía mucho a Java. De hecho, se creó con el fin de ser una alternativa viable en este en Windows. Muchas de sus características fueron evolucionando y mejorando hasta llegar a la versión actual.

Caracteristicas

Sintaxis sencilla

r

Facilita al desarrollador la escritura de código.

Sistema de tipo unificado

r

Permitiendo realizar operaciones comunes y que los valores de todos los tipos se puedan almacenar, transportar y utilizar de manera coherente.

Orientación a componentes

r

Hemos dicho que C# es lenguaje orientado a objetos, pero también a componentes porque permite definir propiedades sin necesidad de crear métodos o usar eventos sin tratar con punteros a funciones.

Espacio de nombres.

r

Se puede aislar o agrupar código.

Bibliotecas

r

Todos los compiladores de C# tienen un mínimo de biblioteca de clases disponibles para usar.

Multihilo

r

En C# puedes dividir el código en múltiples hilos de ejecución, trabajar en paralelo y sincronizarlos al final.

¿Qué es C#?

¿Qué es C#?

Ante la pregunta qué es C# la respuesta más básica y sencilla es: un lenguaje de programación. Pero como es lógico, esta explicación te sabrá a poco. C# ha sido desarrollado por Microsoft con el objetivo de permitir a los desarrolladores crear una multitud de aplicaciones ejecutadas en .NET Framework (una tecnología que admite la compilación y ejecución de aplicaciones y servicios web XML).

C# es un lenguaje sencillo, con seguridad de tipos y orientado a objetivos. Su sintaxis es fácil de aprender y muy intuitiva, lo que hace que cualquier persona familiarizada con algún otro tipo de lenguaje de programación aprenda en poco tiempo a utilizarlo.

Evolución

2002

2002

r

Como decíamos antes, 2002 fue el año en el que pudimos ver la primera versión de C#, la 1.0. Aquí se establecieron las bases del lenguaje: el uso de clases, structs, interfaces, modelo de herencia, ciclo de vida, etc. También asistimos al nacimiento de Microsoft .Net Framework.

2005

2005

r

Con la versión 2.0 se empezó a vislumbrar lo que es hoy en día el lenguaje gracias a los generics, iteradores, los métodos anónimos, la covarianza y la contravarianza… Y no nos olvidemos de las clases parciales. Era demasiado evidente que eso de region era un poco horrible. Así que para dar solución al código generado por los diseñadores de formularios de Windows.Forms y WebForms, en esta versión se añadieron clases que podían ser definidas en varios archivos añadiendo la palabra clave “partial”.

2007

2007

r

Este año nos encontramos con el que sin duda fue el mayor avance del lenguaje. La versión 3.0 es con la que se consiguió adelantar a Java. De hecho, lo hizo por la derecha y le soltó las chapitas. A partir de aquí desde Java se dieron cuenta de que tenían que empezar a copiar las nuevas características de C#. Los tipos anónimos, junto con las Lambdas y el ExpresionTree, nos trajeron Linq, posiblemente la mejor utilidad que se ha diseñado para tratar con iteraciones. También se incluyeron algunos detalles estéticos (o syntax-sugar), como las auto-properties o la palabra clave var, que intentaban dar mayor limpieza al código.

2010

2010

r

Después de unos años tan interesantes en el mundo del desarrollo de Microsoft, 2010 nos supo un poco descafeinado. Como un año de transición. Era como que tenían que sacar algo y decidieron llamarlo C# 4.0. Con unos pocos detalles que se habían quedado en el tintero en versiones anteriores. Destacaríamos la covarianza y contravarianza en generics, los named-params o los parámetros opcionales.

2012

2012

r

Dos años más tarde nos encontramos con una versión que básicamente solo añadía el syntax-sugar más grande que ha visto un lenguaje de programación en la historia. De hecho, luego fue copiado por javascript.C# 5.0 introdujo async y await, dos palabras clave tan útiles como peligrosas. Esta característica esconde una máquina de estado en IL (Intermediate Language, el bytecode de .Net) dentro de nuestros ensamblados. Y su funcionalidad es hacer que la programación asíncrona pueda realizarse de la misma forma que la secuencial, acercando un modelo de programación basado en eventos y callbacks, a los pobres programadores que solo saben programar de forma secuencial.

2015

2015

r

Buscando la excelencia de su lenguaje bandera, Microsoft nos dio un montón de syntax-sugar nuevos. La 6.0 era una versión tan dulce que casi nos dio diabetes. Lambdas para hacer métodos, inicializadores de auto-properties, “nameof”…

2017

2017

r

La última gran actualización de C#, la versión 7.0. Lo más destacable de esta versión es que vino de la mano del nuevo Runtime multi plataforma y open source de .Net: dotnet core. Además de un montón de funcionalidades que venían inspiradas de un lenguaje funcional de .Net: F#. Pattern maching, tuplas, deconstrucción, wildcards… Ahora C# es un lenguaje orientado a objetos y funcional.

Ultima Versión

C# Versión 7

Finalmente hemos llegado ya a la versión 7 de C#. Es la versión actual en la fecha que se ha escrito este artículo. Tiene cosas muy chulas y revolucionarias que ya estaban en el ADN de la versión 6, pero sin el compilador como servicio.

Todas ofrecen nuevas capacidades para que los desarrolladores puedan escribir código más limpio que nunca. En concreto, creo que Microsoft ha dado solución a problemas que venían desde muy lejos al condensar la declaración de variables que se pueden a usar con la palabra clave out y al permitir valores de devolución múltiples vía tuplas.