• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

Is there any reason to use VB at all?

screw3d

Diamond Member
What are the advantages? Disadvantages?

My impression is that it's a horrible language to learn, encourages bad programming practices etc etc.

What's your take on it?
 
Originally posted by: screw3d
What are the advantages? Disadvantages?

My impression is that it's a horrible language to learn, encourages bad programming practices etc etc.

What's your take on it?

Well, I started with VB before moving onto C and C++.. VB was easy to learn, very basic (no pun intended), etc.. I liked it for really quick windows program, like if I wanted to write a quick program to do some random/routine task for me I'd write it in VB. For more advanced stuff I use C but even occasionally now if I wanna do something quick were efficiency isn't an issue I'll start up VB.
 
It's an easy language to learn, and great for working with both databases (much less awkward than MFC/C++) and third-party components. If it was a "bad" language it wouldn't be so widely used for in-house applications in corporate America.

I almost never use it myself since I write "shrink-wrap" applications software in C++/MFC but I recognize its value to rapid development and for in-house apps that don't need to look as professional as what you can do in C++.
 
VB is a good RAD (rapid application development) tool as is Delphi (Visual Pascal). They let you create application quickly and easily when performance isn't a huge issue.

I agree with DaveSimmons that working with databases is definately a lot easier than C++ etc.

I prefer Delphi still, but they're both great RAD tools.
 
Originally posted by: DaveSimmons
If it was a "bad" language it wouldn't be so widely used for in-house applications in corporate America.

While I don't disagree with your overall point, this sentence IMO isn't very accurate - corporate america will settle for the most disgusting steamy pile of crap software, if it gets the job done. Even if it juuuuust barely gets the job done. 😛
 
Originally posted by: BingBongWongFooey
Originally posted by: DaveSimmons
If it was a "bad" language it wouldn't be so widely used for in-house applications in corporate America.

While I don't disagree with your overall point, this sentence IMO isn't very accurate - corporate america will settle for the most disgusting steamy pile of crap software, if it gets the job done. Even if it juuuuust barely gets the job done. 😛

VB came into play because the learaning curve for extensive Windows apps was steep. VB allowed easy hiding of the internals so junior programmers (out of school, etc) could quickly through together something that ran windows and looked nice to corporate. Funding was based on the inital RAD presentation.

VB allowed generation quickly of fluff

 
With C# I don't really see why VB should stay around, it seems like a happy medium between C++ and VB. Obviously not everyone is using C# or .NET yet but in the long term I don't see why MS would keep VB around other than to allow a transition period.
 
Since C# and VB.NET both use CLR and and interact easily, there is no reason not to have both languages around. VB (and VB.NET) are great RAD tools for building prototypes and such. The time it'll take to code a GUI application using VB compared to C# is dramatic. One can put together a simple Windows Calculator in 5 minutes using VB from scratch, that can't be said with C#.
 
Originally posted by: screw3d
My impression is that it's a horrible language to learn, encourages bad programming practices etc etc.

Honestly, if you are already sufficiently dogmatic to say such things, would it really matter what anyone else said?

No, it is not a horrible language to learn. No, it does not encourage bad programming practices. If you choose to let the VB wizards perform their little incantations instead of actually learning about them, then you will encourage bad practices. The tool is what you make of it, and if you take the time to actually learn you will be able to wield its faculties. This is absolutely no different than VC++ 6, because it too can encourage bad practices if you choose to let the IDE perform its magic while you remain ignorant. This is why I always so strongly recommend learning the language independent of any productivity tool. Unfortunately, VB was never known as a language independent of the tool, so people often associated the rather childlike facilities of VB with the language itself. The ignorant always associate VB with "drag-and-drop" programming, but that's clearly absurd. In all my days of VB programming I believe the only wizard I ever ran was the one to create the project.

In summary: VB no more encourages bad practices for a programmer than a pneumatic nailer does for a carpenter. Both should require that you understand the incantations performed by the tool on your behalf.

Originally posted by: WobbleWobble
Since C# and VB.NET both use CLR and and interact easily, there is no reason not to have both languages around. VB (and VB.NET) are great RAD tools for building prototypes and such. The time it'll take to code a GUI application using VB compared to C# is dramatic. One can put together a simple Windows Calculator in 5 minutes using VB from scratch, that can't be said with C#.

Yes, it absolutely can be said. C# and VB.NET both include the exact same Windows Forms designer as part of .NET, and there are several other freely available IDEs that include sufficiently powerful Windows Forms designers. I can't imagine it taking any longer to create a simple calculator in C# than in VB, provided that you know both languages.

 
Originally posted by: Descartes

Yes, it absolutely can be said. C# and VB.NET both include the exact same Windows Forms designer as part of .NET, and there are several other freely available IDEs that include sufficiently powerful Windows Forms designers. I can't imagine it taking any longer to create a simple calculator in C# than in VB, provided that you know both languages.

The style of coding is different between the two .NET languages and I still think that VB.NET is quicker to code. Then again, you're a .NET guru so you know all anyways 😉

It may be my VB roots saying what I said, however.
 
Originally posted by: WobbleWobble
Originally posted by: Descartes

