La semana pasada Microsoft anunció sus planes de futuro para Visual Basic .NET. Aunque el artículo tiene un tono positivo y trata de quitarle hierro al asunto, la verdad es que marca el principio del fin del lenguaje, ya que manifiesta claramente que no tiene planes para hacer que Visual Basic evolucione y se adapte a las nuevas características que se añadan en el futuro, reforzando mi tesis de hace años de que C# es el lenguaje a elegir.
Como seguramente sabes, el próximo mes de noviembre Microsoft planea lanzar .NET 5, en la que planean refundir en una sola todas las plataformas, y que en realidad es el "rebranding" definitivo de .NET Core a .NET (dale una lectura si no lo tienes claro: te interesará).
El anuncio de Microsoft dice que "soporta la estabilidad del lenguaje y mantiene la compatibilidad entre las versiones de Visual Basic entre las plataformas .NET y .NET Core", pero lo que esto quiere decir también es que el lenguaje no va a recibir soporte para las nuevas tecnologías que incluye .NET Core. Es decir, que va a permanecer estable pero estancado, congelado en el tiempo...
Sí, sé que en el anuncio dicen que, a partir de .NET 5, Visual Basic va a soportar nuevos tipos de aplicaciones en .NET Core, a saber:
- Bibliotecas de clases
- Aplicaciones de consola
- Aplicaciones de escritorio con Windows Forms
- Aplicaciones de escritorio con WPF
- Servicios en segundo plano multiplataforma (Service Workers, terrible nombre con nada que ver con los de JavaScript en el navegador: aquí te los explica nuestro tutor Jorge Turrado)
- Servicios Web con ASP.NET Core Web API
y hasta ahora sólo soporta los dos primeros (en .NET Core, insisto). Esto es algo estupendo, pero según Microsoft, se ha hecho con el objetivo de "ofrecer una buena ruta hacia adelante para aquellos clientes que usan VB y que quieren migrar sus aplicaciones a .NET Core". Es decir, esto es una manera de suavizar el golpe y dar tiempo para que puedas migrar algunas cosas a .NET Core / .NET 5, pero no una vía de futuro, ya que al mismo tiempo dejan claro que "En adelante, no tenemos planes de evolucionar Visual Basic como lenguaje", para más adelante añadir "Futuras características de .NET Core que requieran cambios en el lenguaje puede que no estén soportadas por el lenguaje".
Dado que .NET se incluye en el sistema operativo desde hace décadas, dejan claro que, mientras Windows esté soportado, .NET "tradicional" también estará soportado, así como Visual Basic. Esto es genial y da una garantía de futuro para el desarrollo con .NET tradicional en Windows, pero tampoco dejan lugar a dudas cuando dicen que Visual Basic (y .NET tradicional) no van a evolucionar más. Así que, a medida que la tecnología avance, y las necesidades de los desarrolladores cambien, no habrá una buena ruta de migración desde Visual Basic a .NET Core / .NET 5.
ACTUALIZACIÓN FEBRERO 2023: Microsoft ha vuelto a sacar una actualización sobre su estrategia con los lenguajes, en la que afirman que todo sigue igual. A raíz de esta sacaron también un artículo con comentarios concretos de qué significa eso para Visual Basic. La conclusión .nada ha cambiado y VB queda para tecnologías "Legacy" aunque puede interoperar con C# (por supuesto), pero no va a evolucionar ni va a estar soportado en nuevas cargas de trabajo. O sea, que todo lo escrito hace 3 años sigue siendo igualmente válido 🤷🏻♂️
Si desarrollas en Visual Basic vas a poder seguir haciéndolo durante mucho tiempo. No obstante, mi recomendación sería que mantengas las aplicaciones actuales para Windows en Visual Basic .NET si ese es el lenguaje que utilizas, pero que aprendas C# y .NET Core, y te cambies a ese lenguaje para todos los proyectos nuevos que desarrolles. Esa es la garantía de futuro.