dotnet / vblang

The home for design of the Visual Basic .NET programming language and runtime library.
286 stars 63 forks source link

How to overcome VB death? #545

Open DzonnyDZ opened 3 years ago

DzonnyDZ commented 3 years ago

So, according to this post https://devblogs.microsoft.com/vbteam/visual-basic-support-planned-for-net-5-0/ on Microsoft's Devblog, VB.NET will be added to .NET 5 in a limited scope, but that's that. There's gonna be no further development of the language. VB has never had so much noise around itself as C# had, yet features have been added and language kept evolving. So relative silence about new VB feature maybe was not a warning sign for many. But the truth is that we didn't get parity of some cool features of C# which can mage language interoperability a problem (e.g. method implementation in interfaces).

I'm starting this thread to figure out what can be done to keep the best (.NET) language from dying.

a) Is there anything that can be done to reverse MSs decision, at at lest keep Microsoft formally in change of evolving VB.NET language, although majority of the work can be done by community. This would be good to avoid fragmentation.

b) If we as community are not happy about MSs attitude to the language, is there anything that would legally (copyrights, licenses etc.) keep us from further evolving the language? By that I mean forking all the relevant repositories, and starting do develop the language further, under a new name, such as many times proposed B# and ship it as a VS extension, bunch of NuGet packages etc. Are all the bits even Open Source (compiler, VS templates, VS integration, VB runtime - what did I miss)?

DzonnyDZ commented 3 years ago

Seems like B# is taken https://www.bsharplanguage.org/, so what about V#?

rskar-git commented 3 years ago

Is there anything that can be done to reverse MS's decision...

Probably not. General-purpose programming languages aren't the big money maker they used to be (and haven't been for nearly two decades). Services and "big data" are where it's at for profitability. Hence, the only programming language development which matters to them are the ones which are immediately aligned with such. C# is central to .NET development, and .NET is central to how services get utilized. Atop that, Microsoft is actively pursuing business in the web/mobile market, which has long been (and still is) dominated by Linux, Java, PHP, and Python, users (with a smattering of C/C++ and Go).

... is there anything that would legally (copyrights, licenses etc.) keep us from further evolving the language?

There is leeway here. Patents expire in under 20 years, so the VB syntax might be (or soon will be) unencumbered. APIs are another story, being under copyrights, which may last roughly up to 100 years. However, since Microsoft has an interest in the ubiquity of .NET, getting permission or otherwise navigating fair-use probably won't be hard.

