Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

?id=c7f71ff1-da25-46d3-8e85-6330abbc5581

El fin de Visual Basic .NET ya ha empezado

Imagen ornamental: una lápida con las fechas 2001-2020 y el nombre VB.NET inscrito en ella

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.

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.

José Manuel Alarcón Fundador de campusMVP, es ingeniero industrial y especialista en consultoría de empresa. Ha escrito diversos libros, habiendo publicado hasta la fecha cientos de artículos sobre informática e ingeniería en publicaciones especializadas. Microsoft lo ha reconocido como MVP (Most Valuable Professional) en desarrollo web desde el año 2004 hasta la actualidad. Puedes seguirlo en Twitter en @jm_alarcon o leer sus blog técnico o personal. Ver todos los posts de José Manuel Alarcón
Archivado en: Lenguajes y plataformas

¿Te ha gustado este post?
Pues espera a ver nuestro boletín mensual...

Suscríbete a la newsletter

La mejor formación online para desarrolladores como tú

Comentarios (14) -

adolfo vanegas
adolfo vanegas

Hola, gracias por esta información. Aun tengo dudas, todo esto es tan abrumador a veces, tu no terminas de aprender algo cuando ya Microsoft te cambio toda la forma de programar. Te pregunto algo, yo tengo un sistema hecho en VisualBasic  que ha ido evolucionando según las versión 2012, este año decidí pasarla a 2019, esto quiere decir que mejor debería reescribir todo el código en C# para escritorio o pasarlo a Net Core que no solo deja de ser escritoiro sino ambiente Web.

Te agradecería tus comentarios

Responder

José Manuel Alarcón
José Manuel Alarcón

Hola Adolfo:

Bueno, aquí hay dos cosas diferentes.

Por un lado tienes el lenguaje. Visual Basic va a seguir estando soportado mucho tiempo (seguramente siempre) y además podrás seguir programando con él. No creo que sea conveniente en absoluto tratar de migrar el código a C#. De hecho se pueden mezclar en el mismo proyecto varios lenguajes de .NET, por lo que podrías empezar a programar en C# en el mismo proyecto y seguir ampliando tu aplicación usando C#, de modo que poco a poco vayas acostumbrándote y aprendiéndolo.

Por otro lado esta la conveniencia de migrar a .NET Core o no. Una aplicación que tiene tiempo (y encima es de escritorio) como la tuya no creo que sea la mejor idea. De hecho ni siquiera la propia Microsoft recomienda migrar aplicaciones grandes de .NET a .NET Core. Y por otro lado el hecho de migrar a .NET Core tampoco tiene nada que ver con el hecho de que sean aplicaciones Web o no. En .NET clásico puedes hacer aplicaciones web estupendas y si quisieras hacer que parte de tu aplicación funcionase en la Web podrías hacerlo en .NET "clásico" sin ningún problema y probablemente aprovechando mucho código (dependiendo de cómo esté desarrollada la aplicación y qué arquitectura utilices).

En mi opinión lo que todo desarrollador .NET debería hacer es ir aprendiendo .NET Core y, si trabaja con VB.NET, ir poco a poco programando todo lo nuevo que haga en C#. .NET Core es el futuro (y ya el presente) del desarrollo en .NET, y C# es sin duda el lenguaje principal a utilizar, aunque eso creo que lleva años muy claro aunque a algunos les cueste aceptarlo  (www.campusmvp.es/.../...enguaje-debo-aprender.aspx)

Espero haberte ayudado.

Saludos.

Responder

Carlos Aparicio
Carlos Aparicio

Existe software que te transforma proyectos completos desde VB a C.

Responder

Lo interesante de esto es que si bien lo que dices es completamente cierto, también lo es que los que desarrollamos en VB.NET tenemos esa opción de migrar a C#, al ser del mismo .NET, prácticamente la sintáxis básica es la que cambia pero las propiedades de los objetos casi no.

Tengo conocidos desarrolladores en lenguajes tan obsoletos como Borland Delphi 5. Y viven de eso, y prácticamente ahí seguirán. Por lo que pienso que no es tan grave esta situación. Podemos seguir y seguir con vb pues al cliente final no le interesa el lenguaje sino las funciones, y por ejemplo aquí en México los servicios de timbrado fiscal por ejemplo tienen librerías compatibles con .NET, sería como que lo mas delicado, lo demás pues no es tanto problema.

