Microsoft Plots the End of Visual Basic

Posted on March 12, 2020 by Paul Thurrott in Dev, Windows with 51 Comments

Microsoft said this week that it will support Visual Basic on .NET 5.0 but will no longer add new features or evolve the language.

“Starting with .NET 5, Visual Basic will support Class Library, Console, Windows Forms, WPF, Worker Service, [and] ASP.NET Core Web API … to provide a good path forward for the existing VB customer who want [sic] to migrate their applications to .NET Core,” the .NET team wrote in a post to the Microsoft DevBlogs. “Going forward, we do not plan to evolve Visual Basic as a language … The future of Visual Basic … will focus on stability, the application types listed above, and compatibility between the .NET Core and .NET Framework versions of Visual Basic.”

When Microsoft released the .NET version of Visual Basic, originally called Visual Basic .NET, alongside C# at the beginning of the .NET era, the two languages were evolved together and had roughly identical feature sets. But this changed over time, with professional developers adopting C# and many fans of classic VB simply giving up on the more complex but powerful .NET versions of the environment. Today, virtually all of Microsoft’s relevant developer documentation is in C# only, with VB source code examples ever harder to find.

Worse, Microsoft in 2017 announced that its original C#/VB co-development strategy was over. Only C# would get all of the new features, while VB would focus on the simpler and more approachable scenarios that it once dominated. But that never really happened, and Microsoft effectively abandoned VB. This week’s announcement just makes it official.

What this means to VB developers is that they might be able to bring their existing codebases forward to .NET Core or, soon, to .NET 5.0, which will replace both the traditional .NET and the open-source and cross-platform .NET Core when it’s released in late 2020. The issue is that not all legacy technologies will be supported going forward, so developers using WebForms, Workflow, or Windows Communication Foundation (WCF) will need to stick with classic .NET. Those applications will continue to work and be supported until the underlying Windows versions are retired; classic .NET support life cycles are tied to the Windows versions on which they were initially deployed.

Microsoft also notes that VB developers will occasionally benefit from improvements to Visual Studio.

“Visual Studio regularly adds new features to improve the experience for developers, including those using Visual Basic and either .NET Core or .NET Framework,” the .NET team adds. “An example is the recent addition of IntelliCode for Visual Basic.”

This is a sad day, and one that hits me personally. I started my writing career with Visual Basic 3, went on to write several books about VB and its various variants, and most recently wrote an entire Notepad clone called .NETpad in Visual Basic, Windows Forms, and the .NET Framework.

Tagged with

Join the discussion!


Don't have a login but want to join the conversation? Become a Thurrott Premium or Basic User to participate

Comments (51)