At minimum, since the Roslyn-based compiler is under MIT license (https://github.com/dotnet/roslyn/blob/master/License.txt), one can establish a new fork of it, code new features, and sell or share such newer versions. Anyone who is properly licensed to make use of VB version 16 can also legally make use of such forked versions.

The key to making something like that work: Somehow most VB.NET developers need to rally around one particular fork, and it would have to be a consortium of business owners to get such a thing started. They would have a shared immediate (commercial) interest in furthering the language, and so would naturally put in the regular level of effort needed to make progress.

...what about V#?

I like VB#, for the following reasons: (1) It's a proper nod to legacy (VB) and present (# for .NET); and (2) the file extensions, .vb and .vbproj have "vb" in them - so no need to change the stationery!

If you have any further thoughts on this, see if you can gin up some more conversation at https://gitter.im/VB-NET.

paul1956 commented 3 years ago

Without Visual Studio WinForms forks of VB will go nowhere. Also many of the features of the IDE are common with C# VB benefits. VB bugs are being fixed, it is getting WinForms support. If anyone wants to write code-fixes (even VB specific ones) they are being accepted. What is not being accepted is new language features and that is a rock that needs to be addressed in conjunction with Visual Studio. One of my pain points was lack of UnChecked math, before the "No New Features" message I wrote support for VB for this, the PR was not accepted. In doing this I found the majority of the work was not the language change it is all the other stuff associated with Visual Studio some of which requires knowledge I don't have and is not easy to find. We should concentrate on getting 1 dedicated VB reviewer with "check-in" privilege's and not forking the Repo and a way to plug in the new compiler into Visual Studio without cloning the source and running an experimental version.

cristianlt23 commented 3 years ago

It is one thing to want to kill a language, it is another thing for the language to refuse to die and still grow.

See the month of July 2020

Jul 2020 | Jul 2019 | change | Programming language | Reviews | change

1 | 2 |   | C ------------------| 16,45% | + 2,24% 2 | 1 |   | Java----------------| 15,10% | + 0,04% 3 | 3 |   | Pitão---------------| 9,09% | -0,17% 4 | 4 |   | C ++ --------------| 6,21% | -0,49% 5 | 5 |   | C # --------------- | 5,25% | + 0,88% 6 | 6 |   | Visual básico------ | 5,23% | + 1,03% 7 | 7 |   | Javascript---------- | 2,48% | + 0,18

FONTE: https://www.tiobe.com/tiobe-index/

DzonnyDZ commented 3 years ago

Unless MS changes their attitude at least a bit, forking will be necessary. The good thing is that we have where to start - so much is written in Roslyn, and VS uses Roslyn. My idea was to fork the Roslyn compiler, delete all stuff C# and common, for the common stuff depend on MS's package. With at leats some involvement from MS we may have issue making complete plug-in replacement (because of assembly identities if nothing else). So maybe it would be worth changing the namespaces in the new packages - essentially removing the "Microsoft" word, replacing it with VBSharp (if we agree on that name), also replacing all VisualBasic with VBSharp, and than replacing all VBSharb.VBSharp. And than finally take a look on all the features we want to include in the language! If MS does some fixes, with some amount of GIT magic it still should be possible to merge them from tier repo to our repo. Also, maybe for any serious work I'd wait until the .NET5 version is out, so we don't have to be thinking of merging the last huge bunch of changes.

rskar-git commented 3 years ago

@paul1956

We should concentrate on getting 1 dedicated VB reviewer with "check-in" privilege's and not forking the Repo...

Yep, that would be nice. Of course, that would take some effort in locating and somehow engaging with relevant points of contact. I have a feeling though that whomever (or whomevers?) wishes to pursue that, they would need to be seen as a serious player and not some hobbyist or small-time developer. And, in any case, tracking down such points of contact and meeting with them and negotiating agreeable terms, etc., is certain to be a full-time job.

I've already prattled about how VB needs a business-owners led consortium etc. etc. so I'll stop here.

rskar-git commented 3 years ago

Outsystems seems to have their own visual coding scheme which gets compiled (actually transpiled) utilizing C# and SQL (plus whatever else). I've never used their platform. They do allow you to utilize your own code into your Outsystems-based application, although it does seem to be C# only (https://success.outsystems.com/Documentation/11/Extensibility_and_Integration/Extend_Logic_with_Your_Own_Code/Extensions). Even so, since they are using .NET, it should be possible to use VB.NET or F# as well as C#; although I wonder if C# glue-code is needed.

I'm not sure how they would see VB.NET as being anything essential to their business model. The core technology they're selling is a "code-less" programming tool that could do at least 80% of the job, and (presumably) can be utilized by savvy non-programmers. Yet, if a customer needed a little more than such a tool could offer, that's where Visual Studio can already fill such gaps, involving actual programmers.

cristianlt23 commented 3 years ago

rskar-git

All right?

The suggestion of Vb.net to be part of the dialects of compilation of external systems like Outsystems, would be just to try to increase the interest of the beginner in programming by the VB.net dialect and taking advantage of the platform's marketing to also increase its visibility, it would only be for marketing same. 😊

In fact, VB.net does not need more popularity, it is always among the 10 most used languages ​​in the world, what VB.net really needs is an active and committed community, but I venture to say why it doesn't.

VB.net does not have a large community because it is:

1) VB.net is highly stable; 2) VB.net until today in 2020 is super competitive; 3) VB.net is easy to learn; 4) VB.net really solves 98% of the challenges for which it was designed.

“Maybe being very efficient, practical, easy and productive was his biggest failure”

So who is currently decreeing his own death is VB.net himself for being very good and simple, he does not generate major difficulties for the developer, VB.net is just fantastic.

Sometimes I believe that all this is a strategy of Microsoft itself, with time VB.net will really be at a disadvantage and at that moment a multitude of users around the world will be able to stand up and act, at that moment maybe a completely active and professional with several significant contributions to improve the dialect.

I believe that for MS to keep 3 dialects always competitive is really costly, in that sense, leaving your best dialect provably stable and modern being managed by a community would be interesting, because while MS focuses on C # the VB community focuses on VB.net

"We don't see the community worrying too much about the dialect, that is because it is very good."

I think that the path of VB.net is no longer in the hands of MS, but in the hands of lovers of the dialect and who knows in the near future we will also be an IDE?

Python has returned to being a cutting-edge language thanks to its community, remembering that Python was more than 10 years in oblivion.

Honestly, I don't know why in 2020 I started studying VB.net even though I knew all these decisions from MS, in my case it would be natural to choose C #, but for reasons unknown on my part I ended up choosing VB

The fad requires constant change to generate revenue and VB.net is very perfect, a ready product, a superior product and MS knows that because it is very good it will not generate much revenue.

The constant changes in the world of development is really very stressful, I think to myself that it would be much better to always evolve what we have in hand, I have a feeling that VB.net is not dying but being born with incredible strength since its community really desires.

cristianlt23 commented 3 years ago

I, on my part, will continue to study and invest in VB.net and who knows in a few years I may be contributing to the evolution of the dialect? it's a possibility.

