## Where communities thrive

• Join over 1.5M+ people
• Join over 100K+ communities
• Free without limits
##### Activity
Cory Smith
@DualBrain
As for the what can be done in VB (and not in C#), the list is actually pretty long. Some of it is going to be very obvious while others are extremely nuanced. With that said, there is (and will always be) some fundamental differences between C# (and C-style) languages versus VB. Integer division is one that easily demonstrate the overall difference pretty clearly. In the computer world (hardware, lower level, closer to the metal), when you divide 5 by 2 the result will be 2. In the mathematics world, of which VB has it's pedigree, 5 divided by 2 is clearly not 2 it's also not 3 but since it is "closer" to 3 the result should be inferred as being 3 as it is clearly not 2. And, technically, this doesn't occur during the division, it happens during the conversion from a floating point value to an integer value; of which can be hidden (inferred) from the view. In my opinion, if you ask many people what whole number would you assign to 9.9999999, most people would state 10. This is not the case in C-style languages (like C#). No matter how many decimal places you have set to 9, the result in converting it to an integer will be 9... not 10. VB (and BASIC) attempt to operate as one would expect, not as the machine dictates. This is the fundamental difference that VB has over other languages. VB.NET has, in some cases, lost sight of this during the passage of time; but overall it does still try to maintain this pedigree and the release in 2008 went a long way to do correct some of the missteps that occurred since VB7. There are many, many, many areas in VB that work this way... as someone who has done more C# -> VB conversions than I could possibly recount, there are tons of differences that are nuanced that if you primarily utilize one or the other you wouldn't ever encounter. On the surface there are things that appear to be the same, but as the duck floating in the pond appears to be casually coasting along when you look under the water their feet are going as fast as they possibly can be.
Cory Smith
@DualBrain
And then there are all of the features that, I would argue, exist in C# now because people drank the koolaid thinking they have no choice but to jump ship from VB to C# and constantly complained about not having feature X in C# now that they made the jump. Which, to me, is completely insane given that the whole point of .NET was cross language. But, for whatever reason, people think it's a better idea to completely abandon what they know for something else instead of simply leveraging "the best tool for the job". It is not that ridiculous to accept that a project couldn't contain more than one language. I mean, seriously, has anyone seen how many languages one has to do to create a simple web page these days (HTML, CSS, Javascript, JSON, XML, etc.)? But this is accepted... but a project written in VB with some C# (or vice-versa)... UNACCEPTABLE!!!!!. I mention this as most of the perceived "blockages" can easily be dealt with by simply taking the route of writing in C# the small amount that is needed to "glue" your majority written code within. Is this a little annoying? Yes. But, NEWSFLASH, this is the way it has always been (or at least in my memory). On the RadioShack Color Computers... write a lot of the code in BASIC with some ultra-fast routines written in machine code. In QB45, utilized libraries that were written in ASM. In VB6, utilized libraries written in Delphi (for multi-threading) as well as libraries written in C/C++ (to incorporate/expose C-only API's). The underlying problem hasn't changed and I don't see that it ever will. However, the beauty of .NET is that (if people can adhere to the principles) this is less difficult to do.
Cory Smith
@DualBrain

To say this all another way... how many people are VB developers out trying to convince other developers to use VB? Delphi? C++? F#? F# is a great example of passionate developers using the tool that they love doing the things that they love without a high volume of them complaining about "Microsoft doesn't love F#!!!!". Are there some? Yes. But it's not prolific. Also, these are F# developers making complaints about the language that they love... they aren't typically "everyone else is getting the attention we need/deserve". I'm constantly inspired by the overall F# community. If they want something, they are quick to "just do it"; they don't really complain too often or too loudly. Again, absolutely inspiring!

Are there people who utilize C# that are constantly trying to convince (especially) VB developers to "just make the switch already"? Absolutely. And they are loud, prolific and exhaustingly persistent. Why? I mean it... why? Many of them are self-proclaimed product experts on VB - though have never utilized it making claims about whatever in order to convince. Why? There is an answer... it's complicated but I'll try to summarize it with the basic psychology that in order to solidify their decision in their choice they will try to convince others to make the same choice. Does this characterize all C# developers? Absolutely NO. Most C# developers are just like VB developers... the silent majority. It is only a small number of people who are self-haters (VB) and self-proclaimed champions of conversion (C#) that make up the majority of this noise.

I love VB. I use VB. My business is built on VB. I know and use multiple languages, but I have the luxury of choice so I use VB for everything I can. Not everyone has this choice; but I do and I'm thankful. I also have faith in Microsoft that they will do what they can with the resources that they have to maintain (and improve) VB. This isn't blind faith, this is me seeing the work being done and being thankful that it is.

I've seen, time and time again, people claiming that VB isn't going to work in .NET 5 (it does) and that it will not be supported in .NET 6 (again, it is). One has to wonder why these statements are being made, what is their overall agenda.

I finish this off with the fact that, from all appearances here and in other online spaces that @CyrusNajmabadi has and continues to show positivity toward VB and it is my hope that any negativity he is experiencing simply because the is a part of Microsoft (by some) will not dissuade his commitment to VB. I, for one, am very appreciative of the time he takes (which is his personal time) to be involved here and the education that I've received from his involvement here has been invaluable to me personally. Also, being part of Microsoft doesn't make you a representative of Microsoft. It's a very large company and decisions are made "way above ones paygrade" on a regular basis. As @CyrusNajmabadi has pointed out on multiple occasions (thanks, in part, to VB being open source) he affects change in VB on his personal time because he also loves the language. I think it is important for people to keep in mind that, by the very nature of being involved in this group, you love the language and want to see it continue on. If you don't fall into that category, this isn't the place for you.

Cory Smith
@DualBrain

Finally, regarding the link to the forum post... one should look down a couple of responses... specifically the one from Paul Yuk.

VB is the most used .NET language according to the internal surveys we conduct as well as Forrester research (both looking at pro developers). Then there's the fact that VB is hands down the most downloaded and registered Express Edition (includes pro's and nonpros).