51 responses to “Microsoft Plots the End of Visual Basic”

  1. irfaanwahid

    Paul, this is a very bad news!

    I have been with VB for the longest time.. and developed plethora of apps all the way from College days to Enterprise.

    I am already testing out Xml and C# but VB's demise is indeed very personal.

  2. Mike Brady

    Back in 2001 I started learning .NET using VB.NET because Microsoft indicated that VB.NET was going to be the primary language for most enterprise application developers. That didn't pan out! Luckily, my first .NET job in 2002 turned out to be C# instead.

    Switching was trivial. I think the curly braces scared VB programmers more than it should have. It may have looked like C at first glance, but nah. I did some C programming at work for a couple of years (shudder - never again!), C# is more like VB.NET than C.

    Going forward, I really don't see why someone would want to stick with VB.NET for new projects. After a week or two of struggle of re-orienting your brain with the different syntax, you'd see that the differences between the two languages are mostly stylistic.

  3. sevenacids

    I think it's inevitable. I guess the user base must be pretty small right now. I'm a developer and I don't know anybody who is using Visual Basic these days, not even the friend of a friend.Personally, I never liked the language. If you look at its syntax, Visual Basic is too verbose and I think it doesn't appeal to the current generation of developers.

  4. TroyTruax

    In my current position I work on a program that started out as a VB 6 desktop app back in the day, was moved to classic ASP (which as you may recall used VB syntax). I moved it to ASP.Net after that was introduced and it's been maintained ever since. Since you can perform any task in VB that you can in C# I've never been motivated to rewrite it.

  5. billreilly

    I still write all my applications using VB6, and I will continue to for as long as it still works!

  6. fellippeheitor

    Well, they killed QBasic and now there’s ... let’s just hope the community picks VB up too.

  7. JimP

    Ha! The screenshot is of VB4, the least popular and stable of all time for VB. I wonder if that was intentional?

    • Paul Thurrott

      Not sure why you think it was unpopular or unstable, but I chose it because I had a shot of it.
  8. maethorechannen

    In reply to Shmuelie:

    A lot of those languages listed as "current" haven't been updated for several years.

  9. train_wreck

    So what would you recommend as a decent “beginner” language? Python would probably be a good choice I suppose, and I know a fair number of colleges/online courses teach it.

    • solomonrex

      In reply to train_wreck:

      Python is all I ever see, but I do data work.

    • Paul Thurrott

      Honestly, with VB having long since ceded this roll, there's nothing that good/simple/approachable anymore. So the conversation kind of turns a bit towards, what's the *best* language to learn, even if you're a beginner? And those choices aren't as "good" as VB was: JavaScript, of course. Python. C#. Etc. But they're guaranteed to be around for a long time and fully supported with tons of documentation and subject experts online who can help.
    • Mike Brady

      In reply to train_wreck:

      I depends on what you're going to do, but I recommend C#. You don't have to learn *everything* about C# to get started writing applications.

      People say that Python is a good beginner language. While it's easier to write "Hello World" and simple programs in Python, I find that it gets quirky really fast once you start doing more intermediate work -- especially having to do any object-oriented programming.

      I use some Python, a little at work and more at home for hobby stuff. I like how there are so many libraries for doing things and if you can't figure something out, there are lots of answers to be found online -- which is great.

      However, I find the language to be a mess compared to C#.

    • curtisspendlove

      In reply to train_wreck:

      For just learning to program, I’d shoot for:

      • JavaScript
      • Ruby
      • Python

      I’d recommend to start learning using some sort of web project. It is much easier to get a decent web app up and running nowadays.

      You can start with desktop apps, but there are fewer good learning languages.

      Honestly, if you do want to learn non-web stuff then I would suggest iOS:

      • Swift

      If you hate Apple (or can’t afford an entry level Mac to do iOS coding), then of course Android is an option.

      • Java

      But I don’t consider Java to be a good beginner language.

  10. kenneth_burns

    My first job out of college in 1993 was at a small IT and software consulting firm. I had no formal education in technology but lots of interest, and my boss liked to hire liberal arts graduates from the neighborhood university and train them.

    After five years I left that job to pursue completely different career paths in academics and then journalism, but I'm glad I had the opportunity to learn coding in various high-level environments, including Delphi, Access, FoxPro and especially VB. I mainly did RAD on the firm's demo projects, and I thought it was amazing that an English major shnook like me could use VB 3 and Access 2 to create real live Windows applications.

    I have continued as a hobby programmer to this day, and whenever I do a project it's always in VB (and Windows Forms). In terms of technical know-how I'm at most a power user, but I love that all these years I'm still using good old VB to have fun and solve problems. Here's to VB.

  11. gilstrac

    I have done vb off and on since the 90s. Some of the pieces of the larger systems still have vb6 hanging off of them doing something unique.

    I moved straight to C# didn't really bother with unless I had too and the biggest had to was vb devs on a team that only wanted to do You got to harness that enthusiasm. There were some things it could that c# didn't in the beginning. But I get it, I developed my coding skills on C so C# felt like a closer relative and was like coming home for me. But in the end to me it is just a pro/con choice so I have always been relatively indifferent what is used as long as you can live with the cons.

    One thing I will say, I still to this day don't know of an environment/language I can get less experienced developers contributing as fast as on the old VB. I know I will get flamed. But I have been doing this a long time and worked with so many different languages and dev environments on some many projects. I just have not seen the same velocity from zero for any other setup to date. I have seen many make the promise but I have yet to see the promises delivered. And I get to relive this truth over and over when I have to saddle some newbie with updating or enhancing one of those old vb6 systems.

  12. lsta

    Paul, I think your headline is too sensationalist. Microsoft plots the end of VB.NET would be closer to the truth. What’s necessary would be to unambiguously point out that Microsoft is not eliminating Visual Basic for Microsoft Office apps and that Microsoft has and will likely continue working on tools to port C# code to VB.NET and vice versa. Freezing VB.NET features makes such tools a bit easier to build, actually. I guess where I’m going with this is it doesn’t cost Microsoft that much to maintain VB.NET for as long as a Common Language Runtime is necessary. (F#, IronPython, etc.) The end of VB.NET will likely be “end of support” rather than “end” because everything will be open sourced. If we’re lucky, by the time VB.NET goes Community-Maintained, we’ll have an Open Source core to Visual Studio and then new features could be added to VB.NET as community-maintained additions. This assumes a VB.NET community exists willing to add and define and ship such features in the open, of course. Programming languages, like regular languages, only die when people stop using them.

    Note: If you want a more sensationalist headline for developers, and they say VB.NET is holding back C#, then that possibly means the Common Language Runtime is going C#-preferred-all-others-play-catch-up. If so, this could spell good news for more externally maintained languages like F# which always had to do hacks to get the CLR to bend to its will. It might mean the end of a Common Language Runtime in favour of a C# Language Runtime that other languages happen to support or target at a more basic level unless individually optimized to take advantage of new C# constructs and additions.

  13. sunco

    Paul, try Visual Studio 2015 or 2017 C#. I am 100% VB for desktop but couple of years ago, at beggining of Windows Phone, I created 4 apps and publish them. The thing is VB docs for stuff related to WP was very small compared with C# so I tried and was not that hard. All my 4 apps was C#, one of those a very small game (searching, my apps are still in marketplace under sunco name)

  14. vanceleemeurer

    What about VBA? As long as O365 apps are still using VBA I don't see the end for VB generally. Maybe Paul or Mary Jo could ask Microsoft what their plan is to replace VBA with C# or other modern language.

    • Paul Thurrott

      Haven't they already moved the Office extensibility model to web technology? I assume that is the future.
  15. xemmex

    What about ASP Classic? Will it disappear at the same time?

    • Paul Thurrott

      I'm not sure of the schedule on ASP, but yeah I'd imagine it's on the way out if it isn't already out of support. This is 20 year old web tech, there's no real place for that today.
  16. JimP

    It is a sad day. It's even sadder given that since VB.NET compiles to IL, it can't be too hard to continue to update the VB.NET compiler to support whatever C# adds.

  17. cristianlt

    My logistics is quite simple!
    C # for me is a complement to VB.NET.
    I always use VB and C # where VB cannot reach.
    Result: I don't need C # for months
    Maybe 40 years from now I should really be concerned!

  18. maethorechannen

    Besides F#, are there any alternatives to C# for .Net development left?

  19. red77star

    This is a of no surprise. Traditional .NET won't be replaced in the next 15 years at least and as far as .NET 5.0 goes, I skipped whole MVC, .NET Core thing because it was nothing but moving target. .NET 5.0 around C# is supposed to align everything together, the time will tell. Frankly .NET 3.1 for Web Development and Web API is awesome but would never use to build desktop applications. Stick with C/C++ as far as that goes.

  20. wolters

    This is sad...VB 6 is where I first started dabbling in programming for the first time since the Commodore 64 days. I made a point/click text adventure and it taught me so much on handlers.

    And I know it is common to say VBA isn't VB, but I wonder what this bodes for VBA in Office products? VBA, while messy, is our best friend here at work as it helps expand and customize our applications.

    • ronh

      In reply to wolters:

      I also started with VB6. Now that I am retired, I do a lot of Excel Macros with VBA. It is amazing what you can do with it.

      I also wonder what is in store for VBA now.

      • hrlngrv

        In reply to RonH:

        In 2 years I'll have 3 decades writing VBA code. If you think it's good, I invite you to try Google Apps Script with Google Sheets. The IDE is a joke, but the Javascript-like language makes some things better. Admitted subjective.

        • wolters

          In reply to hrlngrv:

          Do you have any suggestions on a definitive book or Udemy class on VBA? IT Director (and SOLO IT Person), I've struggled getting a full grasp of our heavy VBA environment with everything else I do here.

          • hrlngrv

            In reply to wolters:

            Books on VBA? Using it, or managing it? I've only read books on Excel VBA. The object models differ considerably between Office programs. For managing VBA, that can be done by using the object model for the VBA Editor itself, but I'm not aware of any books which cover it.

    • lvthunder

      In reply to wolters:

      They haven't changed VBA in Office in years. Just launching the VBA environment you can tell it hasn't been touched in ages. I wish they would remove the IDE and let you use Visual Studio or Visual Studio Code instead.

      • hrlngrv

        In reply to lvthunder:

        I disagree. Sometimes simpler and lighter are preferable for some. I really don't need a macro and UDF development environment which uses more disk storage than Office itself.

    • SvenJ

      In reply to wolters: VBA is sort of essential in doing anything worthwhile in Access. I know you can go a long way with Macros, but you can certainly go a lot farther with a little VBA.

  21. ass17

    I personally don’t have an issue with VB going, but what I would want Microsoft to do is some sort of converter. I don’t have time to rewrite all my projects to C#.

    Im sure VB programs will work for many years to come, so there is no rush at the moment.

  22. brduffy

    I started with VB in 94 after we moved to it from FoxPro for Dos :-D. So, its pretty much what I cut my teeth on as a professional programmer. So kind of sad in a nostalgic way, although I moved to C# as soon as it came out and never looked back.

  23. ebnador

    There are some high end financial functions that are only in VB or Excel. They are very hard to re-create in other languages, I hope Microsoft open source those math library's so they can be ported to other languages.

    • hrlngrv

      In reply to ebnador:

      If those functions are numeric, odds are high they've been implemented in FORTRAN, MatLab and R. Certainly anything involving adaptive Gaussian quadrature has had FORTRAN implementations going back to the 1960s.

  24. martinusv2

    The end of an era.

  25. rm

    I did a lot of VB 6 coding, it is still an easier language than any version of VB .net to program in. They should go back and advance VB 6 if they want language for "simpler and more approachable scenarios" for developers. I guess simpler is a bad thing no days for any program.

    • billreilly

      In reply to RM: I agree!... I still write all my applications using VB6!

    • eksortso

      In reply to RM:

      There is no shortage of easy-to-use languages, assuming you just use essential functionality in the ones you learn. However, I can't assume that a dedicated VB6 developer still takes time to learn new things. Points for productivity, but a net loss when losing out on more efficient and intuitive methods found in modern languages.

  26. wp7mango

    Shame really. I code in both C# and VB.NET and I never understood why C# was preferred over VB. Although VB is more verbose than C#, I found VB to be far more readable and not case sensitive, thus making it far easier to maintain code.

    What Microsoft should do now is open-source VB.NET

    • SWCetacean

      In reply to WP7Mango:

      VB seems to me to be from a different era. As a young programmer who started in Java around 2010, VB is foreign and almost archaic to me. The syntax reminds me of Bash scripting, which I absolutely loathe. C# on the other hand is very similar to C and Java, and has the advantage of being very familiar, while also avoiding the pitfalls of C and Java (which is expected given that C# is much newer than the others).

      In my experience, the current crop of programmers are trained either in cross-platform/web environments, or in Linux environments. At university, I never learned any Microsoft language or platform (except for a single project that included C# as part of a "write this thing is 12 different programming languages"). It was all on Linux, and mostly in C. I think VB was a casualty of the shift away from Microsoft platforms in schools/colleges over the last 15 years. Since people are already familiar with C-like languages, they will prefer using the C-like C# over the substantially different VB.

      • hrlngrv

        In reply to SWCetacean:

        I've been using compiled BASIC and VBA since the late 1980s (OK, VBA since the early 1990s). If you think the structured forms of BASIC are archaic, you should try BASICA from the early 1980s which required line numbers and was the language which produced the term spaghetti code.

        If I could, I'd use R-like languages for everything I do. I can live with some F# (or ocaml under Linux) and Python. MatLab never thrilled me, nor Mathematica. Should be clear from this that I seldom if ever do UI programming, so mine are rather skewed opinions.

    • Paul Thurrott

      One thing I heard since this announcement was that the initial problem with VB.NET was that because it was literally identical to C#, it held back both languages. They just had two things that did the same thing. So as time went on and more and more people adopted C# over VB, its fate was sort of sealed. They made VB.NET for good reasons, but the combination of abandoning the enthusiast/amateur audience from before and having a more "professional" C-like language ended up being its downfall. I will always have a soft spot for VB.
      • wp7mango

        In reply to paul-thurrott:

        Do you think Microsoft would open source VB.NET now that it's officially being dropped? I can't think of a good reason why not. Maybe you have some insider info on this?

        • jmarolf

          In reply to WP7Mango:

          VB.NET _is_ open source. Literally everything from the compiler to the runtime, even the Visual Studio integration pieces has been open sourced for years.

        • Paul Thurrott

          Sorry, not sure. Someone else mentioned that it was technically open source. I don't see it going away anytime soon. But the issue is whether it is every materially improved.