vblang icon indicating copy to clipboard operation
vblang copied to clipboard

Visual Basic .NET 5 blog post

Open KathleenDollard opened this issue 5 years ago • 45 comments

We posted an announcement on Visual Basic on .NET Core on the Visual Basic blog today. https://devblogs.microsoft.com/vbteam/visual-basic-support-planned-for-net-5-0/

I know it's been a long wait. I know it has been frustrating, I have shared much of that frustration.

KathleenDollard avatar Mar 11 '20 23:03 KathleenDollard

Going forward, we do not plan to evolve Visual Basic as a language.

and

Future features of .NET Core that require language changes may not be supported in Visual Basic.

These are both very broad and sweeping statements, with an air of finality to them. Will there be any exceptions at all to this?

zspitz avatar Mar 12 '20 00:03 zspitz

Additionally, while WinForms and WPF support in .NET 5, it continues to be painfully clear Microsoft has dropped the ball on cross-platform desktop development. If Microsoft selects a new UI framework that would finally enable cross-platform .NET applications, should we expect VB to be left behind?

ocdtrekkie avatar Mar 12 '20 00:03 ocdtrekkie

Future features of .NET Core that require language changes may not be supported in Visual Basic.

What's the meaning of "Future features" here? Will existing .NET Core 3.1 features, such as ByRef-like structures, ByRef ReadOnly, Asycn Iterator Function, Nullable reference types and Default interface implementations be ported to VB in the future? If not, our company is very likely to forbid us using VB if target framework is .NET Core, and start rewriting all VB projects with other languages when porting to .NET Core. Because VB will have more and more C# interoperability problems on .NET Core. Our VB projects depend on many third-party C# libraries. If the dependencies use .NET Core 3.x syntax or types in their .NET Core versions, for example, default interface implements, Span(Of T) or IAsyncEnumerable(Of T) , our project will not be able to consume them. We have no choice but use other languages.

Nukepayload2 avatar Mar 12 '20 01:03 Nukepayload2

Going forward, we do not plan to evolve Visual Basic as a language.

How does it play with your plans described here https://github.com/dotnet/csharplang/projects/4 (TRIAGE NEEDED) ?

What if someone from community enhance VB, do you accept it, and release with VS ?

vbcodec avatar Mar 12 '20 01:03 vbcodec

@vbcodec That sounds like the C# team is more committed to VB than the VB team itself!

Happypig375 avatar Mar 12 '20 04:03 Happypig375

@zspitz "evolve" implies we have a direction and are working toward that and "may not" implies that we might. So, I am not certain what you are asking.

@ocdtrekkie We don't know what a cross platform UI will be based on. If it's based on Razor syntax, we have no plans to create a Razor engine. If it's based on something else, I don't know.

@Nukepayload2 "What's the meaning of "Future features" here? Will existing .NET Core 3.1 features, such as ByRef-like structures, ByRef ReadOnly, Asycn Iterator Function, Nullable reference types and Default interface implementations be ported to VB in the future?" We have no plans to port these. We will continue to ensure VB users have overloads available in the BCL and in naming (the index constructors were named as a VB like approach to indexers). It is likely that third party vendors will be slow to demand these features as earlier versions of C# could not use them.

@vbcodec Triage needed isn't plans. It indicates that the feature is in need of triage.

KathleenDollard avatar Mar 12 '20 17:03 KathleenDollard

@KathleenDollard

It is likely that third party vendors will be slow to demand these features as earlier versions of C# could not use them.

This argument is similar to not supporting .NET Core when it first started. Look at the landscape now.

Happypig375 avatar Mar 12 '20 17:03 Happypig375

@KathleenDollard Let me be clearer. Both statements (which I quoted from the blog post) are saying that Visual Basic will not change. My question is, how absolute is this position? Are there any circumstances which would force change on the language?

zspitz avatar Mar 12 '20 17:03 zspitz

Thank you to be finally clear about the future of Visual Basic at Microsoft.

tverweij avatar Mar 12 '20 17:03 tverweij

@KathleenDollard So the stance is that Visual Basic will stop having new features and go the way of Pascal?

Happypig375 avatar Mar 12 '20 17:03 Happypig375

@zspitz One statement says Visual Basic will not evolve - we are not going to set a goal and go after it and we have no language changes planned. The second says we may not support all .NET Core features. Neither says there is no future where changes would occur in the language. At this point, we do not know what a future that inspired us to make language changes would look like.

KathleenDollard avatar Mar 12 '20 19:03 KathleenDollard

@Happypig375 I don't have a crystal ball.