MS may abandon this beautiful product for business reasons, but developers do not need to behave the same way.

I really hope for the emergence of a VB.net community

texto original em Português Brasil - tradução realizada automaticamente por aplicativo

Eu de minha parte vou continuar estudando e investindo no VB.net e quem sabe daqui uns anos posso estar contribuindo para a evolução do dialeto? é uma possibilidade.

A MS pode abandonar esse lindo produto por questões de negócios, mas os desenvolvedores não precisam ter o mesmo comportamento de pula pula.

Torço muito por um surgimento de uma comunidade VB.net

rskar-git commented 3 years ago

@cristianlt23

Python has returned to being a cutting-edge language thanks to its community...

Yes, that's mostly true. However, Python was very deliberately transformed from a proprietary product into a public-service product (see history section of https://docs.python.org/3/license.html), sometime about 2001, with the establishment of the Python Software Foundation. The stated mission of that foundation is: "[A]n organization devoted to advancing open source technology related to the Python programming language".

From various readings, I got the impression that the developments of Linux and Python were symbiotic. Linux was an attractive way to repurpose otherwise obsolete IBM-PC compatible computers, especially as cheap no-frills servers and large-scale numeric processors. Python began as an interactive tool for numeric processing, with a syntax nicely aligned with the sort of math used for such work, and, of course, it is otherwise a very competent general-purpose scripting language. The rise of Python is largely due to its relationship with Linux, at first for academic reasons, and eventually, with so many people learning Python and Linux at schools, for commercial reasons. Linux and Python were (and still are) free software (free as in "free beer"), and there was (and still is) a growing set of people who knew (and know) how to utilize Linux and Python available for hire; for those reasons, Linux and Python became very compelling technology choices for commercial purposes.

Python, created in the early 1990s, was made to serve the needs of its creator (Rossum at CWI). It is roughly about the same age as Visual Basic for Applications (VBA). VBA (and VB6) was made as a salable product for use by others; its creator had no other purpose for it. Python largely evolved, and continues to evolve, to better serve the needs of its creator and sponsors. VBA/VB6 evolution was in terms of return-on-investment (ROI) calculations of a salable product, so when ROI becomes less compelling versus other endeavors, the product either gets reduced efforts or discontinued.

