views:

1058

answers:

19

The question "Are VB.NET Developers Less Curious? Standardizing on VB.NET" made me wonder if VB.net will ever (soon or in 5 years, 10 years, etc) be phased out?

Is there any talk or consideration of doing this? I don't know anyone that uses VB.net to do their development. Everything is done in C#...

Professionally, I only used VB.net once and that was early in the .NET days... Like people mentioned in the other question, VB.net was used a lot during the transition from VB6 to .NET but now more lean toward C# (I love C# much more than VB.net) but that transition phase is long over... It has got to be expensive to support a language the is being (presumably) used less and less.

If you're a dedicated VB.net user (who doesn't use C# much if at all), what would you do if VB.net was phased out?

Note/Update: I do realize that there are still (and always be) people out there that like and want to continue using VB.net. My question goes to the idea that at some point the cost-benefit for its continued maintenance won't make sense and (I suspect) Microsoft will pull (at least) "official" support...

+1  A: 

Basic - Visual Basic - VB.NET - ???

I imagine it will evolve some more.

Not to mention: COBOL, FORTRAN, Lisp?

Joe Philllips
Some things just never seem to die. Now the question is if that's a good thing or not...
AnonJr
multi-touch basic.net is next.
Darren Kopp
+8  A: 

it'll be phased out right after COM is i'm sure.

Darren Kopp
Haha good call.
Paul Batum
+1 :) I think they didn't expect COM to hang on this long, and yet they're the main reason it does. Just about all MSFT software that doesn't come from DevDiv* seem to be more geared towards COM than .NET.* = with one major exception. Visual Studio itself still uses COM interfaces for almost all kinds of integration. I'm surprised that they still didn't dogfood some managed code interfaces into VS itself...
KristoferA - Huagati.com
+1  A: 

There is plenty of VB work still out there (and especially in developing and maintaining old VB systems).

And it's not hard to transition to C#, seeing as how they are built on the same framework.

I personally enjoy VB.NET more just because it is easier to read (in my view). Some people complain about the verbosity, but I never have a problem with that because my typing is so fast that it is not like I feel as if I am wasting time typing.

TheTXI
+1  A: 

The two languages are almost equivalent in features. In fact, I'd say that VB.NET is ahead right now. It has:

  1. XML literals
  2. A LINQ query comprehension syntax for the Aggregate operator
  3. Indexed properties (always has had, and yes, valid question if this is a good idea)
John Saunders
Optional Parameters... Even though function overloading takes care of some things.But you can pry the yield operator from my cold dead hands.
Min
Yet C# has the yield keyword and also unsafe code. Personally, I would rank the utility of both of these features above all of the VB.NET ones you listed...
Noldorin
yield and anonymous methods make C# bearable, and VB....
MichaelGG
A: 

C# is a fantastic language and could possibly be the most important langauge over the next 5-10 years, however it's C/Java like syntax puts off many programming beginners.

VB is a great language for starting out and a way to find your way around the .NET framework with a less steep learning curve, especially when moving from VBA or legacy VB apps.

Jon Winstanley
+1  A: 

Projects such as Small Basic that it won't phase out. Also it shows that Basic is still one of the easiest languages and that's something. IMHO Usability, readability and simplicity are important factors in languages, and basic delivers something good in there.

Funny enough VB.NET is almost easier than most of the scripting languages out there.

dr. evil
If usability, readability and simplicity are important factors in a language, why is C-style languages more popular? You have C, C++, Objective-C (borderline, I know), C#, Java (based on C) and more, I'm sure.
Frank V
If you think like that also you can see that PHP is so popular but that doesn't mean PHP is a very good language. Even most of the PHP programmers agree it's not that much of a good language.
dr. evil
Actually, I've never heard anyone say that PHP isn't a good language. I've heard people prefer ASP.NET to PHP but I've also heard that people prefer PHP to ASP.net. I've always simply considered it a matter of personal opinion... I do prefer ASP.NET to PHP.
Frank V
http://stackoverflow.com/questions/309300/defend-php-convince-me-it-isnt-horrible
dr. evil
+5  A: 

They're adding new .NET languages, not weeding them out. It's one of .NET's strongest selling points compared to java.

le dorfier
Good point but any thoughts on the cost of maintenance for Microsoft?
Frank V
A stable language has about zero maintenance costs. Besides, it's probably a more appropriate language for the ".NET lite" platforms like Mobile.
le dorfier
@le_dorfier: Oh? In what way?
Beska
There's a cost for evolving two languages instead of one, though.
Meta-Knight
+2  A: 

I don't see any reason why Microsoft would phase it out. They seem to be going the opposite direction and adding more languages that compile and run in the CLR. The CLR doesn't really care what language it was initially.