My personal opinion is that it is not a similar situation, primarily because in terms of experience in readability languages in general are asymptotically approaching what can be achieved and within the limitations of the platform (.NET) Visual Basic has arrived close to that state.

KathleenDollard avatar Mar 12 '20 19:03 KathleenDollard

@KathleenDollard

I'm sorry Kathleen, but you're sounding like a politician with your responses to this. Both here and on the Visual Studio forum. Some of your answers are non-answers and others are a bit patronising.

The lack of enthusiasm for Visual Basic from anyone with authority at Microsoft remains incredibly frustrating for those of us who appreciate the language and consider it superior to C#.

Nothing I've seen since your 'announcement' has given me any confidence in the future of my development platform of choice.

It looks to me that for Microsoft, VB.Net is now a 'legacy' product that they'd rather people stopped using.

Although I'm sure the business has made the decision for commercial reasons that make sense to Microsoft management, I think this is incredibly short-sighted. They have done themselves a lot of harm by destroying goodwill built up over years amongst previously loyal supporters of their platforms, some of those supporters being decisions makers in large businesses.

If Microsoft no longer wants to maintain or improve VB.Net, that's fine; it's their prerogative to do whatever they want with their product. But I think they are making a mistake.

pricerc avatar Mar 12 '20 19:03 pricerc

Thanks for sharing your personal opinion. I’m afraid your opinions have been disappointing for quite some time.

Padanian avatar Mar 12 '20 19:03 Padanian

@pricerc

I don't mean to sound political and certainly not patronizing. But I am keenly aware that I can't tell you what you want to hear. And I'm not going to discuss the process to get to this decision. And I don't think my opinion matters (I regret sharing an opinion in relation to what I think was a poor comparison).

There will be no further language development on any language in .NET Framework. There are few people using Visual Basic on .NET Core - mostly because we didn't support key platforms like WinForms. Now we will. This avoids closing a door on Visual Basic programmers that want to experiment with .NET Core and people with mixed language environments. And we got clarity where I think we've needed it.

KathleenDollard avatar Mar 12 '20 20:03 KathleenDollard

@KathleenDollard

There will be no further language development on any language in .NET Framework.

Really? Somehow I don't think further developing of the C# language will stop.

AdamSpeight2008 avatar Mar 12 '20 20:03 AdamSpeight2008

C# 8 is not supported on .NET Framework. There will be no new versions of the C# language targeting .NET Framework. @KathleenDollard is absolutely correct on this point

jmarolf avatar Mar 12 '20 20:03 jmarolf

@jmarolf Doesn't read like that. Language Development <> Target Framework

Why not simple state as of version of the insert language, will no be able to target .net framework.

AdamSpeight2008 avatar Mar 12 '20 20:03 AdamSpeight2008

@AdamSpeight2008 This was announced some time ago..

C# 7.x supports .NET Framework. C# 8 and above do not.

All future innovation at Microsoft is planned for .NET Core.

This was all announced some time ago.

KathleenDollard avatar Mar 12 '20 20:03 KathleenDollard

My reactions are on my twitter account as some people don't like it when I do it here.

tverweij avatar Mar 12 '20 20:03 tverweij

@tverweij I was looking over your tweets and one said you were banned here. I was not aware of that. Was it an error?

I wish you well in that endeavor. I am happy we are Open Source so you can improve based on feedback in this repo. If you are able to stretch what VB could be, @AnthonyDGreen's work is great.

As you move toward release, be cautious with trademarks and branding. I would like you to avoid the wrath of Microsoft marketing. I can connect you with people if you have questions on that.

KathleenDollard avatar Mar 12 '20 21:03 KathleenDollard

@KathleenDollard While I understand you don't want to talk about the "process" that got MS to this decision, I think MS owes it to the VB.Net community (programmers, businesses, and government organizations) to explain what the motivation is behind this decision.

In the big picture of MS, all of the costs associated with the VB language amount to pocket change... It seems completely irrational for a business to do something that's going to alienate and create a huge amount of ill will to such a large number of customers. Whatever "cost savings" they get will be absolutely nothing compared to the losses they will incur from programmers and businesses moving to non-Microsoft platforms because of this decision.

WolvenRA avatar Mar 12 '20 21:03 WolvenRA

@kathleen: I posted a message that I regretted within 5 minutes, so I removed it. A short time after that I could not post anymore. But that only took 1-2 hours and everything was restored.

And thank you very much! And we will be cautious - if needed, I will contact you. Thanks for that.

tverweij avatar Mar 12 '20 21:03 tverweij

I ment @KathleenDollard instead of @kathleen - sorry.

tverweij avatar Mar 12 '20 21:03 tverweij