Let that sink in for a moment. This is in direct response to a naysayer's negative outlook on the future of VB because the current situation of VB (at the time) was looking bleak because people are stating that it is bleak due to it not being able to do in part with some API/Tech stacks (what I've already pointed out is not factual).

Saying that this is foretelling the future is completely looking at this wrong. What really happened is that people locked into this idea (regardless of facts) and, even to this day, continue to be told / think that VB is dead. This all reminds me of a scene from one of my favorite movies...

Cory Smith
@DualBrain
I do want to take a moment... and I do mean this with all sincerity... to thank the likes of these people (those that dwell in the negative) for giving me the opportunity to self-reflect on similar behaviors so that I may be a better person by attempting to discontinue similar activity. It's, as they say, a journey; one that I will continue - I'm not saying that it's easy, but I am certainly trying.
You on the other hand are very hostile to anyone that report issues or even make new proposals
i have literally invited you on numerous occasions to work on your reports. i've offered my time off to do this so to help make VB a better product.
i and others on hte team have done this several times
in each occasion you've stated that no, you refuse to work with us, and you don't care if the issues actually get addressed.
You call us hostile, while we have been trying to find ways to solve your problems.
but you have refused to give us even an inch in return :-/
at thsi point, i think you've burned the bridges with everyone else, and i haven't seen anyone willing to even try anymore to reach out.
i refuse to let this approach succeed though, and i remain steadfast that if you want to work with us that we'll work with you, regardless of past behavior.
Cory Smith
@DualBrain

I remain steadfast that if you want to work with us that we'll work with you, regardless of past behavior.

I concur and can confirm that, if reports are valid/make sense/relevant/professional (nice) that things do indeed get reviewed and (in many cases) do get addressed.