VB.NET shares the same arrangement as VBA/VB6: A salable product for use by others. By February 2017, Microsoft telegraphed their ROI assessment of VB.NET (https://devblogs.microsoft.com/dotnet/the-net-language-strategy/, https://devblogs.microsoft.com/vbteam/digging-deeper-into-the-visual-basic-language-strategy/). It may take a while for avid VB.NET users to fully absorb and comprehend how that "salable product" history affects general perception and expectations about it. In any case, Microsoft is clearly winding down efforts spent on VB.NET (version 16 marks their end of new features); after .NET 5 compatibility is (sufficiently) reached, it'll be perfunctory from that point on (e.g. major bug and security fixes).

The one advantage that a VB.NET practitioner has over VBA/VB6 ones is that VB.NET is open-source, and so one can enhance and customize it. VB.NET can indeed live on and grow with such an organic start; just start doing interesting things with it, and share your VB.NET changes with others. Over time, such a community can grow and be influential. For anyone seriously interested in taking up the cause for continuing the evolution of VB.NET, the way forward is to establish a relationship with the .NET Foundation, probably starting with the Roslyn project (https://dotnetfoundation.org/projects/dotnet-compiler-platform).

paul1956 commented 3 years ago

@rskar-git unless the maintainers of Roslyn allow feature additions to be merged it is an impossible task. I put in the last feature into VB16, comments after _. I have been successful with adding improved VB support to WinForms, CodeFixes and editorConfig because they didn't really add new language features. There are VB solutions to handle C# Ref Returns and Async For Each (though not well known) so they are not a showstopper anymore but I am worried if future libraries use features that make them inaccessible to VB. VB having uncheck math is something I started on before the Feature moratorium and the Unchecked function part works very well but Unchecked block requires more in-depth knowledge of Roslyn and a "Buddy" which doesn't exist and no one will even look at unchecked functions. I am open to how to use the .NET Foundation to address the issue.

cristianlt23 commented 3 years ago

@paul1956

I made a comment according to the link below. https://devblogs.microsoft.com/vbteam/visual-basic-support-planned-for-net-5-0/#comment-318

I think that after MS makes the last changes to Vb.net the community needs to be born strongly.

Viability depends on good projects to delight Roslyn.

The largest base of VB.net programmers are busy solving day-to-day problems and are not even in this forum discussing the future of VB.net, but through good publicity on social networks explaining what is really happening with VB. .net I'm sure many have joined the community.

But these programmers don't have the necessary knowledge to help with development, how can they help? in this case, a monthly contribution of 1 dollar would be more than enough for the community to have a team 3 times larger than the C # development team for example.

In return, the Community creates a good portal for news, information, tips, forum, being multilingual in English, Portuguese and Spanish (in fact the more languages ​​the better for popularity). I believe that this would really suffice to place VB.net always among the 3 biggest languages ​​used in the world.

cristianlt23 commented 3 years ago

I will post an article on how the programmers' salary behavior is here in Brazil. use the translator

Python has been taking over the space left by VB.net.

The important thing about this article is that it is still among the 10 most preferred and useds.

https://www.tecmundo.com.br/produto/152975-linguagem-programacao-oferece-melhor-salario.htm

Hiring Market

Java: 2.069 job vacancies https://www.catho.com.br/vagas/?pais_id=31&q=java

Javascript: 2.038 jobvacancies https://www.catho.com.br/vagas/javascript/?q=javascript

Python: 905 job vacancies https://www.catho.com.br/vagas/python/?q=python

C# 1.030 job vacancies https://www.catho.com.br/vagas/csharp/?q=c%23

VB.net :79 job vacancies https://www.catho.com.br/vagas/vbnet/?q=Vb.net

VBA: 167 job vacancies https://www.catho.com.br/vagas/vba/?q=vba

VB6: 111 job vacancies https://www.catho.com.br/vagas/vb/?q=vb

Taking into account that Catho is not the biggest recruiter, the biggest source in Brazil would be Linkedin

On Linkedin: job vacancies

Java; 4.000 vagas JavaScript: 5.000 vagas Python: 2.000 vagas C#: 1.000 vagas VB.net: 266 vagas Vba: 321 vagas

Python today took over the vacancies that were previously from the VB world.

VBAndCs commented 3 years ago

I think VB.NET has no issue as a language, and can be used as it is for decades. The real problem is that it is kept away from other platforms and new techs like ASP.NET Core, Blazor, Xamarin. This is why the interest shifted to C#. The issue was not in the language, but what can you use if for. So, if we want to rescue VB, we must make it run everywhere C# can. This is why I experimented with Vazor and ZML as alternatives to Razor to write ASP.NET Core apps with VB.NET. We need to concentrate on the APIs not on the lang right now. If programmers can do all what they want with the lang, it will live, regardless its syntax. The ugly C++/C# syntax has already proven that!

jrmoreno1 commented 3 years ago

@VBAndCs : but Paul is right, either MS does the work of adding that kind of support, or the community does. And for the community to do so, it needs someone that can say "yes". Otherwise, even if it's just a nuget package that needs to be added, it's a nuget package from some random internet crazy, at best a mayfly that's gone in a month, at worse malicious. A business isn't going to want to base it's future on either.

paul1956 commented 3 years ago

@VBAndCs I agree in principle, but even if the development team was 10X the size of the C# team nothing happens without Merge ability into Roslyn and the gate to that is Microsoft.

cristianlt23 commented 3 years ago

@paul1956 , @VBAndCs

Could this gateway to Microsoft be facilitated by Anthony?

paul1956 commented 3 years ago

@cristianlt23 no idea, I have no way to get a response from him.

jrmoreno1 commented 3 years ago

@cristianlt23 : I think if he thought he had the kind of pull necessary to get a someone to say yes, he wouldn't have written his open letter to MS (https://anthonydgreen.net/2020/03/19/part-v-an-open-letter-to-microsoft-ceo-satya-nadella-on-the-matter-of-his-words-and-the-company-he-leads/). I would expect a letter like that to result in either greatly more or greatly less influence than before...

cristianlt23 commented 3 years ago

@jrmoreno1

it is true :(

VBAndCs commented 3 years ago

Anthony posted a promising post yesterday, but he didn't say much about his intentions: http://anthonydgreen.net/2020/07/27/resume-next/

VBAndCs commented 3 years ago

I think we need to take a look at this RoslynPad: A cross-platform C# editor based on Roslyn and AvalonEdit. This can be an open source alternative to VS.NET written in C# (VS code is written in TS). We can:

  1. Convert the source to VB if we want.
  2. Make the editor support VB.NET.
  3. It will be smarter to create a language server for VB.NET to support Intellisense in dozens of editors. so, we get step 2 out of the box.
  4. support all frameworks such as ASP.NET Core, Razor, Blazor, EF Core, Xamarin ... etc in RoslynPad. Having an os editor and a language server will make this easier than extending VS.NET.
  5. Evolve a new VB.NET compiler for our customized editor.
paul1956 commented 3 years ago

There already is a way to get editors to understand multiple languages (sorry I forgot the of the one that GitHub uses but here is an example that supports VB https://prismjs.com/#supported-languages) they are open source projects and is how GitHub allows the code below. GitHub's hasn't been updated for VB in a very long time (years) but it seems to support all the VB language feature through VB16 and they are open to accepting additional syntax if needed. If you use WordPress for example you can include VB code and get if formatted without you doing any work using https://github.com/mkaz/code-syntax-block#:~:text=GitHub%20-%20mkaz%2Fcode-syntax-block%3A%20A%20WordPress%20plugin%20which%20extends,nothing%20happens%2C%20download%20GitHub%20Desktop%20and%20try%20again.

For i as integer = 0 to 10
  J = i - 1 _ ' Comment
         + 1
Next i

Let's not reinvent the wheel If you want a Language server for VB you can port the C# version https://microsoft.github.io/language-server-protocol/ and add VB. My translator does a reasonable just of porting the one above to VB. but it will require cleanup and understanding the VB Grammar. They will accept additional languages.

cristianlt23 commented 3 years ago

I walked around the VB.net communities in several countries and they are really static, no one mentions about the subject "VB support, net" ....

Aren't you worried? Doesn't that matter? is the dialect good as it is?

To say that there are not enough developers on VB.net is silly, or is the dialect really abandoned?

Right here in this discussion we are 6 people .... the vblang contributors haven't said anything yet.

what happened ???

paul1956 commented 3 years ago

@cristianlt23 What "vblang contributors" are you referring to?

VBAndCs commented 3 years ago

@cristianlt23 We have discussed this issue months ago, and there is a new implementation alternative to and compatible with VB.NET named Mercury (see closed issues). You need to look back to previous issues. such as this: https://github.com/dotnet/vblang/issues/497

cristianlt23 commented 3 years ago

@VBAndCs

"You need to look back to previous issues. such as this: #497"

thank you very much

cristianlt23 commented 3 years ago

@paul1956

"A que "contribuidores vblang" você está se referindo?"

I was referring to the forum moderators or administrators

salelele commented 3 years ago

VB.NET is already a very rich language. However perceptions matter and the perception of many companies right now is that Microsoft has killed VB.NET and the language has no future...it is something that Microsoft has been ruthlessly driving home in the false belief that VB.NET developers would ditch VB.NET and start using C# instead; so .net would become like JavaLand that has one language Java driving the entire ecosystem.

Returning to the main question: What can we do to make Microsoft change.its mind? Nothing. Microsoft will not change its.mind...unless a more VB-friendly or more balanced team evolves at Microsoft and.that will take time as people move out and new.ones get hired.

What can we do to avoid VB.NET Language death? VB.NET will never fully die completely...at least for now. But we need to 1) We need to appoint a committee from the community of those who have knowledge.in this work and appoint a project manager from that committee to chart a direction and liaise with the official VB.NET PM at Microsoft when necessary. 2) We need.to encourage formation of user groups and organize our own online conferences to discuss everything VB and raise awareness that VB is still here and can still do kool things. 3) We need a fork of Roslyn...it cannot be avoided as long as the official MS team will accept no new feature suggestions and we do not expect that all existing features will be ported either.. The new fork.can remain open source but will aggressively implement new features and could be sold as VBx (x=extended) or VBnt (nt=New Technology) to differentiate from the official Microsoft version while still acknowledging it....it would be an community driven initiative and would.not draw heavily on 'Microsoft's scarce resources '

VB.NET will not die. Even as we speak, some.community members have know-how already are putting together a new commercial grade compiler and IDE for VB.NET that goes beyond what Miceosoft wants to give.

If we act now and place.the revised product property, we can be sure to leverage the millions of lines of VB Code out there and still have a vibrant following.

The onus is on us because mucrosoft will not change its.mind anytime soon and we should not lose more time.

cristianlt23 commented 3 years ago

VB.NET will not die. Even as we speak, some.community members have know-how already are putting together a new commercial grade compiler and IDE for VB.NET that goes beyond what Miceosoft wants to give.

@salalele This is fantastic! My congratulations and thanks for this information!

The community must launch a very strong slogan to say that VB.net is the most productive and friendly language for the rapidly developing business world.

This should be our main door, companies will not mind contributing if VB.net continues to be an easy to learn and highly productive language.

Let's make VB.net the language of choice for VB6 and VBA programmers.

The business world prefers VB.net!

cristianlt23 commented 3 years ago

"Microsoft has been ruthlessly driving home in the false belief that VB.NET developers would ditch VB.NET and start using C# "

@salelele

Above Salelele brought us information of extreme importance!

VB.net developers are not going to C #, VB.net developers are switching to Python! There is a strong indication that the great increase in the Python language are VB6, VBA and VB.net programmers who switched to Python as an easy coding option, some even say that Python will be the new Excel VBA.

Microsoft doesn't understand, the business world wants practicality and doesn't {

}

See the example of Bubble, it is growing, it will grow and it will continue to grow, companies don't care about the code, they want to solve their problems today and now!

Perhaps this idea could also be a project of the VB community; therefore, when the system cannot execute something bigger the VB.net code comes into play, for sure or the business world would be very happy with all this ease.

However, I think that if VB.net is really adopted by a very active and well-marketing community saying that "VB.net (or another name that proves to be a new product) is the best IDE for the business world and organizations, companies will believe, today the suspicion is upon Microsoft.

There is a lot in VB6, VBA and VB.net all over the world, these programmers need to be sure that their dialect will always be modernized and competitive, this will give a lot of tranquility to the business world, this is our niche! Day-to-day businesses! (gigantic market)

The community needs a beautiful portal with courses, news, study material, examples and support. Of course, this portal will be a subscription, but it does not matter, the important thing is to keep the dialect safe and competitive and to give security to users and programmers who like the VB.net coding style.

cristianlt23 commented 3 years ago

Suggestion for the new name for the VB family

VB ++

:)