Yes, it absolutely can be said. C# and VB.NET both include the exact same Windows Forms designer as part of .NET, and there are several other freely available IDEs that include sufficiently powerful Windows Forms designers. I can't imagine it taking any longer to create a simple calculator in C# than in VB, provided that you know both languages.

The style of coding is different between the two .NET languages and I still think that VB.NET is quicker to code. Then again, you're a .NET guru so you know all anyways 😉

It may be my VB roots saying what I said, however.

I appreciate the compliment, but I hope I don't come off in a pejorative way. My intentions are only to normalize the sometimes malformed perceptions of .NET exacerbated by statements derived from opposition or zeal. I'm not implying that you had such a perception of course.

In my experience, there is a large disparity between VB.NET and C# developers. A lot of times it's simply dogma that separates the two, and it seems this carried itself from the even more profound disparity that existed between C++ and VB developers. Many C# developers were happy to assimilate this condescension before they realized that C# and VB.NET were not so different after all; they're simply different perceptions of the same facilities offered by the same CLR. These debates carried on ad nauseum in blogs before finally everyone started ignoring them.

In my interactions with many developers, my queries to VB.NET developers regarding C# were often met with statements like, "I can't stand curly braces." It seemed their opposition to C# was merely from an aesthetics standpoint; that's better than dogma from C#ers as in the case noted above, in my opinion. They understand that productivity is a very important facet of being a developer (arguably the most important if you wish to remain employed in this market), and you have to respect that regardless of its perception as being a lesser language by so many [of the ignorant]. 😀

And I'll add my typical epilog: Sorry for rambling.

 
I started out doing the whole VB+access thing, then went on to ASP using VBScript when we started developing web applications. When .NET hit, our section jumped on the C# bandwagon after reading about the advances and upon the recommendation of a senior developer. While the learning curve was somewhat steep at first (being that syntax is different and that C# is fully O-O), I found it very similar to javascript and that made the transition easier.

One day i decided to see what VB.NET was all about, since i had a basic background in VB6. I found that VB.NET was so different than VB6 that it was probably easier to just drop VB altogether and go to C# like we had already done. The advantage to using VB.NET, in my opinion, was because it made a very easy transition from VB6. But in retrospect, I'm glad we didn't continue along that course. It seems that if we're going to transition to a whole new language, we might as well learn C#. I can deal with the curly braces. 😉

And Descartes, ease up on people, man. Screw3d merely stated that her IMPRESSION was that it's not a good language to learn. How many people do YOU know with that impresssion? I know plenty, programmers and non-programmers alike. And since it doesn't sound like she's programmed extensively over the last decade, it would make sense to voice "what she's heard" and to inquire about other opinions. If she didn't care what people thought, i doubt she'd ask the question.

And screw3d, if you're a guy (which i kind of suspect you are), stop using a female avatar! 🙂

Don't you think it's bad programming practice to program without caring about case-sensitivity? Ok well maybe not BAD programming practice. But it doesn't exactly help things, especially when you start learning more advanced languages. What about learning to code in non O-O languages? True that's not an absolutely horrible thing, but it isn't too great, either.
 
For standalone application development I'd never use VB as C++ is far better.

However I use VB for supporting Access applications and it does a decent job there.
 
Bad programming practices are seperate from any language... I've seen bad Java, C++, C, PHP, Perl, VBScript, Cold Fusion and everything else under the sun.

Like Descartes said, you must understand the language/framework underlying any IDE. People think I am nuts because I use Textpad for simple ASP.Net development and debugging. I think by doing this, I've developed a decent understanding of what goes on under the hood of ASP.Net applications. I tried VS.NET once, and found that it increased the complexity of my applications and removed the 'xcopy deployment ability' of my apps (darn Codebehind tag!). It takes no time whatsoever to make a batch make file to compile necessary assemblies... Or in some cases I use the Src parameter in the page directive. I was discussing code behind with a VS.NET developer one day and he had no idea that it would compile the DLL's for him (through the use of the codebehind attribute) and upload it to the sites bin directory. How can you troubleshoot your own apps when you don't even know how they get deployed???

Anyways... I'm rambling as well 😛
 
Originally posted by: WobbleWobble
Originally posted by: Descartes

Yes, it absolutely can be said. C# and VB.NET both include the exact same Windows Forms designer as part of .NET, and there are several other freely available IDEs that include sufficiently powerful Windows Forms designers. I can't imagine it taking any longer to create a simple calculator in C# than in VB, provided that you know both languages.

The style of coding is different between the two .NET languages and I still think that VB.NET is quicker to code. Then again, you're a .NET guru so you know all anyways 😉

It may be my VB roots saying what I said, however.

If you know both languages, there should be no difference in time to develop in either language. I am currently working on a project with C# and I have developed using VB6 in the past. I learned Java in college.

When I moved from VB6 to C# and .NET, it took hardly any learning curve. Since I knew Java, that lead to C# coming easy and knowing the IDE of VB6 lead directly into the .NET ide.