I can also reiterate that working with various teams (at Microsoft) through proper channels and polite/professional/positive approaches seems to open opportunities. I've reached out to several teams for some projects that I'd like to contribute to (or not) depending on whether or not contributions would be considered. For the project(s) that will consider/welcome contributions, I'm adjusting some of the things I'd like to do (personal) that can align with community contributions to better serve VB. (Note that I was going to do these anyway, it's just the how I was going to approach these is modified slightly depending on the answers I received.) There are opportunities, but these do need to align with the overall goals of the different projects/teams. This is true whether it's a Microsoft-funded project or any other open-source project. If you aren't aware of how Linus (Linux) handles things; I think you'd be in for a very rude awakening when comparing it to - I would argue - any Microsoft open-source project.

Cory Smith
@DualBrain
Hmph... there is actually a group on Facebook with the subject title "VB 6.0 AND C# FORUM"... with 714 members. Looks like the majority of the posts are for VB6; however, there are a few interesting questions such as to whether or not it is possible to use a VB.NET or C# library in VB6 and a couple of freelance postings for VB.NET devs. I would also hazard to guess that it's safe to say that this forum is mostly populated by non-USA people. What struck me most was the name of the group.
Cristian FRC
@cristianlt23

Hello Masters,

Sometimes it's not easy to listen to an entire video like this:

Despite being from 2017 with only 60 likes, I couldn't help but reply, I warn everyone that I don't look for negativities in relation to VB, but that a person spends so much time just belittling a programming language is really a lack of respect.

I couldn't write anything and ended up joining the discussion, sometimes I agree with @VBAndCs, that kind of video and comment is everywhere.

Since I'd like to reverse all this kind of comment against VB, I think it's completely unfair.

Because of people like this who make this kind of video, many new programmers just aren't curious to see the beauty of VB.NET

How I wish I had a plan to change all that!

Cory Smith
@DualBrain
Use the language, love the language and do cool stuff with it. The more of us that do this the more the negative noise will deminish.
Cristian FRC
@cristianlt23

I'll be honest, I'm a VB.NET student thanks to this community.

Here I'm learning much more than just coding, I'm learning to feel good about my choice and have a better posture as a professional.

I am so grateful to this community.

There are trolls and naysayers everywhere. You won't find a single case out there that doesn't have that.
Heck, sadly enough, I've seen people here so the same sort of thing with other languages (i.e vb devs belittling other languages).
They just want attention. Don't reward them by giving them that.
Cristian FRC
@cristianlt23

Thank you very much @CyrusNajmabadi @DualBrain

Here I always renew my passion for VB.NET

Cory Smith
@DualBrain
Hah!!! There is a Visual Basic boxed product in the set decor... very visible for the VS2022 keynote launch.
Is it wrong that I'm get a slight smile every time they focus on the "guest speaker" that over their should is BASIC. ๐(It also reminds me of a time when VB was \$99.)
Cory Smith
@DualBrain
And for those that might not know, Amanda Silver is one of the main people originally behind VB.NET...
I'm also noticing the Raspberry Pi contained in the "arcade" controller on the "coffee table"... leaves me wondering what they will be discussing regarding that.
Cory Smith
@DualBrain
The XAML Live Preview feature looks very interesting... ability to pull the running application "window" directly into VS as a side-by-side tab combined with Hot-Reload. That's pretty cool!
"Hot-Reload"... remember when Edit-and-Continue "wasn't needed/desired"? Just sayin'
Cory Smith
@DualBrain
The Hot-Reload feature is one of the clear focus-features in the launch of VS2022... I find this interesting as I vividly recall the conversations around Edit-and-Continue (which was missing in the early years of VB.NET where most of the developers I was interacting with at user groups and other events telling me "why do you need that?" and (more often, at the time) "that's not the right way to develop, you need to be doing test first development and edit-and-continue is just a crutch". Fast forward over a decade... the rebranded (my words) Edit-and-Continue into Hot-Reload focuses on this type of development finally bringing Edit-and-Continue a huge step forward from the experience we (re)gained in 2005 (it was lost with the introduction / transition to VB.NET from VB6). I look forward to seeing how much of these features is accessible from a VB developers point of view as I begin working full-time in VS2022.
Paul M Cohen
@paul1956
There is a lot here, some of which is not turned on by default and I think is really useful https://devblogs.microsoft.com/dotnet/whats-new-for-visual-basic-in-visual-studio-2022/
Cory Smith
@DualBrain

It's interesting that some of the first comments I've seen regarding this blog post are negative. I'd like to respond to a couple of these:

"There's no change to VB.NET."

I think it is important to note and bears repeating... VB has always been more than "just the language". The overall experience the has always been what makes VB, well, VB. Remember, "Edit-and-Continue" was a feature intrinsic to the VB experience and was "lost" in the move from VB6 (COM) to VB7 (.NET Framework). It eventually made it's return to VB in 2005. VB is available on .NET 5 and it continues to be available (supported) in .NET 6. It is part of Roslyn; Roslyn is the foundation of C#, VB and Visual Studio.

I also want to point out that there were indeed language changes to VB... it's just that these changes resulted in no visible difference. And, yes, this is mentioned in the blog post from @KathleenDollard (that @paul1956 pointed to). This isn't the first time that this sort of change has taken place... just because that language hasn't changed doesn't mean that it's not changing and evolving.

"These are just changes in the IDE."

There are also significant changes to WinForms on .NET that have taken place to fully embrace/support VB; meaning that the experience we have as VB developers (and only as VB developers) has made the leap to the new .NET platform. There are also other improvements to this specific API that are being considered; so there are changes beyond "just the IDE". Additionally, the investment in this area is significant and only affects VB... let that sink in.

"Do any of the .NET improvements apply to VB?"

This question was posed in the Q&A and the panel was clearly prepped regarding the improvements mentioned in the blog post liked above by @paul1956. This leads me to a very common comment I encounter that goes something like "Microsoft continues to not invest in VB." This comment is simply ignorant. The amount of time, money, design, etc. that went into designing Roslyn continues to produce results for VB - there is, however, an issue regarding communication and I've already pointed out that there have been some improvements to including mentioning (where appropriate) that a feature is available for VB (as well as C#). But if these types of blog posts are met with negativity, why would anyone want to continue to expose themselves to the "nothing is ever good enough" crowd?

Paul M Cohen
@paul1956
On a more positive note 17.1 Preview 2 will include the improved formatting for VB with Line Continuations Comments something I use a lot in Conversions and the resulting code is much easier to read. Also the changes in VB startup experience in WinForms will have a huge impact in moving code from Framework to .Net and having a more consistent look with a lot less effort. Support was added to WinForms to allow editing of the content within strips and panels from the UI and I have already found it extremely useful.
Cory Smith
@DualBrain
๐๐๐
Cristian FRC
@cristianlt23

@DualBrain Since you have a fantastic knowledge of VB.NET, how about preparing a text in the comments What's new in Visual Basic in Visual Studio 2022 to inhibit the negative comments that start to appear?

We need to empower the news and prevent negative comments from appearing and proliferating.

In fact, I think each of us should write a positive and supportive review for VB.NET

Paul M Cohen
@paul1956
I think the article by @KathleenDollard did an excellent job plus the whatโs new in WinForms for VB.
Cristian FRC
@cristianlt23
@paul1956 It's a really great job, I thought it would be nice if the article also had supporting comments to show that we are aware of the changes and that we recognize the effort to improve VB.
Cory Smith
@DualBrain
@cristianlt23 I've replied to the comment regarding "nothing new in VB per se".
Cory Smith
@DualBrain

Wanted to take a moment to share an interaction I had on Twitter regarding the negativity around not only VB, but .NET in general.

David: I don't know about you, but the way I keep in touch and find out about the latest drama in the .NET/Microsoft world is by seeing the usual suspects trying to fan the flames, and stir it up. Very successful strategy.
t_ham: Bad things happen when good people do nothing.
Me: So what is the excuse for the hate directed at "that other .NET language"... Where are all these "good people" you speak of regarding the last 20 years of (what amounts to) bulling that have all but silenced the voice of a significant portion of the .NET population.
t_ham: I don't know what you mean by "that other .NET language". Are you talking about VB? It definitely sucks that MS has been migrating away from that, especially if it's a majority of your skillset. What are you on about bullying, though?
Me: "It definitely sucks that MS has been migrating away from that"... Answered your own question about the bullying and aren't even aware. Behavior by the community has been so constant that your statement is seen as an "obvious fact". The evidence, however, is to the contrary.

Microsoft isn't the one migrating away from VB. This isn't and continues to not be the case. The investment by Microsoft with the foundation of Roslyn is pretty telling and the continued investments are visible (Source Generators, WinForms, etc.) if anyone takes a moment to look. But this guys comment speaks volumes as he doesn't even realize that he's repeating the comments that those that seek to silence others (aka bullying) not even realizing that he's repeating garbage. The comments by bullies has been so constant as these statements have become "factual"; no one even considers it bullying behavior at this point. It is so pervasive that many VB believe it. It's Dark Psychology at it's finest.

This is why it is so important that we work together to try to undo this type of thinking; no only externally but equally internally. Let's get out there and do awesome things with VB and share with others that we aren't limited by any sort of "perceived" limitations; we, as a community, can accomplish anything we want in our language.

The reality, thanks to things like .NET Standard, is that we aren't really limited. Yes, we might have to write a small amount of HTML, CSS, Javascript, XML, JSON and even a bit of C# to accomplish what we want to do where we are primarily working in VB.

Over to .NET Conf Live... VB.NET is mentioned on the slides for upgrading to .NET 6. ๐
Cory Smith
@DualBrain
I've had the .NET Conf Live stuff running to the side of me while I'm working throughout the day and whenever the term Visual Basic is mentioned I have to stop what I'm doing and pay attention to what is going on... you know like a dog and "SQUIRREL!!!!!"
Cory Smith
@DualBrain
Wholly S**T!!!! I just heard that Razor is now fully switched to utilize a C# Source Generator... it might be time to take another look at Razor pages. (Watching .NET Conf Live)
Cory Smith
@DualBrain
So I'm seeing a Microsoft.NET.Sdk.Razor.SourceGenerators entry under the Analyzers node; but expanding it displays "This generator is not generating files." I would have expected to see how the generator was generating the code from the .cshtml files in here or am I way off base on this? There are several .cshtml files in a default C# project, so now I'm confused.
please file issue over at dotnet/roslyn. someone on the SG or Razor side will be able to clarify (or identify a bug if one is there).
Cristian FRC
@cristianlt23

I've replied to the comment regarding "nothing new in VB per se

@DualBrain
You are my hero.๐๐๐
and congratulations for the text, it was fantastic๐๐๐

Cory Smith
@DualBrain
@CyrusNajmabadi I'd already posted the question over at dotnet/aspnetcore#38238 and the answer I received does tell me how to get to the generated files; but I'm left a bit confused as now I'm wondering is there a way to "hide" (by default) the generated source when building source generators within VS? I thought C# and/or VB Source Generators simply generated code in a way that it shows up under the Analyzers section... but, assuming that the razor source generators are indeed using Source Generators, they have some sort of a bug that prevents them from showing up in the Analyzers section in the Solution Explorer. To access the code, they are telling me to add the <EmitCompilerGeneratedFiles>true</> flag in the project file. This does indeed provide access to the generated files in the /obj/ folder... but something just seems to strike me as off. Is the current version truly built using Source Generators or still some "hybrid" style that I'm not familiar with or is the some sort of bug with Source Generators that I could encounter when I build my own (that I have as yet encountered with how I've currently done things... if so, how did I manage that?). Not expecting you to dig deep on this... just asking to see if you are aware of anything "weird" regarding Source Generators that could possibly present as it is. I'm guessing, at this point, that the ASP.NET Core source generation isn't 100% the "Source Generators" (as I'm currently familiar) style. I haven't gone down the rabbit hole to verify/or not the situation in ASP.NET Razor; began this process simply because the comment was made in the event - and it always possible that the comment was made in error/misinformed.
(Also, the response stated that but bug couldn't be addressed until 7.0.)
Cory Smith
@DualBrain
Sounds like it is a case of some sort of work around due to "legacy design limitations around how it supports it's tooling"; however, Logging or System.Text.Json do work as expected. Good to know... what peaks my interest most about this is that I initially expected that existing generators would be left as is and Source Generators would be utilized going forward (unless of course there was a compelling reason to "rewrite" outweighing the risks). Seeing this raises my hopes that Source Generators are indeed being adopted at a faster rate (and retroactively in some cases)... having this common infrastructure for how to create these generators is a good thing for VB. I haven't dug into these generators as yet, but if they are doing one approach over another... it may even be better for us. What is this approach, one may ask? There is the "cheap and easy" (initially) way which is to just do a lot of text concat to produce the resulting code... or there is the (more) proper approach with is to build the code using Roslyn. If it is the later, then the tree should be a lot easier to generate C# and/or VB. I know that there is a push by some within MS to encourage the Roslyn approach... so if this happens we may be in a position where it would take a lot less effort to support VB... it still may require that we have community champions to do the work... but the work should (in theory) be a lot more manageable. (This is my hope... we'll see if it becomes reality.)