cristianlt23 commented 3 years ago

@DzonnyDZ Was there any evolution of your suggestion and proposals?

salelele commented 2 years ago

@DzonnyDZ, Sadly, no community driven version of VB has taken off yet...but that does not mean that it is not being considered! Our shop is still predominantly VB.NET, some Visual FoxPro and very very little C#. We are still laying out new products and rewriting VB6 ones in VB.NET and we know of those who want to venture into tools that support or extend VB.NET!

Some members of the VB community are moving to remobjects mercury, not python! but VB.Net retains a vibrant following and new programmers will join the community as they are introduced to programming. Microsoft is also actively supporting VB.Net for desktop an that is a good sign that perhaps in time, VB.NET Core as we call it will begin to support more workloads and allow VB.NET devs to do more things.

Until then, most of us are staying with .Net Framework (because that is where we have stable coherent data access, web and mobile web) unless if a customer specifically requests multi-platform (Linux for us; as the MAC community here is next to non-existent except for those involved with graphics)!

DzonnyDZ commented 2 years ago

Hello @cristianlt23, @salelele,

I have not done any practical steps yet. But I want to start something over this summer and see whether it has some community support and value for the community. Currently I’m working on several other commercial projects which I would have to abandon or scale down (as unfortunately day has just 24 hours). So, I wanted to put the VB Rescue project on Kickstarter or some other platform to raise some backing for it and to be able to devote a time to it and hire other developers to help me out. I’d like to keep it open-source so it would be freely available to the community. Phase 0 would be launching the project on Kickstarter, that should happen over the summer. And then, if the project would be successful, start developing in phases. Phase I would be to port whatever Microsoft has currently (and they have done great job with .NET 5 support) to custom code base. Phase II would be to support some additional scenarios like Xamarin and close some gap between C# and VB. Phase 3 would be future development. Naturally, we must keep parity and future compatibility with C#, but we can also pursue VB’s own path and be (as always) better than C# 😉. Also, since this would be brand-new product, we need to have some migration tool (nothing complicated for Phase I, just changing file extensions) but at the same time we can afford to abandon some of the most obscure features of Visual Basic, so we make it easier to move forward but not in Phase I.