I've been working in C# exclusively last year, and Java for 2 years before that, and VB.Net for 6 years before that. I can tell you that C# and VB.NET coding is pretty much exactly the same thing with the words rearranged. Anyone who tells you different is just being elitist.

Thank you! i switch between the two, for me i don't really see the difference any more!
Darknight
+5  A: 

Don't think that VB.Net will go anywhere ever. The "Everything is done in C#" statement is way off. I'd actually find it interesting if someone made a VB/VB.Net vs C# usage graph by industry/use. I'd imagine ASP.Net would rank pretty high there due to all the previous ASP coders who wrote VBScript for a living. (Eww)

EDIT by MarkJ: Lisa Feigenbaum, a Microsoft PM in the .NET Managed Languages Group, said in mid 2009 that there were slightly more VB.NET developers than C#. She also said Microsoft won’t kill VB.NET because it is not in their interest to do so.

While I prefer C# over VB.Net myself, there are certain use cases where I'd never use a C#. I'd go as far as write most of a program in C# and then a small class library in VB.Net if I ever had to interact with some of the COM APIs out there. The Office COM APIs are one great example of an API which is really difficult to access with C# due to no dynamic binding. When everything comes out as a variant, it's more or less impossible to call methods on them when the compiler wants to resolve everything at compile time.

.. Of course C# 4.0 will fix this by providing the 'dynamic' type.

Mikko Rantanen
Lisa Feigenbaum, a Microsoft PM in the .NET Managed Languages Group, said (summer 09) there are currently slightly *more* VB.NET developers than C#. http://www.infoq.com/news/2009/06/Future-VB.NET
MarkJ
+13  A: 

No, VB.Net is too important to phase out. And polyglot language programming is going to be one of the major selling points of .Net in the coming years.

The only thing I would critique about VB.Net and C# is that the first iterations of the languages were too similar. Now there is some differentiation that is occurring between the two languages and I think that's great. Every single language should have some kind of trait that makes it desirable. There shouldn't be two "Base Level" CLR languages just because there are two large groups of programmers that understand syntax A and another understands syntax B.

Min
Except now the C# and VB teams have said they are going to eliminate differences.
MichaelGG
Yes, they are trying to eliminate differences. I must say that I actually like the idea of parity between the VB.NET and C# features, as both are intended to be general purpose .NET programming languages.
binarycoder
They've _been_ eliminating differences from the beginning. It's an ongoing process.
John Saunders
John, maybe, but C# still went and did a lot of cool stuff. VB.NET won't have anon methods until the next version, for example. C# mocked optional/named parameters until now. Now they've sorta committed to not adding a feature to one lang if they can't in the other. That's a pretty big shift.
MichaelGG
and vice versa, VB added other features not found in C# - XML literals, conditional exception handlers, and better namespace handling to name my favourites. Sounds like they're getting rid of that diversity in favour of 2 different syntaxes for the same thing. pity.
gbjbaanb
John Saunders is wrong. The languages diverged as they evolved. Only in C# 4 are they being brought closer together.
Paul Batum
The main reason why I want the languages to be kept somewhat separate is that the language teams can work on certain features that I, as a C# developer would care more about. If VB.Net became the best language for interacting with COM objects and XML, more power to it. If I wanted to use them, the CLR enables me to use them.What I really don't understand is why Redmond does't want to leverage the power of their CLR? Is learning new languages that hard? Is it against some corporate ethos? Is it the packaging? How about making it easier to use two languages in one project type?
Min
The VB.NET language team seem to think that having lots of bugs in their compiler differentiates them from C#. :-)
Christian Hayter
The C# and VB.Net compiler teams have been merged within MS. At least that is the public info. VB.Net has always had great features. However, I think the focus within MS is favoring C#. Closures in VB.Net are less than optimal. That whole _ line continuation thing gets in the way. The commercial demand for terse code is making VB look less marketable. However, VB.Net, true to its roots, has always provided dynamic binding. MS acknowledges the importance of this. C# will allow you to opt-in to this paradigm in the next release of C#. Will Option Strict On still be a best best practice?
Todd Stout
A: 

Simple answer, NO.

Because there are still tons of devs and existing/new apps using it. And, they are still adding new things to the language. They wouldn't keep updating VB.NET and putting out new releases if they were going to get rid of it. Once we've had 5 or more years without a new version of VB.NET being released, then we may need to start worrying aobut it getting "phased out".

Chris Pietschmann
But why "NO"? I'd like to gain insight in to your "NO"...
Frank V
Because there are still tons of devs and existing/new apps using it. And, they are still adding new things to the language. They wouldn't keep updating VB.NET and putting out new releases if they were going to get rid of it. Once we've had 5 or more years without a new version of VB.NET being released, then we may need to start worrying aobut it getting "phased out".
Chris Pietschmann
A: 

There are too many programmers that would lose their jobs if the VB line was phased out. I wont comment if that is a good thing or not, but i think for M$ they would lost out on a number of sales to the programmers who want to stick with the VB line.

