Microsoft Plots the End of Visual Basic

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.”

Windows Intelligence In Your Inbox

Sign up for our new free newsletter to get three time-saving tips each Friday — and get free copies of Paul Thurrott's Windows 11 and Windows 10 Field Guides (normally $9.99) as a special welcome gift!

"*" indicates required fields

This field is for validation purposes and should be left unchanged.

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

Share post

Please check our Community Guidelines before commenting

Conversation 59 comments

  • irfaanwahid

    12 March, 2020 - 9:00 am

    <p>Paul, this is a very bad news!</p><p>I have been with VB for the longest time.. and developed plethora of apps all the way from College days to Enterprise.</p><p>I am already testing out Xml and C# but VB's demise is indeed very personal.</p>

  • maethorechannen

    Premium Member
    12 March, 2020 - 9:14 am

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

  • red77star

    12 March, 2020 - 9:23 am

    <p>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.</p>

  • wolters

    Premium Member
    12 March, 2020 - 9:34 am

    <p>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. </p><p><br></p><p>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. </p>

    • ronh

      Premium Member
      12 March, 2020 - 10:30 am

      <blockquote><em><a href="#530564">In reply to wolters:</a></em></blockquote><p>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. </p><p><br></p><p>I also wonder what is in store for VBA now.</p>

      • hrlngrv

        Premium Member
        12 March, 2020 - 10:53 pm

        <p><a href="https://www.thurrott.com/dev/232268/microsoft-plots-the-end-of-visual-basic#530573&quot; target="_blank" style="background-color: rgb(255, 255, 255);"><em>In reply to RonH:</em></a></p><p>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.</p>

        • wolters

          Premium Member
          13 March, 2020 - 10:19 am

          <blockquote><em><a href="#530774">In reply to hrlngrv:</a></em></blockquote><p>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. </p>

    • lvthunder

      Premium Member
      12 March, 2020 - 11:01 am

      <blockquote><em><a href="#530564">In reply to wolters:</a></em></blockquote><p>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.</p>

    • SvenJ

      12 March, 2020 - 1:40 pm

      <blockquote><a href="#530564"><em>In reply to wolters:</em></a><em> </em>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.</blockquote><p><br></p>

  • ass17

    12 March, 2020 - 9:39 am

    <p>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#.</p><p><br></p><p>Im sure VB programs will work for many years to come, so there is no rush at the moment.</p>

    • lvthunder

      Premium Member
      12 March, 2020 - 11:02 am

      <blockquote><em><a href="#530565">In reply to ass17:</a></em></blockquote><p>There are websites that you paste in VB code and it converts it to c#.</p>

    • Mike Brady

      13 March, 2020 - 9:16 am

      <blockquote><em><a href="#530565">In reply to ass17:</a></em></blockquote><p>Why rewrite just for moving to C#? Just do new things in C#. VB.NET is not going away, it's just not going to be developed further.</p>

  • brduffy

    12 March, 2020 - 10:05 am

    <p>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.</p>

  • martinusv2

    Premium Member
    12 March, 2020 - 10:24 am

    <p>The end of an era.</p>

  • rm

    12 March, 2020 - 11:37 am

    <p>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 "<span style="color: rgb(0, 0, 0); background-color: transparent;">simpler and more approachable scenarios" for developers. I guess simpler is a bad thing no days for any program.</span></p>

    • billreilly

      12 March, 2020 - 6:40 pm

      <blockquote><a href="#530579"><em>In reply to RM:</em></a><em> I agree!… </em>I still write all my applications using VB6!</blockquote><p><br></p>

    • eksortso

      12 March, 2020 - 11:43 pm

      <blockquote><em><a href="#530579">In reply to RM:</a></em></blockquote><p>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.</p>

  • wp7mango

    12 March, 2020 - 11:52 am

    <p>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.</p><p><br></p><p>What Microsoft should do now is open-source VB.NET</p>

    • SWCetacean

      Premium Member
      12 March, 2020 - 12:56 pm

      <blockquote><em><a href="#530583">In reply to WP7Mango:</a></em></blockquote><p>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). </p><p>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.</p>

      • hrlngrv

        Premium Member
        12 March, 2020 - 10:48 pm

        <p><a href="https://www.thurrott.com/dev/232268/microsoft-plots-the-end-of-visual-basic#530598&quot; target="_blank" style="background-color: rgb(255, 255, 255);"><em>In reply to SWCetacean:</em></a></p><p>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 <em>spaghetti code</em>.</p><p>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.</p>

    • Paul Thurrott

      Premium Member
      13 March, 2020 - 8:30 am

      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

        13 March, 2020 - 9:29 am

        <blockquote><em><a href="#530807">In reply to paul-thurrott:</a></em></blockquote><p>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? </p>

        • jmarolf

          14 March, 2020 - 6:19 am

          <blockquote><em><a href="#530813">In reply to WP7Mango:</a></em></blockquote><p>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.</p>

        • Paul Thurrott

          Premium Member
          14 March, 2020 - 9:05 am

          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.

  • ebnador

    Premium Member
    12 March, 2020 - 12:30 pm

    <p>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.</p>

  • train_wreck

    12 March, 2020 - 1:44 pm

    <p>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.</p>

    • Craig.

      12 March, 2020 - 9:45 pm

      <p>C#</p>

    • solomonrex

      13 March, 2020 - 7:39 am

      <blockquote><em><a href="#530634">In reply to train_wreck:</a></em></blockquote><p>Python is all I ever see, but I do data work.</p>

    • Paul Thurrott

      Premium Member
      13 March, 2020 - 8:23 am

      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

      13 March, 2020 - 9:08 am

      <blockquote><a href="#530634"><em>In reply to train_wreck:</em></a></blockquote><p>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.</p><p><br></p><p>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.</p><p><br></p><p>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.</p><p><br></p><p>However, I find the language to be a mess compared to C#.</p><p><br></p>

    • curtisspendlove

      18 March, 2020 - 8:07 pm

      <blockquote><em><a href="#530634">In reply to train_wreck:</a></em></blockquote><p>For just learning to program, I’d shoot for:</p><p><br></p><ul><li> JavaScript </li><li>Ruby</li><li>Python</li></ul><p><br></p><p>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. </p><p><br></p><p>You can start with desktop apps, but there are fewer good learning languages. </p><p><br></p><p>Honestly, if you do want to learn non-web stuff then I would suggest iOS:</p><p><br></p><ul><li>Swift</li></ul><p><br></p><p>If you hate Apple (or can’t afford an entry level Mac to do iOS coding), then of course Android is an option. </p><p><br></p><ul><li>Java</li></ul><p><br></p><p>But I don’t consider Java to be a good beginner language. </p>

  • sevenacids

    12 March, 2020 - 2:40 pm

    <p>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.</p>

    • wp7mango

      12 March, 2020 - 3:05 pm

      <blockquote><em><a href="#530654">In reply to sevenacids:</a></em></blockquote><p>I on the other hand know many people using it, including friends.</p><p><br></p><p>Although VB.NET is a bit more verbose than C#, I find it far more readable. </p>

  • TroyTruax

    12 March, 2020 - 3:12 pm

    <p>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.</p>

  • billreilly

    12 March, 2020 - 6:39 pm

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

    • sunco

      15 March, 2020 - 12:01 pm

      <blockquote><em><a href="#530714">In reply to billreilly:</a></em></blockquote><p>Try at least Visual Studio 2105 Community version. You will find is not that difficult </p>

  • fellippeheitor

    13 March, 2020 - 1:56 am

    <p>Well, they killed QBasic and now there’s http://www.qb64.org … let’s just hope the community picks VB up too.</p>

  • JimP

    13 March, 2020 - 7:39 am

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

    • Paul Thurrott

      Premium Member
      13 March, 2020 - 8:09 am

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

  • Mike Brady

    13 March, 2020 - 8:58 am

    <p>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. </p><p><br></p><p>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.</p><p><br></p><p>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.</p>

  • maethorechannen

    Premium Member
    13 March, 2020 - 9:42 am

    <blockquote><em><a href="#530568">In reply to Shmuelie:</a></em></blockquote><p>A lot of those languages listed as "current" haven't been updated for several years.</p>

  • kenneth_burns

    13 March, 2020 - 8:09 pm

    <p>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.</p><p><br></p><p>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.</p><p><br></p><p>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.</p>

    • Paul Thurrott

      Premium Member
      14 March, 2020 - 8:45 am

      Hear, hear.

  • gilstrac

    13 March, 2020 - 9:22 pm

    <p>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.</p><p>I moved straight to C# didn't really bother with vb.net unless I had too and the biggest had to was vb devs on a team that only wanted to do vb.net. 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.</p><p><br></p><p>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.</p><p><br></p>

  • lsta

    13 March, 2020 - 10:45 pm

    <p>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.</p><p><br></p><p>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.</p>

    • Paul Thurrott

      Premium Member
      14 March, 2020 - 8:34 am

      Thanks. I think it’s not sensationalistic at all. They are giving up on VB.

  • sunco

    15 March, 2020 - 12:12 pm

    <p>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)</p>

  • vanceleemeurer

    18 March, 2020 - 1:37 pm

    <p>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.</p>

    • Paul Thurrott

      Premium Member
      19 March, 2020 - 7:06 am

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

  • xemmex

    12 April, 2020 - 4:17 pm

    <p>What about ASP Classic? Will it disappear at the same time?</p>

    • Paul Thurrott

      Premium Member
      13 April, 2020 - 8:08 am

      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.

  • JimP

    30 December, 2020 - 9:03 am

    <p>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.</p>

  • cristianlt

    05 May, 2021 - 11:28 am

    <pre class="ql-syntax" spellcheck="false">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!
    </pre><p><br></p>

    • Paul Thurrott

      Premium Member
      06 May, 2021 - 10:05 am

      Probably closer to 4. 🙂

Windows Intelligence In Your Inbox

Sign up for our new free newsletter to get three time-saving tips each Friday

"*" indicates required fields

This field is for validation purposes and should be left unchanged.

Thurrott © 2024 Thurrott LLC