Would you have any suggestions how/where is the best to obtain backing for the project? Would you be, would anybody on this thread be, willing to back the project?

cristianlt23 commented 2 years ago

@DzonnyDZ Hi :)

Your project is Fantastic, my most sincere CONGRATULATIONS!

But first, I would like to make some considerations.

VB developers are currently very fragmented, we are not a very strong community yet, this is due to our own history within MS, many do not want to bet on VB anymore due to the historical fact of VB6 and due to the recent fact with VB.NET and we can still include the VBA that years hasn't had a significant evolution, we can't blame the programmers for this attitude.

But before starting any project, I believe that first we need to gain the trust of VB programmers again, I even think that before anything else we need:

1) Make a strong and secure commitment to a strong and Active Community; 2) We need to provide security and continuity of evolution; 3) Make it clear in which scenarios we will be acting strongly; 4) We need to include VB.NET in the game WEB App, WEB Mobile, Native APP, IA, ML to enable and encourage the creation of libraries by VB developers; 5) We need to create documentation for all these scenarios; 6) We need to create a place where all this documentation can be gathered to facilitate the search for information.

After these steps the VB developer will realize that the Community is safe, active and trustworthy, after these steps we will be ready to present several other projects, and at that time, we will have much more support, including from companies and governments

When you say that "we can also follow VB's own path" I think it's the most sensible path, it seems to me that the VB world is no longer exotic within MS, among the languages ​​that it supports today the VB world seems no longer to fit in.

Let's see:

C# is the focus F# has more support on the .Net, but largely due to its community JavaScript gets a lot of support TypeScript is the focus // All daughters of "C"

