.NET 8

.NET 8 provoca una amplia reflexión sobre cuánto ha avanzado la plataforma: los desarrolladores elogian sus mejoras de rendimiento, la compilación Native AOT, las nuevas características de C# 12 (como las expresiones de colección y los interceptores) y las incorporaciones orientadas a la nube como .NET Aspire. Al mismo tiempo, muchos consideran que la experiencia multiplataforma de GUI y las herramientas en sistemas que no son Windows siguen rezagadas, y siguen preocupados por la fragmentación del ecosistema (.NET Framework vs .NET Core vs “solo .NET”), la rotación de frameworks de UI y la monetización de Microsoft en torno a IDEs y extensiones. En general, los participantes ven el .NET moderno como una opción rápida, capaz y bien equipada para trabajo de back-end y cloud-native, pero menos claramente posicionado como una opción de primera para UIs de escritorio y móviles multiplataforma.

Cambios del lenguaje en C# 12

  • Nuevas expresiones de colección ([1, 2, ..others]) y la sintaxis de expansión reutilizan la forma existente de pattern matching .. para lograr simetría entre construcción y deconstrucción.
  • Debate sobre .. frente a ...; la elección fue en parte reservar ... para posibles características futuras.
  • Los constructores primarios para clases dividen opiniones: algunos los ven como una conveniencia potente, mientras que otros los consideran potencialmente confusos.
  • Los interceptores mediante generadores de código fuente se ven como “herramientas poderosas” de nicho para frameworks de DI/AOP más que para la lógica de negocio cotidiana.

Native AOT, rendimiento y huella

  • Native AOT recibe elogios por sus binarios pequeños e independientes y por un despliegue al estilo Go, aunque muchos señalan lagunas en el ecosistema (código muy dependiente de reflexión, patrones antiguos de ASP.NET, GUIs).
  • Algunos lo comparan más con la imagen nativa de Java/Graal: potente, pero solo un subconjunto de bibliotecas funciona con fluidez.
  • Dynamic PGO ahora está activado por defecto; se espera que beneficie especialmente al código con muchas abstracciones.

Aspire, Dapr, Orleans y cloud-native

  • Aspire genera tanto interés como sospecha; algunos lo ven como una integración útil para .NET cloud-native, mientras que otros temen “demasiada magia” y solapamiento con Dapr.
  • Hay preguntas sobre el compromiso a largo plazo con Dapr y Orleans; los mantenedores informan de trabajo activo (workflows de Orleans, almacenamiento, integración con Aspire).

Herramientas, coste y plataformas

  • Visual Studio (Windows), VS Code con extensiones de C#, y Rider son las principales opciones; muchos elogian Rider en macOS/ARM.
  • Hay fricción para lograr herramientas realmente gratuitas y abiertas a “escala empresarial” y en plataformas no Windows, aunque la CLI + VS Code funciona.
  • La licencia de VS / DevKit para empresas grandes genera preocupaciones sobre una futura monetización; otros argumentan que el runtime es MIT y se puede bifurcar.

Historia multiplataforma y de GUI

  • Existe un fuerte consenso en que el uso multiplataforma sin GUI para servidor/CLI es sólido y agradable.
  • La GUI de escritorio/móvil se considera fragmentada: MAUI (con backend nativo), Avalonia/Uno (estilo Skia), Blazor (web/WASM), opciones de terceros (Eto, Godot).
  • Algunos temen que Blazor repita los inconvenientes de WebForms; otros están entusiasmados con su modelo unificado de componentes y sus nuevas características de streaming/servidor.

Versionado, Mono y compatibilidad

  • Se repite la explicación: el antiguo .NET Framework solo para Windows frente al moderno .NET 5–8 multiplataforma; .NET Standard sirve principalmente para compartir bibliotecas heredadas.
  • Mono quedó en gran parte absorbido en el repositorio principal, pero aún se usa en Unity, MAUI móvil y algunas plataformas de nicho.
  • Muchos elogian la compatibilidad hacia atrás de .NET; algunos responden que Java sigue siendo incluso más estricto.

Otros lenguajes y adopción

  • Se anunció F# 8 junto con C# 12, con mejoras de rendimiento e interoperabilidad; a la comunidad le preocupa su visibilidad marginal.
  • Hay varios hilos sobre por qué/cuándo elegir .NET frente a Go/Java: herramientas sólidas, LINQ, el modelo async y mejoras incrementales anuales.