typestar

Lenguajes

C#

El rival de Java que siguió evolucionando cuando la rivalidad terminó.

Primera versión
2000 (1.0 in 2002)
Creado por
Anders Hejlsberg's team at Microsoft
Tipado
Estático y fuerte, con inferencia local vía var
Extensiones de archivo
.cs, .csx

Para qué sirve

C# es el lenguaje de trabajo del mundo Microsoft y de mucho más allá: servicios empresariales en ASP.NET Core, software de escritorio en Windows y una porción sorprendente de la industria de los videojuegos, donde Unity hizo de C# la forma estándar de programar la lógica de un juego. Un solo lenguaje cubre una API web, una app móvil multiplataforma y un motor de juegos, algo que pocos de sus competidores pueden presumir.

El otro atractivo es el lenguaje en sí. Empezó como un Java más limpio y nunca dejó de revisarse: LINQ metió las consultas sobre datos en la sintaxis en 2007, async/await llegó en 2012 y lo copiaron JavaScript, Python y Rust, y los records, la coincidencia de patrones y los programas de nivel superior han ido quitando la ceremonia paso a paso. El C# moderno en un solo archivo se lee más cerca de un script que del código cargado de clases de su reputación.

El runtime pasó por la misma renovación. .NET fue solo de Windows durante quince años; .NET Core lo reconstruyó como código abierto en 2016, y hoy el mismo SDK compila y corre en Linux y macOS con un rendimiento que deja en ridículo los estereotipos viejos una y otra vez. El costo es la superficie: dos décadas de framework acumulado significan que casi siempre hay tres maneras de hacer cualquier cosa, y la documentación asume que sabes en qué década estás.

De dónde viene

Microsoft contrató a Anders Hejlsberg, el diseñador de Turbo Pascal y Delphi, después de que una pelea legal con Sun por Java acabara con las extensiones de Java de Microsoft. C# 1.0 salió con el primer .NET Framework en 2002: con recolección de basura, basado en clases, con la forma inconfundible de Java, y con propiedades y eventos tomados de Delphi.

C# 2.0 agregó genéricos de verdad en 2005, implementados en el runtime en lugar de borrados como los de Java. C# 3.0 construyó LINQ sobre ellos en 2007, metiendo lambdas, inferencia de tipos y sintaxis de consulta al lenguaje en una sola versión. El async/await de C# 5.0 en 2012 se volvió el patrón que adoptó casi todo el resto de los lenguajes principales.

.NET Core en 2016 fue el giro: código abierto bajo la .NET Foundation, multiplataforma, desarrollado a la vista en GitHub. Desde entonces el lenguaje publica una versión cada noviembre — records en la 9, global usings en la 10, required members en la 11 — mientras el runtime unificado de .NET reemplazaba al Framework en el que empezó.

Cómo se siente teclearlo

C# se teclea en líneas parejas y cargadas de puntuación: llaves en su propia línea, corchetes angulares alrededor de los genéricos y nombres en PascalCase que premian comprometerse con la tecla shift. Las cadenas interpoladas mezclan $", llaves y especificadores de formato en poco espacio, y LINQ encadena llamadas a métodos con flechas de lambda, así que la fila de en medio del teclado se lleva un buen entrenamiento. La verbosidad es regular, y eso es exactamente lo que lo vuelve buena práctica de mecanografía.

Practica C#

79 pasos en 4 tours, desde lo básico hasta programas completos.

Los tours

Documentación oficial

Otros lenguajes