Visual Basic support planned for .NET 5.0

.NET Team

.NET Team

We’ve heard your feedback that you want Visual Basic on .NET Core. Earlier versions of .NET Core supported Class Library and Console applications types. Starting with .NET 5 Visual Basic will support:

  • Class Library
  • Console
  • Windows Forms
  • WPF
  • Worker Service
  • ASP.NET Core Web API

We are supporting these application types to provide a good path forward for the existing VB customer who want to migrate their applications to .NET Core. This allows Visual Basic customers to take advantage of new platform features like side-by-side deployment, cross platform support, performance and new API improvements.

One of the major benefits of using Visual Basic is that the language has been stable for a very long time. The significant number of programmers using Visual Basic demonstrates that its stability and descriptive style is valued. Going forward, we do not plan to evolve Visual Basic as a language. This supports language stability and maintains compatibility between the .NET Core and .NET Framework versions of Visual Basic. Future features of .NET Core that require language changes may not be supported in Visual Basic. Due to differences in the platform, there will be some differences between Visual Basic on .NET Framework and .NET Core.

If you are happy with .NET Framework, you can be confident that it will remain supported as long as Windows is supported because it is shipped with the OS. Both Visual Basic and C# customers can continue to use .NET Framework and need to port to .NET Core only if you want features like those listed above. If your application uses technologies that aren’t supported on .NET Core, like WebForms, Workflow or WCF, you might want to stay on .NET Framework because porting will require work to move to newer technologies.

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

Visual Basic is a great language and a productive development environment. The future of Visual Basic will include both .NET Framework and .NET Core and will focus on stability, the application types listed above, and compatibility between the .NET Core and .NET Framework versions of Visual Basic.

118 comments

