Lenguaje de Programación C# – Introducción

1. Historia y Origen de C#
Antecedentes
A finales de los años 90, Microsoft quería un lenguaje moderno que compitiera con Java y fuera la base de su plataforma .NET
La necesidad surgió porque Java, bajo el control de Sun Microsystems, comenzó a limitar la capacidad de Microsoft para extenderlo en su plataforma Windows.
Desarrollo de C#
C# fue diseñado principalmente por Anders Hejlsberg, un reconocido ingeniero de software que previamente trabajó en lenguajes como Turbo Pascal y fue el arquitecto principal de Delphi.

El lenguaje fue inicialmente llamado «Cool» (C-like Object Oriented Language). Sin embargo, Microsoft cambió el nombre antes del lanzamiento oficial para evitar problemas de marca.
Lanzamiento
La primera versión de C# (1.0) fue lanzada en el año 2002 junto con el .NET Framework 1.0.
Desde su lanzamiento, C# ha evolucionado con nuevas características que lo han hecho altamente competitivo y adaptable.
Hitos y Evolución
C# 1.0 (2002): Introdujo las bases del lenguaje, como clases, métodos, excepciones y manejo básico de tipos.
C# 2.0 (2005): Incorporó genéricos, iteradores (yield) y tipos nulos (Nullable).
C# 3.0 (2007): Introdujo LINQ (Language Integrated Query), expresiones lambda y propiedades automáticas.
C# 5.0 (2012): Añadió soporte para programación asíncrona con async y await.
C# 8.0 (2019): Agregó switch avanzado, tipos de referencia nulos y flujos asíncronos.
C# 12 (2023): Mejoras en programación funcional y soporte adicional para programación moderna.
Curiosidades sobre C#

Origen del nombre
Existen varias teorías sobre el origen del nombre:
La letra «C» se debe a que C# está basado en su mayoría en la estructura de C y C++.
Una teoría del # proviene de la notación musical, donde representa un semitono más alto (sharp). Este simbolismo indica que C# es una evolución del lenguaje C.
Otra teoría indica que «C#» proviene de la convergencia de 4 veces ++++ formando el símbolo # indicando también que es mucho mejor que C++
Un lenguaje «seguro»
Diseñado con características para evitar errores comunes, como la administración automática de memoria (garbage collection) y la protección contra desbordamiento de búfer.
El competidor de Java
Desde sus inicios, C# fue visto como un «Java de Microsoft» debido a sus similitudes iniciales con este lenguaje
Características Principales de C#
Multiparadigma

Una de las principales características de C# es que soporta diferentes estilos de programación, incluyendo programación orientada a objetos (POO).
Manejo automático de memoria
Con garbage collection, C# libera automáticamente la memoria no utilizada, reduciendo errores de manejo manual de memoria.
Seguridad de tipos
C# es un lenguaje fuertemente tipado, lo que ayuda a prevenir errores al obligar al programador a definir y respetar los tipos de datos.
Compatibilidad con .NET

C# está profundamente integrado con la plataforma .NET, lo que permite desarrollar aplicaciones fácilmente escalables, portables y seguras.
Modernidad
Incluye características avanzadas como expresiones lambda, programación asíncrona, LINQ y tipos inmutables.
Ventajas de Aprender C#
Con herramientas como Visual Studio, Azure y el .NET Framework/Core, ofrece un entorno poderoso para el desarrollo. Al ser uno de los lenguajes más utilizados, cuenta con una comunidad global que ofrece soporte, librerías y frameworks.
Tabla comparativa con Lenguajes populares.

Con C# puedes desenvolverte en el desarrollo de:
Desarrollo de aplicaciones de escritorio: Utilizando Windows Forms, WPF o UWP.
Desarrollo web: Con frameworks como ASP.NET para crear aplicaciones dinámicas y servicios REST.
Videojuegos: Principal lenguaje para Unity, una de las plataformas más populares para desarrollo de videojuegos.
Inteligencia Artificial y Machine Learning: Con ML.NET, se pueden desarrollar aplicaciones basadas en aprendizaje automático.
