Fog Creek Software
Discussion Board

What is the future of Visual Basic .NET

I just attended a Visual Basic .NET tour presentation by Microsoft employees in the Silicon Valley and from what they presented there is a huge potential for VB.NET.

Now, I am trying to change my skills from Java to VB.NET, anyone agree here that this is a right move considering VB.NET covers almost all facets of applications, Windows apps, Web apps, Mobile apps, etc.

Please advise.

Tuesday, August 27, 2002

Hm, yes. It's a pretty secure move, given that Microsoft is investing gazillions on it.

Leonardo Herrera
Tuesday, August 27, 2002

Why not learn C# which is very close to Java and more powerful than VB.NET ?

Robert Chevallier
Tuesday, August 27, 2002

Discount anything MS tell you, base your decision on real evidence. What facts make you think you will be more productive / higher earning / improving quality by switching from Java to .Net?

Tony E
Tuesday, August 27, 2002

<<Discount anything MS tell you, base your decision on real evidence. What facts make you think you will be more productive / higher earning / improving quality by switching from Java to .Net? >>

As far as I know in terms of GUI, Java sucks and Microsoft technologies (VB, C++, C#) are still the best, let's admit it.
And also, when I am searching for Java jobs, a lot of them are only for web based applications, in reality there's a lot of applications other than web apps.

So I agree that going to C# from Java is a better alternative. Java will soon die, I think it is just a fad.

Tuesday, August 27, 2002

[ Java will soon die, I think it is just a fad. ]


I personally like c# better than because it's closer in syntax to Java, almost identical IMO. I wont give up on Java though, too many organizations use it to just discount it as a fad.

Ian Stallings
Tuesday, August 27, 2002

As far as java dying:
Enterprises still use unix over windows  and until that changes, .NET will not displace java, and it is not likely to change

As far as C# similiar to java, what gets me is why did they need structs in C#? this could lead to some very weird bugs, when you reuse a struct that you though was an object

Daniel Shchyokin
Tuesday, August 27, 2002

General responses:

C# is *not* more powerful than VB.NET. The two languages are, once you get past syntax differences, essentially identical.

As for why have structs in C#: efficency. Structs live on the stack rather than the heap by default. Why waste time on a heap allocation for a 2d point, for example? In practice, structs & objects just work; I've never had any kind of problem with "thinking a struct was an object".

Chris Tavares
Tuesday, August 27, 2002

I would not get too hung up on the language that you are using. VB.Net is a fine language as is Java and C++ ( and I assume C# - have not used it yet). Using any of these languages one can create brilliant applications and can also have complete failures.

I think that you are better off ensuring that you have a grounding in general concepts of good software development and design. These concepts and patterns tend to be larger than a single language.

In many ways using several languages can help by exposing you to many differant ways of doing things. It is kind of like cross-training with multiple sports to help your main sport. You can then use the best things out of all of the differant languages that you use.

I also do not buy the "... is dead/passing fad" quotes. Generally speaking once a language is used by several companies for more than a few years it creates enough of a critical mass to keep itself going, regardless of the marketing hype that is spun around it.

Tuesday, August 27, 2002

JB - quite.  COBOL may be dead in the popular press, but there are still plenty of people making plenty of money from it - either their business systems run it, or they make a living programming in it.

Rodger Donaldson
Tuesday, August 27, 2002

I'm pretty sure that there are a lot of things you can do  in C# that you can't do in  I can't say for certain (i've programmed in VB6 though), but I don't think you can do method overloading, or inheritance, operator overloading, and a bunch of other stuff. Now, those arn't VITAL to an application, but they certainly make life easier and cleaner.  Also, who likes VB syntax for large apps???

Vincent Marquez
Tuesday, August 27, 2002

Method overloading? Yep, it's in there.

Implementation Inheritance? Yep, it's in there.

A lot of other stuff? Yep, it's in there.

VB.NET is *NOT* VB 6. MS took out a lot of the aggrevating limitations of VB in the .NET version. It's a real, full grown, not quite so annoying language now.

The biggest argument against VB.NET at this point really seems to be this: VB.NET is different enough from VB 6 to be a different language. If you've got to learn a new language anyway, why not learn C#?

Chris Tavares
Tuesday, August 27, 2002

1. There are lots of VB6 code out there waiting to be upgraded to .NET

2. The wizard in VS.NET will only upgrade VB6 to VB.NET.  VB6->C#.NET conversion is not available.

VB.NET will have a great future.

Amour Tan
Tuesday, August 27, 2002

If computer programming languages were horses in a race VB.NET would have the shortest odds. That's because it would be 3 times bigger than the other horses with giant legs and a stride equal to about 6 strides of the other also rans. Basically its a guaranteed winner, baring disaster. Two of the other horses will get minor places and may even pay more than the winner due to the longer odds.

What am I saying - I dont know, VB net will put bread on your table for sure. The problem is that everybody else will have backed it too.

Wednesday, August 28, 2002

I agree.


Java will not just die. It will continue to grow


If you want to learn another language now, learn C# and not VB.NET. A lot of lame ex-VB people will attempt to switch to VB.NET.

The syntax of C# is so similar to Java (guess why) that it would be stupid to not learn C# as a seasoned Java coder.

Patrick Ansari
Wednesday, August 28, 2002

Learn VB.Net.
Learn C#

In the near 'future', if you are using  Visual Studio.Net to develop with, you will end up using the most appropriate language for each chunk of your programs.

UIs may be written in VB, deeper code may be in C#. You may have specialised sections in C++.

It should not be difficult to learn 2 new languages. At least, if you are a programmer.

Wednesday, August 28, 2002

That's bollocks. The whole point of .NET is that you can use the language you're most comfortable with.

Remember, you can subclass classes written in any other .NET languages.

Patrick Ansari
Wednesday, August 28, 2002

The only advice I am going to give you is this.  You should have spent more time thinking about how to word your question before you posted it.  Here is how I might have written the post you made, "I recently attended a very impressive presentation on the VB.NET programming language that was given by an employee of Microsoft.  Since I am currently a Java developer, I don't know much about what Microsoft really has to offer, but I am interested in learning more.  Can anyone tell me what they know about the VB.NET programming language and why they like or dislike it?  Btw, I am thinking about abandoning Java and making VB.NET my programming language of choice." 

Imo, which programming language a person should learn next is a very personal matter.  The following are just some of the factors that I feel a person should take into account before making such a decision:

*  Preference of syntax (i.e. curly braces vs. verbose).

*  Type of programming you do for a living (business, commercial, both types, none). 

*  Popularity of the programming language.  Note: A hobbyist programmer may not care about programming language popularity, but a highly paid contractor or corporate drone will.

*  Limitations of the programming language.

*  The type of operating systems you know.

*  Programming languages you already know.

A.B.S., I have a few questions for you. 

Since you mentioned that you already have some Java programming experience why do you want to learn VB.NET instead of C#, C++, Perl, ...?

What do you know about the .NET framework?  Do you have an opinion on why Microsoft even created it?  Many people, such as myself, think it was to compete with Java and to gain market share in areas where Microsoft is currently weak. 

----  Why I chose to learn more about VB.NET  ----
Currently, I am teaching myself VB.NET and ADO.NET.  I am doing this primarily for financial reasons.  I write boring database driven business applications for a living.  I have prior paid experience with Visual Basic.  Granted, VB and VB.NET are not the same animal, but many employers don't see it that way.  I rarely have the luxary of being able to write source code all day long (I have a broader skill set than simply programming).  I could go on and on and on, but these are the main reasons why I chose to learn more about VB.NET.  Once I become more familiar with the .NET framework, I will probably try to learn C# and ASP.NET as well.

Imo, learning programming language syntax is not that hard.  Being productive with everything that is associated with a particular programming language is another matter altogether (i.e. Classic VB - various data accesss methods, API hacks, third-party components, etc.).

Charles Kiley
Wednesday, August 28, 2002

So is C# going to turn C++ into a 4GL, or have RAD environments already accomplished that?

Dunno Wair
Wednesday, August 28, 2002

My understanding is that will be able to achieve exactly the same end result as c# with zero differences.
I view c# and vb as wrapper languages/syntaxes around the CRL.

Am I not seeing the full picture, is there more to it?

Wednesday, August 28, 2002

Considering the installation base of VB6, I think in terms of marketability, you are better off knowing VB.NET instead of C#.
Take note that Microsoft will only support VB6 and earlier version up to 2005 with final extension of until 2008, so companies need to migrate to VB.NET before that date or else they will end up no support from Microsoft.

Mike S.
Wednesday, August 28, 2002

I don't get this.  If you're a Java coder, why not learn .NET?  It's clearly an MSFT thing, made easy for Java people to switch over, and might as well cover your bases in that incestuous, copycat space.  Only part that sucks is you probably have to pay MSFT for the privilege of making apps for their platform.

You'll probably have to interop anyway between Java and .NET.

Thursday, August 29, 2002

Market Cap. of MSFT : $267 billion

Market Cap. of SUNW : $13 billion

VB.NET should have a bright future.

Amour Tan
Thursday, August 29, 2002

To be fair you should at least compare market cap of MSFT .vs. SUN + ORACLE + IBM + BEA + ...

But *.NET of course will stay, like Java (server side and mobile side).

Robert Chevallier
Thursday, August 29, 2002

"Market Cap. of MSFT : $267 billion

Market Cap. of SUNW : $13 billion

VB.NET should have a bright future. "

The same sort of bright future as DCOM, Hailstorm, or digital dna? Those were all MS backed. This is certainly one of the issues that is brought up against .NET. Would you bet your development future on a company that makes it's money through software churn and planned obsolesence? If you go VB.NET this year and in two years time VB.NET is replaced by Visual Haskell what do you do then? One of Microsoft's most successful tactics, because they have so many developers, is to change things around so qucikly that competitors find themselves trying to imitate last years hot thing. Unfortunately this can mean that the hot new technology you've just learned is declared old hat and replaced just when you've got the hang of it.

Alex Moffat
Thursday, August 29, 2002

[The same sort of bright future as DCOM, Hailstorm, or digital dna?]

Thats not a fair comparison. DCOM is a small part of COM which you cannot develop on Windows platforms without, Digital DNA is just a marketing term that ties all of their servers and their COM/COM+ tools together. Hailstorm was simply a idea that they didnt feel like pushing but it was far from the core of .Net, it was really just some tools built on web services and  passport using .Net, portions of it still exist and will move forward. MS is putting their whole weight behind .Net, it's their next COM. I see it as a great new win32 api that makes the hell of COM a thing of the past. Unfortunately though COM is not going away and interop between the two is part of the plan. .Net might not take off like the rocket they thought it would be, but I think that's because the market as a whole is not doing that well and also there is some confusion, due to shoddy marketing, on what .Net exactly is.

Ian Stallings
Thursday, August 29, 2002

OK. Let me get this straight:

1. Microsoft's market cap is 20 times greater than Sun's so we should worry about Sun folding and leaving Java developers out in the cold.

2. Microsoft has the money, and size to make VB.Net (and all of .Net) old technology next year and we'll all have to learn something new just to survive.


1. Neiter 1 nor 2 above is likely to happen

2. I'm going to get out of this profession and spend all of my time fishing.

3. Mental breakdown is also an option.

Thursday, August 29, 2002

Drifting back into the merits of languages and platforms, rather than the market caps of software and hardware firms...

Should you learn any .NET languages at all? If you want to be able to work on Windows in the next five years, certainly. If not, it's more of an intellectual exercise; Mono isn't ready for production use yet, and I think the license for Rotor limits its commrercial use.

Microsoft suggests that if you're coming from a C, C++, or Java background, you'll probably want to do .NET in C#; from a VB6 or VBScript background, you'll prefer VB.NET. There are a small number of things that can be done in C# but not VB.NET, and even smaller, but real, set of things where the reverse is true, but both are pretty much a superset of Java in terms of language capabilities (note that I said language, not platform).

I'm a VB.NET fan myself. The unique capabilities of C# (mostly unsafe code and operator overloading) are of little use to me, I prefer VB.NET syntax (more verbose, case insensitive, less punctuation-heavy), and I like having some things that the VS.NET IDE provides for VB.NET but not C#. The unique VB.NET features aren't all that useful to me either (much cleaner late binding, default/optional paramaters, Handles on event handlers, Implements on interface overrides, and Catch/When), but I like having them around.

Dave Rothgery
Thursday, August 29, 2002

"But *.NET of course will stay, like Java (server side and mobile side)."

Care to elaborate on that Robert?
In my experience the reason Java never took off on the client is that there is no decent GUI support (Swing? you must be joking!). With a .NET Windows Forms app, the user does not even notice it is a .NET app. Everything runs as fast and feels exactly like a traditional application. Developing with Windows Forms is also very straight forward and easy (as opposed to MFC). So why is it you feel .NET will not be used client side?

Just me (Sir to you)
Monday, September 2, 2002

*  Recent Topics

*  Fog Creek Home