En efecto, una forma de estar mas al día es migrar a C# que tiene mas futuro, pero igual si nos quedamos en VB, creo que estaremos bien, es decir, tampoco se va a prohibir.

Excelente artículo, José Manuel. Todo muy claro y bien explicado.

Responder

José Manuel Alarcón
José Manuel Alarcón

Totalmente de acuerdo, de hecho lo digo también en un comentario anterior de este post: www.campusmvp.es/.../...ic-net-ya-ha-empezado.aspx

Se pueden compaginar ambos, pero el futuro es C#.

Hay mucha gente programando en lenguajes en teoría obsoletos pero que siguen dando muchas alegrías (sino que se lo digan a los de COBOL) pero la cuestión está en que si te vas a plantear crear proyectos nuevos y en tener una carrera a largo plazo con mayores posibilidades de crecimiento y movimiento lateral, es mejor apostar por lenguajes y plataformas más modernos. No sabemos qué nos depara el futuro (sino mira en la que estamos ahora con el COVID), y en tecnología tampoco. No sabemos si saldrán dispositivos nuevos que dejen obsoletos a los actuales y que se programen con lenguajes y paradigmas nuevos, por lo que estar un poco al cabo de la calle con la tecnología suele ser buena idea.

Saludos!

Responder

En México muchas empresas usan .NET, y además mayormente tienen código en VB.NET. Y usan .NET Framework clásico, sin que parezca que deseen cambiar a .NET CORE. Así que en general puedes seguir programando VB.NET y pues aprender C#, yo conozco algo de C# pero en verdad disfruto mucho más programando en VB.NET. Pero puedo traducir de un lenguaje a otro, sin problema.

Responder

Si, precisamente estuve migrando algunas cosas a C#, a raíz de este artículo; pero encontré muchas complicaciones, por ejemplo, cuando estas en un Form, y quieres afectar otros forms, en VB solo pones Form1.Textbox desde el Form2, y pues C# no, hay que crear instancias y varias cosas, que me desalentaron, no por que sean demasiado complejas, sino que creo que son complicaciones innecesarias, para llegar al mismo resultado.

Responder

José Manuel Alarcón
José Manuel Alarcón

Hola Rafael:

En realidad eso no es necesario: se hace exactamente igual que en Visual Basic, ya que por debajo lo que hay es .NET y por lo tanto funciona de la misma manera. Seguramente tendrá que ver con el ámbito de tus formularios, de cómo están instanciados que quizá no ves uno desde el otro, pero funcionar, funcionan exactamente igual.

En cualquier caso, incluso aunque no fuese así, el futuro es claramente C# y deberías aprenderlo. Si vas a seguir creando apps con Windows Forms en .NET tradicional puedes seguir usando VB.NET sin problema, que el soporte no desaparece, pero si quieres ir al futuro de .NET, entonces el futuro es C#.

Si quieres aprenderlo BIEN y no con alfileres, entendiendo bien lo que aprendes, ya sabes 😉 www.campusmvp.es/.../....NET-Core-3-y-C-8_242.aspx

Saludos!

Responder

Alvaro García
Alvaro García

Muy bueno el artículo.

En mi experiencia, en 2004 empecé a escribir mi proyecto comercial en VB 6.0. Lo estuve comercializando por partes y quizás pude tenerlo completo en 2008. Todo este tiempo estuve facturando con ese proyecto. Recién en 2020 me decidí a escribirlo nuevamente en Visual Basic 2019. Siempre estuve con ganas de hacerlo pero me costaba el paso de ADO totalmente con código (con el cual estaba muy cómodo) a ADO.NET.  Con esto del Covid me tomé el tiempo de sentarme a entenderlo y ya he escrito todas las clases que necesito para que me sean sencillas las consultas y operaciones en las bases de datos. He visto la diferencia en la eficacia de las conexiones, eso sí me gustan todas las operaciones en las bases de datos por código y así procuré hacerlo en mi nuevo desarrollo.

En conclusión seguiré manteniendo a los clientes con los proyectos de VB 6.0 y empezaré a ofrecer mi nuevo proyecto apenas lo termine, que con suerte será pronto.

Ahora veo que será más fácil quizás aprender C# pero por ahora no lo veo necesario, lo primordial es explotar mi conocimiento del lenguaje para terminar el o los proyectos que se vayan dando.

Responder

Es triste que se abandone VB.NET su sintaxis me parece mas limpia que la C# (aunque no es más concisa, eso es cierto). Pero aún se puede hacer mucho con él, incluso para .NET CORE actualmente solo la parte web de vistas Razor no esta soportada, por eso planean dar soporte para WEB API (no usa vistas).