I particularly believe that the future for VB.NET is really going forward on its own legs, having its own IDE, its own Scripting language etc so we can gain the trust of the business world and developers.

I would like to suggest that you visit the following websites:

https://gitter.im/VB-NET here there are activities, but we need more developers to join the cause, here we can also help evaluate your project and maybe gain supporters.

https://github.com/CommunityVB/Main here there are already some projects in progress.

But to answer your question: "Would you be willing to support the project?" my answer of course yes!, including promoting it in the business world for the possibility of financial support.

mrange commented 2 years ago

Hi. Just FYI I seen VB being discussed at twitch during language runtime community standup and the opinion at MS seems to be that VB developers are happy with the state of the language and don't want features but rather stability. They say they are committed on making sure VB will still be updated so that it works but they are not looking to expand to it (possible exception; support source generators).

One way to make your voice heard is to join the language runtime community standup on twitch (https://www.twitch.tv/visualstudio) or on youtube (https://www.youtube.com/user/VisualStudio). Perhaps you can even find a community for VB there?

I think you are correct that F# might seem more "alive" due to it's community being quite engaged. I think this is also the reason that we will see a dotnet conf "Focus on F#" (https://focus.dotnetconf.net/). In terms on number of developers there are less F#:ers than VB:ers I think is safe to say.

Good luck!

(But F# is not a C-style language :) )

PS. IMHO F# has been helped by individual contributors in creating a state of the art VS Code plugin for F# (when VS tooling was lacking), really awesome documentation (https://fsharpforfunandprofit.com/), F# weekly update (https://sergeytihon.com/fsharp-weekly/) and the F# foundation (https://foundation.fsharp.org/).

PS. There are also Slack and Discord channels for F# devs.

pricerc commented 2 years ago

VB developers are happy with the state of the language and don't want features but rather stability.

That's probably partly true.

I think by-and-large, most VB developers probably value stability over new features.

Any sane developer in any language should prefer stability over new features.

And by-and-large, most VB developers are more-or-less happy with the state of the language. Otherwise, there wouldn't be so many of us.

That MS choose to interpret these two as "don't want features" is the annoying part.

paul1956 commented 2 years ago

A lot of work is being done on WinForms to support VB, source generators already mentioned are very significant, plus more compatibility with new .Net requirements like initOnly and System.JSON (which had major issue with VB initially mostly due to missing documentation now fixed), and a ton of refactoring built into the Visual Studio. That is a lot for effort for a dead language. If you feel strongly that something critical is missing open an Issue, get assigned a buddy and work on a PR (you can do them in VB). C# and F# have a vibrant community of developers that extend the language. VB has a higher bar because stability is valued over the next shinny object. Most refactoring added to Visual Studio include C# AND VB the new formatter handles both languages and the way most new features are add is a common base class and the separate VB and C# components to handle the language difference. I didn't like the way the formatter handled comments after line continuation

If x = 4 _
 _ ' Comment
 Then

because that is a very VB thing and the generic formatter code doesn't handle it. So I am working on a PR to fix it, at least 3 people are helping and it exposed an issue in the formatter that needs to be addressed separately. Complaining will not help.

ocdtrekkie commented 2 years ago

I think the big issue isn't that stability is bad, but that there's no support being built for VB on Microsoft's new frameworks. Supporting VB use in MAUI would not necessitate breaking stable use of VB in WinForms. But the lack of support for things like MAUI is killing VB's future.

cristianlt23 commented 2 years ago

@mrange

(But F# is not a C-style language :) )

thanks for the correction, my text really didn't look good :)

cristianlt23 commented 2 years ago

@ocdtrekkie

I think the big issue isn't that stability is bad, but that there's no support being built for VB on Microsoft's new frameworks.

I fully agree!

I particularly believe that VB will have a good future only on the day that (https://foundation.VB.org/) is born. VB.NET definitely needs to be playing many other scenarios like WEB, IA, ML, IoT and etc., otherwise, why would anyone choose VB as their working tool? Within MS we will no longer go anywhere that is of relevance! if nothing comes up then the VB will be dead for real.

Here I left my manifest - Ctrl+F "cristian luis teixeira" https://developercommunity.visualstudio.com/t/add-visual-basic-support-to-net-core-3-wpfwindows/750543?from=email&viewtype=all#T-ND1381926

zspitz commented 2 years ago

That MS choose to interpret these two as "don't want features" is the annoying part.

I think it''s a little hard for external developers to see or appreciate what's going on internally. But we do have a (former) inside view -- Anthony Green's blog posts beginning with A Primer on Why the Chronic Suffering of the VB.NET Community is Neither Necessary Nor a Matter of Expense or Practicality. In it, he states:

VB.NET has more than enough above average folks who want to contribute and have tried to contribute but that desire has to be grown and supported by a group of folks who treat it as a priority.

He goes on to argue that Microsoft needs to provide a team of 3-5 developers who are only tasked with VB.NET -- advancing the language, growing the community, providing support; and independently of the C# language team. This model could be -- and is -- successful, because that's precisely the model used by F# -- a vibrant open-source community, with Microsoft providing coordination and internal support.

And the stability argument is also not really valid, as @pricerc pointed out: every developer in every language needs stability. But it's not an either-or. C#, with it's boatload of new features in every release, is still stable -- code written against .NET 1.0/C# 1.0 will generally compile just fine under the latest version of the Roslyn nightlys. In another blog post, Anthony points out that F#, in the language suggestions repo, states quite baldly:

Stability is a virtue.

and yet, that hasn't prevented F# from adding feature after feature, and having multiple point releases.

Admittedly, Anthony no longer works at Microsoft, so it might be argued that things have changed. But have they? We're coming up on C# 10. C# has had pattern matching for 3 major releases now, and nullable reference types for two; the claims that "these are a sort of grand experiment, and we're waiting for all the bugs to be shaken out in the C# implementation before bringing it to VB.NET" are getting a little old. Let alone fixing what IMO is the VB.NET billion-dollar-mistake of hiding type-checking operations behind a confusing syntax with misleading implications, particularly egregious in a programming language that aims to be as close to spoken English as possible or reasonable.

I would dearly love to be proven wrong, but I don't think I am mistaken here.

pricerc commented 2 years ago

That MS choose to interpret these two as "don't want features" is the annoying part.

I think it''s a little hard for external developers to see or appreciate what's going on internally.

Fair point, but the optics from Microsoft remains what I was responding to, @mrange 's statement:

Just FYI I seen VB being discussed at twitch during language runtime community standup and the opinion at MS seems to be that VB developers are happy with the state of the language and don't want features but rather stability. They say they are committed on making sure VB will still be updated so that it works but they are not looking to expand to it

If this isn't the message they want heard, then they need to publish the correct one. Loud and proud on this forum.

VBAndCs commented 2 years ago

A language is marked to death if it stopped attracting new developers. In that matter, I think VB.NET is loosing the competition with Python, Java and C#. This is due to two reasons:

  1. VB.NET grown too verbose and less smart.
  2. MS killed VB.NET growth out of win desktop apps, and this flushed it out of web and mobile markets.

So, we need to work on these two problems. Addressing 1, I believed that VB.NET has an opportunity to gain more devs by using Small Basic language to introduce it to kids and beginners. I worked on making SB easier and more powerful, by creating Small Visual Basic. I just released v1.0-preview today: https://github.com/VBAndCs/sVB-Small-Visual-Basic/releases/tag/v1.0-preview I know that there are many IDS for SB, but they just complicate things. Besides I start improving the SB language itself to feel and taste like vb6. Just double click the Button and write TextBox1.Text = "Hello" I hide all the the SB verbose code in a code behind file, and all the designer advanced graphics are saved in a xaml file. Sp, the kid can just focus on the job and have fun with code. In fact, this project aims to be a training intro to compilers for VB.NET devs. This is why I translated the SB code from C# to VB.NET!

Addressing 2, there are a lot of work done by community,

I think it will not be too long before we figure out to what direction we will take VB.NET. Right now, I hope we focus on inviting kids to Small Visual Basic, and make them love VB the way we do. At the end, kids are the future.

Happypig375 commented 2 years ago

Hey, Microsoft is talking about VB.NET https://www.youtube.com/watch?v=POU7RxyBAoI

cristianlt23 commented 2 years ago

@VBAndCs his work is amazing and of great importance for the future of the Basic language.

However, we need that same material with many examples today for current VB.NET developers, many don't even know that VB can also play in the WEB world, many still think only of desktop systems and don't try anything else and when they look for some example, they just aren't there, so it's easier to look at examples from other languages ​​even if you're not familiar, but the example is there, it's a matter of days before he starts liking other languages.

"I usually say that the easiest one without any example is more difficult than the most difficult one that has many examples, with time the difficult becomes practical and easy."

I start improving the SB language itself to feel and taste like vb6

VB6 still has a lot of charms and I think it's a very competitive dialect with Python. With that, who is now very happy is B4X, is in several scenarios where VB.NET is not, it is simpler and much more RAD, all these facilities play against VB.NET which is today the most isolated of all children of BASIC.

We need a meeting place to gather as many VB.NET examples as possible!

VBAndCs commented 2 years ago

@cristianlt23 The samples issue can be solved by @paul1956 C# to VB converter. In fact mercury has a browser add-in to translate code samples in docs while you are reading. We can use @paul1956 converter to crate such a doc sample converter.