@WolvenRA

Whatever "cost savings" they get will be absolutely nothing compared to the losses they will incur from programmers and businesses moving to non-Microsoft platforms because of this decision.

Are there any Visual Basic -like alternatives for .NET? I think all that would happen is these business would move to C#.

do something that's going to alienate and create a huge amount of ill will to such a large number of customers.

If I understand correctly, if someone starts a greenfield project today with a choice of .NET languages, they will probably choose C#, or perhaps F#. The customers of Visual Basic are in the main people and companies who already have projects written in VB; potentially the only major change they'll want to make is to move from Framework to Core, as long as it's a no-brainer. These customers don't feel that Microsoft has failed them, because they're not exactly champing at the bit to add new features to Visual Basic. And it's essential that the migration from Framework to Core be as smooth as possible, otherwise these clients will indeed feel alienated. That's how I read Microsoft's stance -- your current VB codebase will be usable on .NET Framework which will be available for a long time; we'll try to keep .NET Core as compatible as possible with .NET Framework, but no guarantees.

zspitz avatar Mar 12 '20 21:03 zspitz

@KathleenDollard

One statement says Visual Basic will not evolve - we are not going to set a goal and go after it and we have no language changes planned. The second says we may not support all .NET Core features. Neither says there is no future where changes would occur in the language. At this point, we do not know what a future that inspired us to make language changes would look like.

Wouldn't changes to the language to improve C# interop be a compelling enough reason to update the VB Language (for .NET Core) - I like the approach that C# has taken by making C# 8.0 compatible with .NET Core/5.0/+ versions of the framework and not for .NET Full Framework. Couldn't VB take a similar approach?

aarondglover avatar Mar 12 '20 23:03 aarondglover

A few of us here just don't want to understand the message. Let me spell it out. VB died - became a zombie language. No changes anymore. And if it happens that something new fits on that language without changing anything, it will work. Otherwise it will not. That is the message as I understand it - correct me if I am wrong @KathleenDollard

tverweij avatar Mar 12 '20 23:03 tverweij

It is a sad day. It was obvious since 2017, and this is why I kept shouting here: MS is killing VB!

In this replay, I said:

So, If the Pattern-Based XML and Generic script with embedded language are both done, VB.NET will work with any new technology with zero cost, because it will need no more tools! I think we can boldly take VB.NET where no developer has ever gone before!

If we can write other languages fragments in interpolated strings with a intillsense and compiler support, we will need no more improvements to VB.NET. We can just embed some C# chunks in VB.NET to borrow the new features directly inline.

@KathleenDollard Could you please give VB.NET that honorable closure?

VBAndCs avatar Mar 13 '20 00:03 VBAndCs

@ zspitz

@WolvenRA

Are there any Visual Basic -like alternatives for .NET? I think all that would happen is these business would move to C#.

If I understand correctly, if someone starts a greenfield project today with a choice of .NET languages, they will probably choose C#, or perhaps F#. The customers of Visual Basic are in the main people and companies who already have projects written in VB; potentially the only major change they'll want to make is to move from Framework to Core, as long as it's a no-brainer. These customers don't feel that Microsoft has failed them, because they're not exactly champing at the bit to add new features to Visual Basic. And it's essential that the migration from Framework to Core be as smooth as possible, otherwise these clients will indeed feel alienated. That's how I read Microsoft's stance -- your current VB codebase will be usable on .NET Framework which will be available for a long time; we'll try to keep .NET Core as compatible as possible with .NET Framework, but no guarantees.

I'm the owner of a software business. If MS follows through on this policy, the alternative is to forget .Net and MS altogether. I suspect that, like myself, VB software companies\developers are sick and tired of being abandoned by MS. Yes, I can move my existing desktop applications to .Net Core. But in the long run that's a short term band-aid. VB.Net web applications are already not an option on .Net Core. The ability to write cross platform applications in VB.Net isn't going to be supported. To be competitive long term, I will have to rewrite my applications... and if I'm forced to do that, I can guarantee that it won't be in C#. It will be in a non-MS language that isn't dependent on .Net or MS SQL. When it comes to cloud hosting, do you think I'm going to use or recommend Azure?

I'm just one of thousands. Will they all leave the MS stack? No, but many will. Do the math. It's a losing proposition for MS. And for what? To save a few pennies? Really?

WolvenRA avatar Mar 13 '20 00:03 WolvenRA

A small press kit for you. What the tech industry thinks of MS and the decision concerning vb.net. Spoiler alert: mockery and scorn.

visualstudiomagazine.com

theregister.co.uk

Padanian avatar Mar 13 '20 08:03 Padanian