Audioillity
+6  A: 

If you watch Anders Hejlsberg on the Future of C# from PDC, he talks about the co-evolution of C# and VB right at the beginning. He makes it pretty clear that in the short term, VB isn't going anywhere.

JP Alioto
This is another interview regarding co-evolution: http://channel9.msdn.com/posts/Charles/Luca-Bolognese-C-and-VBNET-Co-Evolution-The-Twain-Shall-Meet/
Taylor Leese
+1  A: 

I'm going to go against the grain here: I think they will phase it out eventually, probably within the next five years or so.

By "Phase Out", here, I mean put it on the same kind of life support that VB6 has - the occasional bug fix or security update, they'll leave the MSDN pages up, and they'll keep taking your money for the tools if you really want to give it to them, but overall they'll stop any active development.

For a historical case study, look at Visual FoxPro. Personally, I could never stand the thing, and was more than happy to see it slide into the sunset, but there's still a HUGE installed base and programing community (believe it or not,) and MS more or less said "yeah, but we'd really rather you all move to C# on SQL Server." Based on the way Microsoft has been treating VB lately, I see that as VB.Net's future.

Electrons_Ahoy
A: 

My answer is No.

I am working on maintaining multi-millions dollars web application involving more than 300 developers. And the main language we are using -- vb.net But also we use C# to write service. The company pick the dev tool for a reason for keep making the profits with consistent support from MS.

I think average .net developers should be able to use both language without any issues. How hard it is to learn c#/vb.net syntax if you are already familiar with .net framework ?

RocketsLee
A lot of companies were using Classic ASP, but that has been phased out. Then if that isn't enough, a bunch of companies were using the various phased out SQL servers, windows, windows server, etc. but it didn't stop the from being phased out. My point is a company can be using a technology but if Microsoft needs to, they still may phase out a product. It is their right as the owner. Also, when a product is phased out you can still use it... Update just won't be made available which means no new features....
Frank V
+10  A: 

Lisa Feigenbaum, a Microsoft PM in the .NET Managed Languages Group, said in mid 2009 that Microsoft won’t kill VB.NET because it is not in their interest to do so.

She also said there were slightly more VB.NET developers than C#, which runs contrary to some people's perceptions.

MarkJ
Wow, good answer and nice link; Thank you. This more than answers the original question.
Frank V
Since I don't curl my braces these days, it's a subject I'm interested in! I've also just had a stab at answering "are VB6 devs less curious?". http://stackoverflow.com/questions/783512/are-vb-net-developers-less-curious-standardizing-on-vb-net/1342387#1342387
MarkJ
A: 

Goto the namespaces on MSDN for .Net Framework 3.5 or higher, there are serious gaps as far as VB.Net examples. The writing is on the wall IMO.

Big Country
+1  A: 

I disagree that John Saunders is wrong. MS is moving towards the two languages being virtually identical minus curly braces and semicolons. Since the early days of .Net, VB.Net has been getting the short-end-of-the-stick.

  • You would never create a library in VB.Net, so why should it support XML doc comments? Yes, it's there now, but not until recently in .Net's history.
  • Operator overloading? That's beyond the VB.Net developer's understanding. They won't complain. Yes, it's there now, but for a long time it was not.
  • LINQ - OK, we will provide it now. Future enhancements...no guarantees!
  • Lambda - Sure, but they must be declared to return a value and can only be a single statement (will be fixed in 2010 I believe). This limitation has made closures syntactically painful in VB.Net.

Ironically, VB.Net's dynamic binding has become vogue (for good reasons). C# will support dynamic binding in the next release.

I would truly appreciate someone explaining why dynamic binding is good for C# in its next release, but for VB.Net, in most circles it is considered bad practice to not have 'Option Strict On' at the top of every .vb file.

Todd Stout
+1 - Interesting question about the dynamic binding and Option Strict. I didn't even know they were going that route...
Frank V
+2  A: 

VB caught a slow but terminal illness when they released .net. Classic VB used to be a easy-to-get-started-with language compared to the other dev tools for Windows.

VB.net in contrast is more convoluted and complex than C#, so I think the only reason it still exist is because:

a) there's lot of old classic VB code out there that has been, or will be migrated to VB.NET. As long as that market is there MSFT will maintain it; killing it too early could lose some of that existing market to competing platforms. Wouldn't want that to happen, right?

b) there are a lot of VB programmers who have used VB for years, feel comfortable with it, have not yet taken the plunge into C#. However, the 'getting started' appeal that was there in classic VB is no longer there so I think C# is a lot more attractive to new programmers, and to those who have a genuine interest in programming besides just caching their paycheck.

Only a matter of time until VB.NET will go COBOL on itself IMO, but how long? 2/3/5/10/15/nn years?

KristoferA - Huagati.com