Leave a comment

    • Edward A
      Edward A

      This is an absolute fiasco. Trillions of lines of code supporting billions in economic activity is using vb. Net.
      How can Microsoft break their promises over and over again and fail to update and maintain their closed source technology?
      Have they considered that this will negative impact the careers of thousands of developers?
      They still refuse to open source vb6.
      The message Microsoft is sending is crystal clear, they are completely unreliable and incapable of maintaining any technology long term. There is zero reason to trust this closed source behemoth that will casually destroy billions of hours of work that thousands of developers have put into successful projects.
      Microsoft has enough money to pay out billions in dividends and share repurchases but apparently zero dollars to continue to work on one of the three. Net languages.
      It’s as if they forget that’s it’s us that keeps their business going.
      In some measures of language popularity and usage, vb. Net ranks higher than C#.
      Of course my company is going to abandon Microsoft products and I’m going to instruct everyone I know to do the same.

      • Avatar
        Tsahi

        Any developer who can’t switch a language is not worth his salary.
        Also, VB.NET (unlike VB6) is nearly 1-to-1 convertible to C#, using automated tools. If I were you, I would make the conversion, learn the semantics of C#, and move on. Technologies change, software engineering principles are the same. And the bonus, you’ll wear your your keyboard much less, with the concise syntax of C#.

    • Avatar
      David

      It might change ten more times by the end of the year. I guess the digital version of “build” this year will show their plans in more detail (or by absence of anything vb.net related) but it might be interesting in that, being forced to be a digital conference this year, the developers who go in person will mix more with the people that normally can’t go (forums etc) – this will give a never seen before mix of people from professionals to hobbyists in one location. The amount of vb.net chatter could influence Microsoft. Yes we all want to see “Microsoft will make vb.net the same/better than C#” but that’s never going to happen due to legacy inside vb.net.

    • Avatar
      Wolfgang Reh

      Me too. I am using it all the time and prefer it to C#.
      C# becomes more and more unreadable with new features which are not that useful. These days changes in C# are always trying to reduce the amount of lines needed which unfortunately makes any code much harder to read. I love VB.NET because it’s so easy to ready and the quality of code you can write is as good or bad as any other language. Microsoft please rethink that !!!

  • Kamal Safa
    Kamal Safa

    Do Microsoft know that a very big part of non-professional programmers prefer to use VB.NET among any other platform? I work in the civil engineering field and i can affirm that applications, add-ins, entensions, etc… are very largely coded with VB.NET.
    The problem is that since we do not work as professional coders, we are absent from forums and blogs. This gives the impression that the audience of VB.NET is smaller. Neither Python nore Java are replacements for VB when it come for structural, mechanical and civil engineers coding-dilettantes. VB uses a user-friendly syntax which, combined to Visual Studio interface, allows to produce effortlessly applications even from beginners. I am a fervent Microsoft defender and customer. I discovered Basic when i was 14 years old, and although i know Java, i don’t see any reason for non-professional programmers to use any other language. Long Life VB.NET, the unknown soldier.

    • Avatar
      David

      I’m assuming visual studio has telemetry and Microsoft knows exactly how many developers use vb.net 🙂 but for forums and blogs there is no exclusionary club that prevents anyone blogging or joining forums, vb.net language GitHub etc. if we’re absent, then I can only look to the developers and say “you’re voice can only be heard if you speak up”

      vb.net is going to be around for a very long time. worse case scenario, Microsoft ditches it in 5 years (never going to happen) and the open source community will take it on – it’s a win win scenario.

    • Avatar
      Sean Thorpe

      They can see at the Tiobe Index and other indexes of language usage the popularity of VB.
      They also know they can’t kill off VBA in the Windows version of Excel. (I just had to do some “quick” macros in Excel, and I actually thought about their new JS API, but then I thought, “I need this done NOW, not next week.” So it was way more practical to use VBA.)
      I thought it completely foolish in the early 2000’s when they idealistically trashed all the VB experience of people, and with the idealistic developer mobs started shaming and hating on anyone preferring VB over their new love-child C#.
      Anyways, this is good news. I was thinking of going back to VB.

      • Avatar
        Chris Pratt

        Most of those indexes are garbage, especially Tiobe. It gauges popularity based on search. With a language like VB, community support is next to nil, and most VB programmers are amateurs who need more help than others. Those two things combine to make the likelihood of people searching for how to do something in VB much more than C#, for example.

        The Stack Overflow annual developer survey is probably the most indicative, because it actually asks people to not only note which languages they use, but also which they want and don’t want to use. Every year, VB ranks bottom of the pack for desire.

        There’s definitely some use cases where VB is the answer (Office macros, etc.), but it is not a modern language, and should not be being used in modern app development scenarios. If you consider yourself to be a professional programmer and aren’t working on one of the VB niches, you should be moving on to C#.

        • Avatar
          Zehev Spitz

          It is essential to realize that VBA/VB6 is not VB.NET. While (as you noted) there are some places where VBA is the answer, and there is no other ubiquitous and compelling option; there isn’t really any place where VB.NET is the one best choice — everything that can be done in VB.NET can also be done in other .NET languages. The decision to use VB.NET comes down to a subjective personal preference — “How do I know which block this end curly braces belongs to?” vs. “My English IsNot Written Like This Then Why Should My Code Be?” Note that the reverse is not true — other .NET languages each bring unique capabilities to the table which VB.NET doesn’t have, and the decision to use them is more concretely justifiable. (For my part, if I have to currently choose between C# and VB.NET, I would choose C# for pattern matching and nullable reference types.)

          I think that VB.NET has been so busy maintaining parity with C# that it hasn’t had a chance to create a “killer app” scenario. And now that officially VB.NET is not moving forward, it never will get that chance.

          NB. I disagree with your contention that most VB programmers are amateurs who need more help than others. A VB programmer with any experience quickly becomes skilled in translating C# code and samples available online into the equivalent in VB.NET, simply because there is a dearth of such resources for VB.NET. And perhaps by the same token, it’s much easier to find collections of tutorials and samples in C#; once the amateur programmer finds such a collection, they’ll make use of the collection instead of searching further.

        • Avatar
          Brandon Stewart

          @Chris Pratt,
          I see you in a lot of forums and posts about VB. Are you one of those people who just seek such posts out so that you can make negative comments about it because you personally do not like it? Here’s a thought… if you don’t like Visual Basic, then just don’t use it. Life really is that simple. No, really, it is. You could be spending that wasted time on something more productive and more fun other than bashing something which multitudes of others do like and find extremely useful. Other people using VB doesn’t do anything to hurt you. It doesn’t hold you back or cost you money. As far as the myth that VB programs are mostly bad code, I promise you I can show you just as many poorly written apps in C# as in VB. It is the user who makes a bad product – not the tool being used. I mean, seriously, Dude… it’s almost like someone is paying you to troll forums and blogs to bash VB.

        • Avatar
          Peter Ingemann Hansen

          “There’s definitely some use cases where VB is the answer (Office macros, etc.), but it is not a modern language, and should not be being used in modern app development scenarios. If you consider yourself to be a professional programmer and aren’t working on one of the VB niches, you should be moving on to C#.”

          This is pure bullshit.
          I partly agree about VB.NET being a modern language but Microsoft is to blame for that. VB.NET has showed its worth for ages and has showed that it can be implemented in modern frameworks etc. The only reason it’s lacking behind is that Microsoft loves its own spoiled brat C#, and would love to see VB.NET die. So they strip down its functionality and hope that people would move to C#.
          So it isn’t about ‘if you consider yourself a professional programmer’. VB.NET is just as great as C#. There are no religion better than any other and you’re missing the focus if you think that you’re right. VB.NET has exactly the same potential as C# – it’s just about whether or not Microsoft wants that potential to be released. And as for now it seems they don’t. That doesn’t make the language outdated.

          I’ve been using VB.NET for ages. I read and write C# very well. But my brain just loves VB.NET way more than C# and that is how it should be: you should be able to choose what flavor you would want instead of having Microsoft deciding for you. Friends have laughed at me. But when I tell them that both C# and VB.NET can do the exact same they just walk away because I didn’t accept their premise. You have to accept that just as how much you love C# for whatever reason there are people out there that love VB.NET as well.

          • Avatar
            Zehev Spitz

            I think it’s a little (to say the least) simplistic to say that Microsoft loves C# and hates VB. But it is important to realize that shipping C# is what enables entire .NET ecosystem; and if C# ships late, the entire framework has to hold off. As I understand it, because C# and VB are structured together within the Microsoft hierarchy, there is no single group tasked with VB advocacy; and the individual team members consistently get pulled of for other C#- or .NET-related tasks. If Microsoft were to form such a team, or perhaps an outside working group would be formed with the same function, VB.NET would be able to advance.

        • Radu Popa
          Radu Popa

          “Modern” fades, they come and go.
          The term “modern”, while it attracts the drooling crowd, has no actual value. Instead, you should be specific and state where did you try to use Visual Basic (if ever) and found it inferior to C#, as a language.
          And if you think that adding “professional” in your sentence makes you look smarter, you’re wrong. You just alienated all the Python programmers, most of whom might not be “professional” developers (according to your standards) but, using Python, they can easily achieve things you could only dream of.

          A programming language is a tool. A good tool should help you do the job easily and quickly and move out of your way.
          Visual Basic has been meeting those goals better than C# for most programming tasks in this world.

          Why are so many C# devs so afraid of Visual Basic?
          Anthony D Green said it best here and here. Instead of worrying about VB haters, we better rally together, possibly start at Anthony D Green’s excellent blog.

      • Avatar
        fernando ricci

        ho iniziato con il gwbasic per poi passare a VB e continuo ancora a programmare con vb6 ma le difficolta sono per il pc a 64 bit, perchè la MS non modifica vb6 per il 64 bit? è inutile cambiare il vb con altre versioni alla 8 alla 10 ecc… non è possibile reiniziare sempre da capo ogni volta.

  • Avatar
    Juan Tapia

    A great decision, Python was filling the empty space that VB.NET started to leave. It has always been an easy language to learn, and fast and productive to program business applications.
    For everything else there is C #, or for almost everything.
    Great news for the community, hopefully they empower VB.Net as an alternative to Python.

  • Avatar
    Johan Visser

    I propose that with .NET 5.0 you rename Visual Basic to B#
    For a lot of developers (and managers) the Visual Basic name is a bit contaminated.

    B# fits more in the line of current languages (C#, F#, Q#) and it sounds cool ‘Be Sharp’

    • Avatar
      Chris Pratt

      The problem is the language, not the name. VB is virtually primitive compared to languages like C#, and the syntax structure prevents it from growing beyond where it’s at. To promote it to the same level as C# or F# would require that it keep it lockstep with functionality in those languages and it’s fundamentally incapable of doing so. This isn’t an optics issue. VB has the reputation it has for actual reasons.

      • Avatar
        FrozenIcE _

        Primitive is perhaps a bit an overstatement. I don’t see how its syntax structure prevents it from growing at all. There are very few things C# has that VB doesn’t, and it’s not because of the syntax, but because Microsoft chose a few years ago to stop focusing on VB.

      • Avatar
        Taiwo Ayedun

        It isn’t true that VB’s “syntax structure prevents it from growing beyond where it’s at”.

        VB and C# are both procedural languages and are, therefore, structurally similar, except for syntax; there is nothing that can be implemented in C# that can’t be implemented in VB.NET.

        The issue is simply a lack of devotion of resources to taking VB.NET forward.

      • Avatar
        Nicholas

        Who is Chris Pratt. Are you really a programmer. If yes is C# the only language you have ever programmed in or what. I have done C++, Java, C#, Python and VB.net. If not i will really be surprised as you are speaking about the syntax of vb.net being the limiting factor as to why it is lacking behind and that it is primitive. I can’t believe a “supposed programmer of your caliber” will be speaking like that as i don’t expect even a 1st year university student to be speaking of syntax structure as the cause of limitation in the design of a programming . If that is the case what will you say of Python then???

        It looks like folks who think like you are paying you to keep trolling vb.net. so Microsoft will ditch it for c#. I am sure you have buried you head in the sand and will doubt if you have or will ever read Anthony D. Greens articles concerning the issues at Microsoft that has led to the state vb.net finds itself now.

        I can only say “Shame on you”.

      • Avatar
        George Hubers

        Chris, If you see VB as being primitive when compared to C# then you have no real idea how the two compare. I’m working through a book ‘Pro C#’ to brush up on some of the newer features in .Net. I translate the samples to VB and have yet to run into anything that couldn’t be done with VB (the only issue I’ve had was with Serialization because VS 2019 didn’t have the SOAP Formatter but it worked fine with VS 2017). Over the years I’ve worked with C, C++, C#, Java and others but I always come back to VB. VB just has a better feel to it. When I look at the code in the C based languages I can see what it’s doing. When I look at VB code it tells me what it’s doing.

    • Avatar
      Steele Price

      NO!
      B# should be a completely new language “based” on VB.Net with massive breaking changes enabling it to move forward with .Net Core.
      This was the same fight from VB to VB.Net 20 some years ago. In that case we needed/wanted object orientation.
      If backward compatibility is the “problem” B# can fix that and be a parallel to C#, F#, Q#… R#?
      Then again, you might just have yet another mess and fight to contend with and here we are.

  • Avatar
    stelios .

    I did not clearly understand the post.
    From one side it said that is stable and use by many developers and will be supported in .net core
    But from other side said that
    Going forward, we do not plan to evolve Visual Basic as a language.”

    Can anyone in simple words explain if we can continue feel comfortable with VB.NET ?

    Shall we forget and start turning to c#?

    • Avatar
      David

      Stay with VB.net, they are talking about language features, not compiler or .net core

      for example:-
      vb.net feature = for each x in y
      compiler feature = await sub()
      .net core feature = task.run
      WinUI feature = Image controls

      • Avatar
        stelios .

        Thank you David but is little not comfortable to know that c# is “eternally” live and other side feeling scared whenever Microsoft end vb.net
        (Keeping it alive yes, but not improvements)?
        (Ok,VB.NET 2 years on the stage or 3,4 doesn’t matter) but what next..

        From other side
        C# developers not afraid or worry about the language support, improvements, new features etc.

        By thinking this way it makes me feel like they trying to abandon VB.NET ?

        Unless i misunderstood something

        Isn’t that worth to worry ?

        Thank for your reply.

    • Avatar
      Chris Pratt

      The message is basically the same as with WinForms and WPF, etc. Microsoft brought support forward into .NET Core to give developers a way to port existing apps with little to no code changes. However, you should not today start a brand new app based on WinForms. It’s the same message with VB. They’re going to support it just enough to port existing VB apps, but you should not be building brand new apps in VB.

  • Avatar
    David

    This is great news, let’s look what this actually means:-

    * WPF/WinForms fully supported in .net core 5.0 – this is what we wanted – Microsoft gets 5 stars and a whoop whoop 🙂
    * We get full .net core support, a bit late, but the my namespace and visualbasic.dll were a lot harder than thought – Microsoft gets 4.5 stars
    * VB.net doesn’t get new features (from 2021?) – that’s okay, I want new features, but it’s a complete language – Microsoft get 4 stars – remember, these are language features, not framework or compiler features
    * If (stressing if) .net core breaks language support with a new feature, vb.net might (stressing might) not support that feature. – Microsoft gets 5 stars – (swift might replace C#, stressing might)

    So vb.net has a great future, full .net compatibility for at least two years and then it might not be able to access the odd new breaking feature in .net core – if and when that happens and I absolutely need that feature then I can create a C# library for just that – not a big deal, and at that point maybe i’d look at changing languages.

    And in those two years, things may change, they have done many times.

    Thanks for the clarity .Net Team.
    Duckhead Software

        • Avatar
          Zehev Spitz

          Pattern matching is a more powerful way to test conditions and extract information when the condition passes — it’s purely a language feature. And unless the CLR’s type system will undergo a radical change, reference types will continue to have null as a possible value; so I can’t imagine how .NET Core 5 — or any future version — could require NRT handling in calling code.

          • Johnnyxp64
            Johnnyxp64

            pattern magic in c# 8 looks a mess! more lambda sympols just to make it look smaller in size.. but harder to read and understand what it does! c# is becoming less and less verbal! vb.net was successful and great to teach because of the lack of useless symbols like {} ; () and the verbosity!

            then the null reference handle can be done in vb.net up to a certain way…thanks to the ?. years ago.

            those are not “features we will miss”. vb.net is in what.. version 14-15? c# is just going to 8. vb.net has everything c# still doesn’t.

    • Avatar
      Markus Zoschke

      When Kathleen Dollard came out with porting the My-Namespace to .NET Core, how many hands have you seen?
      I don’t know a single VB shop, where this crap has not been banished via coding guidelines.

      So, it’s a rather weird choice to invest in weird and language specific crap, while not investing in nullable refrence types (which is basically an atttributte with a compiler checker, who can and should be language agnostic).

    • Avatar
      Chris Pratt

      Agreed. Whether Microsoft supports it or not, VB is a dead language. You might as well go write a COBOL app. Using VB in new projects is just a developer choosing ease of not having to learn anything new over future support and maintainability. Later, some other developer has to pay for that laziness.

      As a developer, you have a responsibility to stay on top of trends and technology, and adapt and grow as a developer as things change. The winds shifted from VB *long* ago. If you can’t or won’t learn a new language, then you have no right to call yourself a developer.

      • Avatar
        Christopher Brand

        Not really. If your entire companies code base is in vb.net, then writing in whatever the language of the day is just creates an unmanageable mess. As a corporation its best by far to stick with one technology. Less training, better for standards, faster for development.

      • Avatar
        Taiwo Ayedun

        I doubt that you actually program in VB.NET. Most of what you write about the language appear anecdotal rather than factual.

        People who use VB.NET have had to learn new language features introduced into the language over time, just as those who prefer C# have had to with that language. Therefore, it’s a fallacy that those who prefer VB.NET are unwilling to learn new things. It’s simply a syntactical preference.

        You’re making a lot of uninformed comments about VB.NET.

        • Avatar
          Steele Price

          Agreed.
          Since people like Matt Curland and Dan Appleman first showed us how to effectively and unashamedly tie into ANY lower level Windows feature from VB, we could implement any advanced feature we needed. Clever and outstanding people such as Taiwo built companies around it. Unfortunately those who did accomplish such feats were not given the opportunity to speak without judgement in a general audience. That has nothing to do with the language and is simply a poor choice the community made to shun a set of people interested in a language that made sense to them. I am much more interested in seeing the language given to the Open Source community now. If you hate it, go away. For those who are interested it should be OPEN FOR PRs.

      • Avatar
        Brandon Stewart

        “As a developer, you have a responsibility to stay on top of trends and technology, and adapt and grow as a developer as things change.”

        Actually, you have a responsibility to do what your employer pays you to do. If your employer pays you to develop business apps in C#, then that is the tool you use. There are many industries such as the various fields of engineering and manufacturing where VB is the standard for developing in-house apps and API automation. So, if you employer’s needs require VB, that is your obligation.

        • Avatar
          Steele Price

          A specified technology is rarely the problem. Competent staff are happy to learn new techniques. Showing your peers something is useful has always been a developer’s best tool. Staying the course in the same language is a choice, sometimes not always wise. (written anything in RPG lately? How about COBOL? I’ve seen it in production in 2020.) Replacement always has a cost. Sometimes your employer needs to see that a shift in course is most economical. Other times, especially in critical systems that are not security problems, “if it ain’t broke, don’t fix it” is most certainly economical.

      • Avatar
        Steele Price

        Excuse Me?

        VB is no longer my PRIMARY Language… Neither is C#, or Go… it’s actually Idris.

        I am almost daily conversing with people using F#, Scala and Rust.
        I write examples in JavaScript, VB and C#.
        I flesh out system designs in Haskell.
        I use TypeDefs and StateBox to validate my Type systems.
        We frequently have discussions about proofs in TLA+
        I just trained someone from a C# background how to interpret Python.

        Just because we “like” VB and support it, doesn’t correlate to having vapid ignorance.

  • Avatar
    William - EasyKeys.com

    Well, you are finally getting it partially right – you should evolve VB along with your frameworks. I don’t think it will hurt Microsoft’s bottom line all that much to create a small team of VB/.NET Core developers to keep the language up to date. Inclusivity should always be a primary objective of technological progress and there are millions of VB programmers out there.

  • Avatar
    Michael Taylor

    So VB is dead then. Not evolving a language means it will fall behind new features of the CLR which means more and more the language will not be sufficient to do modern development.

    I think OSS the code may help but it would need to be stringently curated so the official language doesn’t become a hodgepodge of features like C# has become. C# , since becoming open, has gotten useless features because somebody somewhere thought it was needed and made a PR for it. The language is becoming a mangled mess like C++. At least VB will be saved from this horrific fate. Personally I think C# needs to be locked down as well to prevent this kind of stuff happening in the future.

    I personally find it funny that MS spent lots of resources on building Roslyn to eliminate the need for separate compiler code bases and to simplify maintenance of the languages and now puts VB out to pasture. Isn’t the only difference between the languages (now) is the syntax for the most part with some runtime library additions? Why would expanding VB require any more resources than C# or any of the other languages that suddenly appeared (Q#)? How about taking those folks working on new languages and move them over to support VB?

    This post reminds me of the post a while back about how .NET Framework is dead and .NET Core is the future. I wonder how long MS will wave this flag before the backlash is so great they “hear your feedback” and figure out a different way of killing off the language without actually saying it.

    • Avatar
      Chris Pratt

      The actual syntax of VB is the issue. It literally can’t support modern features because there’s no way to make them work in the syntactical structure. That’s been an issue for a while and is only getting worse with time.

      Also, shifting resources from F#, Q#, etc to support VB is insane. It’s like saying let’s move all the resources from developing smart phones to work on Tandy. The tech is dead, and devoting resources outside of basic support is a waste of resources.

      • Avatar
        Jason Rosenthal

        What are you even talking about? VB programmers use the same keyboard as everyone else. Adding the new nullable features like ??= to VB is similar to adding it to C#

        The problem is the strong coupling of syntax to features like xamarin, ef, windforms code generation that they didn’t have before. Microsoft had this solved in the past with Microsoft Common Intermediate Language. If they remove the strong syntax coupling for code generation there is room to innovate on all languages.

      • Avatar
        Zehev Spitz

        “It literally can’t support modern features because there’s no way to make them work in the syntactical structure.” — Providing some concrete examples would be nice; my experience has been that it’s definitely technically possible to add new features, but that Microsoft is unwilling to invest the resources needed.

        AFAICT the first hurdle in any new feature (after it’s confirmed to be a good idea) is how to express it in a style consistent with the rest of the language. If for example, you’d want to add intersection types, you wouldn’t use Typescript style “Dim a As Integer || String”; you would choose something that fits stylistically with the rest of the language with its heavy usage of keywords — “Dim a As Integer Or String”. There’s a lot of subjective discussion around this, and it takes some time to reach a decision. Perhaps this is what you are referring to.

      • Avatar
        Markus Zoschke

        Why should it not be possible to add the same “?” to nullable reference types in VB?
        Why should it not be possible to insert pattern matching using the seasoned LIKE-operator?
        What is the difference between consuming a Span and a Span(Of T)?

        The reason MS is doing this is, that VB has not much to gain from adding language features. You just cannot pollute an entry level, human readable language like you do with a high-end system language like C#.

        And, apart from Nullable Reference Types, I happen to agree.

        • Avatar
          Taiwo Ayedun

          @Markus Zoschke
          I agree about not polluting a language.

          However, that entry-level people use VB.NET doesn’t make it an entry-level language.

          There are those for whom C# was their first language and they would be entry-level programmers at that point; does that make C# an entry-level language?

          I learnt C, C++ and Pascal in college in introductory CS programming classes. That doesn’t make these languages entry-level languages.

        • David Streeter
          David Streeter

          Yeah, it’s a very weird thing to say that VB’s syntax holds it back.

          It’s not like C#’s syntax is the same as it was ten or twenty years ago. Look how weird the switch statement in C# looks compared to the more recent additions to the language.

          Microsoft have deliberately held VB back to maintain the syntax. Microsoft have also all but abandoned desktop development. Both WinForms and WPF have been deprecated with no replacement.

    • Avatar
      Christopher Brand

      I agree, a big part of MS’s problem is they throw technologies at the wall and see what sticks. If we as individual developers pick one that is on the wall it may or may not be there in a few years. They need to think more carefully about the products they come up with for us and commit to supporting them for at least a decade or two. We are building commercial products on these technologies and having to re-create the wheel when tech changes is not efficient. The goal of any coder should be for their code to be able to live as long as possible to get the most value out of it.

  • Avatar
    BELAL JANNAN

    I am very very happy to hear these good news.
    I started using vb from version 3.
    Then i used vb6
    And now vb.net.
    I have a huge enterprise in vb .net which I started before 18 years. And I am still up to now updating it.
    I really love too much this nice simple great language.

  • Avatar
    Edison Henrique Andreassy (GOVBR MTZ - DDP Arquitetura)

    That’s a great news. The support of Windows Forms and ASP.NET Core Web API is really what is blocking us to migrate to .NET Core. We have a very large and stable enterprise solution (> 300 projects and >12,000,000 LoC) that was started in VB 3.0 language in Windows 3.1! We successfully managed to upgrade it to VB 6.0 at the start of 2000s and few years ago to VB.NET. Now we are modernizing it to be native Web applications.

    For us, what is important is platform and library support, not necessarily language feature. But there is something that worry a bit is the lack of support for consuming or creating ref struct (like Span(Of T)) as we have some performance critical aspects parts of our software and we was hopping for.

    For the people that think that the language feature not evolving is a problem, remember that VB.NET compiler is Open Source, and if someone implement something that have large demand, I’m pretty sure Microsoft will consider it. I have contributed myself on porting parts of VB Runtime Library to .NET Core.

  • John Willems
    John Willems

    I am a long time VB/VB.Net developer. Sadly this has been the direction MS has been headed with VB for some. It kind of reminds me of what they did when they abandoned Visual FoxPro years ago.

    I have never taken to C# though I have tried. There have to be millions of apps based on VB both desktop and web currently running around the world. While I don’t have a count, I suspect there are still millions of vb developers worldwide. Some platforms would love to have that size of user base.

    If I am forced to change from VB, I will likely move to Python or PHP. They enjoy good community support and less need for the corporation (Microsoft) to decide what is relevant.

    I truly hopes MS reconsiders its position. Many of us have invested heavily in the VB.net language and framework. It would be sad to see that lost because of this decision.

  • Avatar
    Ioannis Ioannou - Software Engineer

    Finally some good news!!!
    @Microsoft you need to support all the VB.NET developers out there as well. VB.NET is a Microsoft signature programming language and should be treated/supported like c# and get all the latest features.

  • Avatar
    Pramod Senevirathne

    This is sad news! VB is an iconic language where a lot of people including my self started out with as kids. I wish there are more Video Training courses on VB so that more developers can learn how a wonderful language Visual Basic is.

  • Avatar
    hitesh davey

    No wonder abt this news; MS itself is falling short of professional VB.NET developers. The majority of top VB.NET lang architects have left or moved to other projects a few yrs back and thus as a result, the only option left is to maintain VB.NET without any enhancements.

    To me; VB language will remain the best programming language ever in the computer science world. There is saying.. Any fool can write code that a computer can understand. Good programmers write code that humans can understand. and VB is the only computer language close to human language.

  • Avatar
    James Rolfe

    “Going forward, we do not plan to evolve Visual Basic as a language.”
    I’ll definitely lose my job before I retire because of this! My current company hires me because I’m the only one in our department who knows how to answer Japanese technical supports in VB.NET. If the company doesn’t need VB anymore, I’ll be totally useless for them. At that time, they will fire me! I won’t switch to C# unless I get a salary that is twice or more than expected. Because I hate (){}; languages. The semicolon at the end of each sentence looks like herpes. I’ll probably look for a Kotlin or Python job next time.

  • Avatar
    Frank Schwab

    This is really bad news. It seems to me the MS people never realized what a great language they have with VB .Net. It is way better, more readable and much less error-prone than C#. C and its descendants are bad programming languages. They encourage programming bugs. One can nearly not see the difference between “if (object.method(parameter).equals(other))” and “if (!object.method(parameter).equals(other))”. It is only a miniscule difference, a strain to the eye. In VB this would read “If object.method(parameter).equals(other) Then” vs. “If Not object.method(parameter).equals(other) Then”. And all these horrible needless () {} and ;.

    VB .Net is so much better. MS should train people in VB .Net, encourage them to use it. Do not leave it at a dead-end.

    • Avatar
      Paul Cohen

      Maybe this is why Bill Gates retired today from the Microsoft board or why someone had the nerve to announce it. Just a thought. If MS is willing to consider a PR and make sure .NetCore 5.0+ libraries are accessible to VB I have no issue with this.

  • Avatar
    Nicholas Franks

    See, this is what happens when you get rid of Bill Gates…

    It would make sense to just let the community “evolve Visual Basic as a language” since M$FT is just too damn lazy too.

    This is why people are going to upgrade to Linux and Java for development from now on. Some of us are kind of tired of M$FT’s business decisions.

  • Werner242 Muster
    Werner242 Muster

    I use vb.net 2019 I love this language. It is the best programming language I know. It is understandable and readable. Microsoft has done great programming with vb.net. With this programming language I can concentrate on the tasks that I have to solve.

    • Avatar
      anonymous

      我已经厌倦了从vb6.0升级到vb.net,然后又再次听说ms可能会放弃vb.net,这让我感到愤怒,同时让我对ms的任何产品都会失去信心,这太让我缺乏ms选择淘汰vb,也必将让数百万VB程序员中的一部分选择淘汰ms,安全感了。ms让我感觉到了背叛,它让数十万人的VB程序员的努力付之东流。而每一个选择淘汰ms的程序员都可以影响几百人至上万人,就像我。如果ms淘汰vb,或者表现出对VB更差的支持,我讲毫不犹豫的选择离开ms阵营,我会教我的儿子们使用python,JAVA等,而绝不会是以前我考虑的vb或c#。

      另外,如果VB最终被淘汰,那么MS对我而言没有任何可留念的,我会影响我身边包括我儿子们、亲人们、学生等在内的所有年轻人一起抛弃Windows、VS等MS的产品。,Linux也许更适合他们。
      MS,已经正在失去民心。
      在中国几句古话:
      “得民心者得天下!”
      “水可载舟亦可覆舟!”

      微软今天可以这样对待VB,明日亦可如此对待C#,甚至是WINDOWS。

      Windows10至今难用到极点的开始菜单都没有发生改变,甚至不愿意为用户设置两种模式,让用户可以自行选择。

      在比尔逐渐离开后,让我感受到微软正在成为一家茫然的、不思进取的、固执己见的、武断的、自以为是的、没有生命力的公司,迟早会被Linux、安卓或其他操作系统淘汰的公司,跟着微软不一定还会有饭吃。

  • Avatar
    Brandon Stewart

    I have been on Microsoft’s case about this the last several months and very verbal in my dislike of Microsoft’s silence over the future of VB, as Kathleen Dollard can attest to this. With this announcement, I am very happy now. Despite such commentary by some members in here who seem to not have any realistic comprehension of the business world outside of their own coding laptop, Visual Basic still has its place above all other development systems. For instance, most civil/mechanical/aerospace engineering departments have very little need at all for mobile/table/cloud type software. These devices and operating systems cannot run the processor and graphics intensive software we must use for analytics and 3D design. We use desktop for these things, there are several other fields like ours, and we are not going to change.

    People like Chris Pratt who seem to live in a bubble and can’t realize the needs/requirements of others outside his own apparently limited experience do not get to dictate to those of us in business which practices and/or technologies fit better with our models and industry. I am sure that C# is an amazing language for developing new fang-dangled and cute applications. But shiny new toys are not what our companies need. We need a proven development system which is fast, reliable, and stable. We need apps which are conservative and efficient. Where C# has very little practical use in the types of applications we use, Visual Basic does fit perfectly with our business needs. It has for a long time and continues to do so today.

    I would like to thank Microsoft for taking this incredible step. I have been working on all our libraries to rewrite any code which is reliant on the Framework version of .NET and the VisualBasic.dll runtime. I want to be dependent ONLY on .NET Core, so I am grateful to Microsoft for porting WinForms over to Core. But I want to go even further than this. I want Visual Basic to be completely cross-platform so that we can build GUI apps on Linux and MacOS in addition to Windows. However, because Microsoft has already been nice enough to port WinForms and WPF over to Core, I don’t think it would be fair to ask them to also be burdened with creating templates for building Xamarin apps with VB. Instead, I think since Microsoft has met us half way, we should carry that task ourselves. While I am of the opinion it would be financially advantageous for Microsoft to also develop Xamarin and ASP.NET templates for use with VB, Microsoft does not seem to share my sentiment. Therefore, I feel it should be up to us and to those in the open source community to build these templates ourselves, with help and guidance from the pros at Microsoft who might be willing to volunteer and donate their personal time, of course, then turn over those templates to Microsoft for them to include as options in the Visual Studio installation. In fact, I would like to see Microsoft develop a small web site (moderated by Microsoft employees who volunteer their guidance and expertise) dedicated for this single purpose of getting public input and contributions to open source the development of VB/Xamarin and VB/ASP.NET templates in order to make Visual Basic truly cross-platform. I think us doing it this way would be more than fair since Microsoft has already exerted this much effort and kindness for us. This will probably never happen, but a guy can dream.

    I do agree with Microsoft that the VB language itself does not need to evolve. That is so much of the point of VB to begin with, that people/companies who prefer VB generally don’t like change. The language itself already does pretty much anything anyone might need it to do. So, there is no point in changing things to get folks all riled up the same way as that which occurred with the transition from VB6 to VB.NET. We like it – don’t change it – just make sure it keeps working with future release of Windows 10. With the help of volunteers, we’ll get it (GUI apps) to working on Linux and MacOS. A few more compiler optimizations would be nice to make compiled executables perform even faster would be nice, but I won’t push my luck.

    Again, thank you to Microsoft for this incredible extension of help and faith in your customers.

    • Avatar
      Zehev Spitz

      I don’t think it’s reasonable to depend on Microsoft employees to volunteer their time to moderate a site like that which you propose. And even if you pay them to coordinate VB contributions, Anthony Green makes the case (https://anthonydgreen.net/2020/03/15/a-primer-on-why-the-chronic-suffering-of-the-vb-net-community-is-neither-necessary-nor-a-matter-of-expense-or-practicality/) that as long as they are not fully and entirely dedicated to VB within Microsoft, they won’t be able to act effectively, both in coordinating contributions and in pushing the language forward; in part because C#’s needs will always take precedence, because C# is what drives .NET forward.

      If there would be such a team within Microsoft, they would be able to coordinate on all fronts — cross platform VB, multiple device types, new language features.

      (As an aside, there have been a number of times in the VB language design repo, where a team member has said, “Sorry for the delay, we’ve been busy with X, we hope to get back to VB language design soon.” It always struck me as slightly strange — aren’t there people dedicated to VB who are paid to sit 9 to 5 and work on VB? Apparently not, and they’re always getting pulled off for other things.)

      “the VB language itself does not need to evolve” — That argument could have been made for Async/Await, for lambda expressions and LINQ, for generics, for nullable value types; and Visual Basic would have been the poorer for it. IMO, pattern matching and nullable reference-type handling each in themselves add so much power to the language, that future generations might look back and say, “How did they manage without these?”

      • Avatar
        Brandon Stewart

        The unfortunate reality to this is, and it’s the reason Microsoft won’t opensource VB6 as well…

        Microsoft wants to push EVERYTHING to cloud-based subscription services. VB is a powerhouse for desktop apps. Microsoft doesn’t want anything to give companies reason to linger in desktop app-ville. Instead, they are goading companies into moving ALL of their data to the cloud. Hence, Microsoft will not opensource VB6 nor evolve VB.NET because they want to reduce the ability of businesses to remain a desktop shop and avoid paying massive subscription (extortion) fees to Microsoft.

        However…
        Reasons cloud-based services are stupid.
        1.) The internet infrastructure in most regions is flaky at best. Companies like Comcast are not going to shell out the money necessary to upgrade the data infrastructure sufficient to meet the requirements of doing business over the cloud. My own company has twice suffered data loss when the local internet service went down while transmitting some of our non-sensitive to the cloud. We learned our lesson and dropped our cloud services.
        2. The “cloud” is made up of hardware being driven by software just as are a company’s own personal servers. Because of this, cloud servers are no more dependable and no more secure than your own personal servers. They are subject to the same hardware failures as are business severs. Because data encryption is just software, just as someone can write the software to encrypt your data in the cloud, someone else can also write software to decrypt your data to steal it. Just ask Apple and various credit card companies.
        3. Many businesses like ours have data which we are prohibited by U.S. law and ITAR treaty from connecting to any outside access sources. Our secured servers cannot be connected to the internet or phone lines, and they cannot be networked with any other systems which do have outside access.

        So… this wet dream of Microsoft and other tech giants to force everyone to the “cloud” just is not a reality.

        But anyway… this is why Microsoft wants everything to go “cloud” and mobile – so they can take possession of your data and charge you a subscription fee to access it. The desktop application model and RAD desktop development systems like Visual Basic are a hindrance to Microsoft’s ultimate goals, and that huge cash cow they’re waiting to plunder. So, don’t expect Microsoft to continue evolving VB. And certainly don’t expect them to open source VB6.

        I am keeping an eye on this project (because their existing IDE and languages already rock!).

        But in the meantime, we are transitioning all our systems over to Linux. We are rewriting our apps in Lazarus/ObjectPascal, PHP, MySQL. We are dumping all things Microsoft including Visual Studio and SQL Server. As well, we are converting all our Microsoft Office documents and apps over to LibreOffice. We figure it will take us 2 years to complete, but it will be worth it.

        • Avatar
          Zehev Spitz

          I am not qualified to judge the accuracy of your statements about Microsoft’s cloud goals, but I don’t think it’s relevant here. Why should VB be different from F#, which has strong Microsoft support in spite of the strategy shift to cloud?

          • Avatar
            Brandon Stewart

            My post explained why it is different. VB is a powerhouse for rapidly developing dependable desktop applications. Many industries like mine cannot move to cloud/mobile computing because a.) security issues, and b.) performance issues.

            Neither cloud-based software nor mobile devices have the computing/processing power to perform the type of engineering analytics we do. Granted, VB is not used to develop those types of processor-intensive applications. But those applications which are written in C++ and Assembly do require a desktop platform system to run them. These are 2 issues which Microsoft and other tech giants who are pushing to cloud/subscription service can’t get through their heads. But the point is, because VB is so good at developing desktop applications, its availability (and therefore, the ability to efficiently produce desktop application) will make companies more resistant to moving to cloud-based services.

            Additionally –
            a. F# was originally created to be cross-platform and was geared toward online/mobile development.
            b. VB was not originally created to be cross-platform and was not geared toward online/mobile development.
            c. Because F# was already designed for cloud/mobile development, there is little overhead cost in evolving it.
            d. Because VB must be coaxed to be cross-platform via .NET Core and it must be coaxed to perform cloud/mobile development via ASP templates, it costs WAY too much to evolve VB as such a development system when the overwhelming majority of VB users will stick with developing desktop applications, which of course, will deter companies from moving away from desktop apps. VB is a threat to Microsoft’s end goals.

        • Avatar
          Federico Dutto

          I agree in part … I’m glad there is movement in VB. But they could be more precise, continue with everything, or do not continue. End of discussion. Many times it seems that Microsoft drives some technologies to the detriment of others .. It seems to reinvent the wheel over and over again ..
          I really think that this orientation to C # will have its well-founded reasons, but there is always that feeling that tomorrow, whether for the market, the users or the technology, that it changes the other way and they do not enhance everything done, again from scratch. ..
          We understand that technology advances, but it is always necessary to start from scratch ???
          Although there are examples such as SQL Server that comes from a long long time ago, and they continue to advance and improve over time, but with a focus on azure services …

          • Avatar
            Brandon Stewart

            @Federico Dutto
            I totally agree! I wish Microsoft would just say, we’re done with VB. You opensource folks can have it to do as you will with it. But Microsoft will never do that. As I mentioned in a previous post, VB is so efficient for producing desktop apps, it is an economic threat to Microsoft’s future plans of forcing everyone to cloud-based services because as long as most companies can efficiently produce in-house desktop apps, they’re not going to transition to the cloud.

          • Avatar
            Steele Price

            I look forward to contributing where need be in PRs.
            I am not tied or dependent on Desktop Apps (we do have them…)
            We need VB for XML Literals and it is in our .Net Core Services as a translator for XML Structures.
            I will NOT be going back to XSLT or some contrived nonsense.

  • Avatar
    John Botha

    Sad news! I started with VB5/VBA back in 1998/1999. Like many guys said in comments in previous articles, is to look at Python. Shares a lot of similarities with VB.
    I can code in C / C# but it is not VB! Really sad that we (VB Developers) invested so much time over the years into this great language and it will come to nothing because of some corporate strategy…bet you if Bill was still in charge, this would not have happened!….sad story…really sad story… is all I can say! 🙁

  • Avatar
    杰 陈

    i started my programming since Quick Basic when i was a little kid, and i enjoyed every Basic versions. Visual Basic 5.0, 6.0, and every Visual Basic.net after 2005. since I am using C# more now during work time, i would love Visual Basic more. if i am going to make a tiny and easy app to helps someone’s life or work, i shall choose Visual Basic to do this. It’s like my mother language, i think and write in it, It’s a home that i am from and i will return to.

  • Avatar
    Ismail Demir

    Opening text is very heartbreaking </3

    “We’ve heard your feedback that you want Visual Basic on .NET Core”

    The guy that wrote this text should be forfeited very hard!

    It can’t be from a VB Developer. Of course you should support VB.Net on .Net Core!

    After 2 years later since Kathleen Dollards post in 2018 hearing this opening text is very heartbreaking. I am dissappointed!