Responder

Hola a todos!  No sé si me van a responder por aquí, pero me encantaría que sea bien pronto.  Leí el artículo diciendo que Visual Basic muere por decisión de Micro$oft, justo cuando tengo muchas ganas de volver a programar con el idioma que me encantó por lo simple, directo y divertido que es.  

En los comentarios, dicen ustedes que se puede conservar VB... eso espero... ¿podré seguir creando cosas para siempre?  

Una de las cosas que más amo de VB es que me disparaba la imaginación.  Y recuerden que soy una persona grande ya.  

Pero también estaba pensando en cómo encontrarle la vuelta para programar con el maravilloso VB una página web... ya sé que es idioma de aplicaciones no web, pero siempre quise crear algo divertido con ese idioma y online, una aplicación web.  

Siempre vi a C y C# como idiomas muuuy complicados, de una curva de aprendizaje muy jodida como una montaña rusa con la cual vomitas desde lo alto a la gente.  

Si, ya sé, un poco gráfico, pero es para ilustrar mis sentimientos hacia lo complicado.  

Aparte, hace muuucho tiempo que no programo nada pero siempre hay ganas y más cuando me acuerdo de VB.  

No soy profesional ni vendo programas, siempre lo hacía antes como un pasatiempo y para ejercitar las neuronas, programar es como el ajedrez y te puede evitar la senilidad de la vejez.  

En fin, envío mis más sinceros y cariñosos saludos a todos, espero que me garanticen que se puede seguir con VB, diga lo que diga una empresa que tiene tantos tentáculos como Disney.  

Un abrazo grande y nos leemos!  

Octavio
Argentina

Responder

José Manuel Alarcón
José Manuel Alarcón

Hola Octavio:

VB no desaparece y siempre estará soportado en .NET "clásico" 4.8, que además viene con Windows y su soporte no va a desaparecer debido a eso. Pero como digo en el artículo no va a evolucionar y las nuevas tecnologías y funcionalidades de la plataforma pasarán por C#. Ahora bien, sigue siendo un lenguaje útil con el que se pueden hacer muchas cosas incluyendo la parte de servidor del desarrollo Web.

Por otro lado no estoy de acuerdo en que C# sea complicado. Es idéntico en casi todo a VB sólo cambia la sintaxis que no deja de ser más que "cosmética", pero por lo demás, no hay grandes diferencias. Si aprendes a programar para .NET lo complicado es la plataforma y sus conceptos. el lenguaje es casi lo de menos. Eso sí, las nuevas funcionalidades avanzadas, que sí pueden ser más complicadas, vienen para C#.

Saludos.

Responder

Mil gracias por tu respuesta!

Pregunto:  

Si dices que C# es prácticamente igual a VB,  ¿puedo hacer una página web con VB, al menos, en parte, o como VB, usando controles de la barra de herramientas de Visual Studio?  Y usando winforms? porque con programar visualmente es mucho más fácil para mí.  O sea, viste que con arrastrar y soltar, acelera mucho todo el proceso y te dispara la imaginación.  

En fin, voy a seguir investigando en internet, pero espero tus aportes a mis preguntas.  Aprovecho para hacerte una más y no molesto más (jaja):  

Si programo una página web en C#,  tengo la página principal, pero quiero abrir una ventana -sin salir de la página principal- al hacer clic en un botón de la página principal, como si fuera un programa,  ¿cómo se hace eso?  

Es que hace bastante tiempo he visto un documento de un sitio web de gestión documental electrónica y es impresionante... hacés clic y se abre una ventana, como si fuera un programa pero sin salir del "escritorio" de la página web principal, que es de un usuario, por caso.  

En VB programando un programa tradicional, hago MDI, pero la idea es hacer lo mismo pero en versión web.  ¿Me explico?  

Además, para trabajar voy usar el querido Visual Studio que es una maravilla.  

Bueno, te dejo pensar y espero tus comentarios.

Un abrazo!

Octavio

Responder

José Manuel Alarcón
José Manuel Alarcón

Hola:

La respuesta ala primera pregunta es que sí: da igual el lenguaje que uses. Ahí estás usando el framework.

En cuanto a la segunda, eso es Front-End necesitas usar HTML, CSS y JavaScript para lograr algo así. Todo lo que sea en el navegador se hace con eso y debes aprenderlo para desarrollo Web.

Saludos.

Responder

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.