I prefer C# over VB.NET but it is all personal preference. Both languages pretty much lead to the same output since they use the same CLR. Just as Descartes said, it is all perception on people saying one is better than the other. It all has to do with what a developer is more comfortable with. I prefer C# because my college background was in java so I like the feel of it. It has nothing to do with me thinking VB.NET isn't as good as C#.
 
Originally posted by: Codewiz
Originally posted by: WobbleWobble
Originally posted by: Descartes

Yes, it absolutely can be said. C# and VB.NET both include the exact same Windows Forms designer as part of .NET, and there are several other freely available IDEs that include sufficiently powerful Windows Forms designers. I can't imagine it taking any longer to create a simple calculator in C# than in VB, provided that you know both languages.

The style of coding is different between the two .NET languages and I still think that VB.NET is quicker to code. Then again, you're a .NET guru so you know all anyways 😉

It may be my VB roots saying what I said, however.

If you know both languages, there should be no difference in time to develop in either language. I am currently working on a project with C# and I have developed using VB6 in the past. I learned Java in college.

When I moved from VB6 to C# and .NET, it took hardly any learning curve. Since I knew Java, that lead to C# coming easy and knowing the IDE of VB6 lead directly into the .NET ide.

I prefer C# over VB.NET but it is all personal preference. Both languages pretty much lead to the same output since they use the same CLR. Just as Descartes said, it is all perception on people saying one is better than the other. It all has to do with what a developer is more comfortable with. I prefer C# because my college background was in java so I like the feel of it. It has nothing to do with me thinking VB.NET isn't as good as C#.

VB is intended for beginners. BASIC was an intepreted langauge since beginning. But there are some things that just can't be done nicely in VB6. When you get to that point, move on to other languages. For me, I use Delphi.

 
Originally posted by: tinyabs
Originally posted by: Codewiz
Originally posted by: WobbleWobble
Originally posted by: Descartes

Yes, it absolutely can be said. C# and VB.NET both include the exact same Windows Forms designer as part of .NET, and there are several other freely available IDEs that include sufficiently powerful Windows Forms designers. I can't imagine it taking any longer to create a simple calculator in C# than in VB, provided that you know both languages.

The style of coding is different between the two .NET languages and I still think that VB.NET is quicker to code. Then again, you're a .NET guru so you know all anyways 😉

It may be my VB roots saying what I said, however.

If you know both languages, there should be no difference in time to develop in either language. I am currently working on a project with C# and I have developed using VB6 in the past. I learned Java in college.

When I moved from VB6 to C# and .NET, it took hardly any learning curve. Since I knew Java, that lead to C# coming easy and knowing the IDE of VB6 lead directly into the .NET ide.

I prefer C# over VB.NET but it is all personal preference. Both languages pretty much lead to the same output since they use the same CLR. Just as Descartes said, it is all perception on people saying one is better than the other. It all has to do with what a developer is more comfortable with. I prefer C# because my college background was in java so I like the feel of it. It has nothing to do with me thinking VB.NET isn't as good as C#.

VB is intended for beginners. BASIC was an intepreted langauge since beginning. But there are some things that just can't be done nicely in VB6. When you get to that point, move on to other languages. For me, I use Delphi.

I disagree. Basic was intended for students. Just look at what Basic stands for. VB added the OO paradigm "features" to basic and aimed to increase RAD for GUIs.

VB wasn't intended for beginners, it was intended for rapid application development. Yes it is basic but MS intent wasn't to create a language for beginners. They wanted an easy to learn language that companies could use for RAD. That is still what it is used for today.

Of course there are some things that can't be done easily in VB. But the same is true of EVERY language. Every language has its shortcomings.

I am far from a VB zeolot. I hardly every use it but don't start spreading misinformation.
 
Originally posted by: Codewiz

I disagree. Basic was intended for students. Just look at what Basic stands for. VB added the OO paradigm "features" to basic and aimed to increase RAD for GUIs.

VB wasn't intended for beginners, it was intended for rapid application development. Yes it is basic but MS intent wasn't to create a language for beginners. They wanted an easy to learn language that companies could use for RAD. That is still what it is used for today.

Of course there are some things that can't be done easily in VB. But the same is true of EVERY language. Every language has its shortcomings.

I am far from a VB zeolot. I hardly every use it but don't start spreading misinformation.

Hi Codewiz, the library of VB is limited and largely depends on COM components to get things done. For VB, it's based on the COM Automation which you won't have access to COM Interface; essentially a scripting language. OO is not even used in GUI. There are no support for inheritance whatsoever.

Since it only supports Apartment Model which deny us of other model. From this aspect, we see two thing. First, using other threading model requires skills with multithreading (MTA) and designing of stateless components (Neutral). Second, scalability of component is limited. For this two things, there are only required when you need high performance and scalable component in high load scenarios. My point is beginners won't need learn about these highly technical stuffs. There are available in VC++ instead.

Another thing is that VB is literally designed for data access programs and web components. By looking at the Wizard/Template, you can see what VB is capable of doing. As I said it depends on components, ADO, Scripting.xxx and 3rd party components are the workhorses that gets the job done. That is what WinDNA and RAD is all about. There are much better RAD tools out there.

>> Every language has its shortcomings.
Like to add this. And every language is designed for a purpose.
 
Back
Top