Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

When I was at high school I used visual basic 6 and I think it was pretty good. Then I came to the university and began to use c/c++ java python etc.. I didn't find a reason why people laugh at visual basic, is it because of its syntax? or something else?

UPDATE:

all of you have gave fantastic answers, but tdammers's answer is what I'm wondering at first.

Thanks a lot for all your help:)

share|improve this question

closed as not constructive by Eric King, Steven A. Lowe, gnat, Blrfl, Jim G. Sep 14 '12 at 11:31

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

3  
VB doesn’t deserve all the flak it has gotten over the years, but to be fair On Error Resume Next was genuinely hilarious. –  Jason Orendorff Sep 14 '12 at 7:46
1  
when you get a job, you will cry if you see VB –  e-MEE Sep 14 '12 at 9:14
3  
@e-MEE: you will cry about most legacy code in any language. –  Doc Brown Sep 14 '12 at 9:38
    
Shame that people have chosen the answer that they like rather than the real answer. –  JamesRyan Sep 14 '12 at 10:55
    
It should be noted that there are at least 4 different major "flavors" of VB. (1) VB Classic - VB1 to VB6, used primarily to create desktop apps; (2) VB Script - used in Classic ASP to create web sites; (3) VBA - used to automate Excel, Word and Access; and, (4) VB.NET - the .NET Framework language. There are considerable differences between the 4. However, often people will level criticisms based on limitations/flaws in VBScript/VBA that aren't applicable to VB.NET or, in some cases, VB Classic. –  jfrankcarr Sep 14 '12 at 11:52
add comment

8 Answers 8

up vote 42 down vote accepted

Heritage.

BASIC has its roots as a teaching language; its design favored a shallow learning curve over the powerful expressivity and terse syntax that are typical for languages aimed at "professional grade" programming.

Visual Basic, then, was initially based on the idea that anyone should be able to program if only the language were easy enough. Microsoft promoted this idea, and many businesses picked up on it - after all, the idea of getting rid of those pesky programmer types and just doing the same 'easy' work yourself meant you could save truckloads of money and know exactly how the software worked.

We all know how this ended, and as a result, Visual Basic carries kind of a stigma, being the language that incorporates this horrible failure. That doesn't mean it's an intrinsically bad language: modern VB.NET has much of the same semantics as C#, and it can (or at least could) do a few things C# can't.

The language itself is not what people are making fun of anyway: it's the culture that surrounds it, or rather what that culture is believed to be like. Whether the mocking is justified is a different story.

share|improve this answer
3  
VB.NET and C# are really the same language. There are parser classes in .NET that can parse both to common abstract syntax tree and write abstract syntax tree as either. So you can machine-translate one to another and back. Few constructs will get expanded and there will be some extra parenthesis and such, but generally it will mostly round-trip. –  Jan Hudec Sep 14 '12 at 7:15
1  
@JanHudec: They share the same semantics, yes; but the syntax is different enough to qualify as different languages. Just because you can cross-compile between them doesn't mean they're the same language. –  tdammers Sep 14 '12 at 8:47
6  
This was the crux of the issue. VB1.0 was sold as allowing anyone to be able to create a program. The problem was anyone could create a program. Which is why you ended up with travesties of UI design and code that was impossible to maintain. This stigma is something that is hard to shake off. –  Simon O'Doherty Sep 14 '12 at 9:33
    
@tdammers: The syntax is very, very similar. They use different keywords and operators and different order of elements in some constructs, but the translation is really mostly token for token. More like dialects of the same language than different languages. –  Jan Hudec Sep 14 '12 at 9:39
1  
@Ramhound if similarity of the machine code generated is to be used as a metric for defining similarity of language, you're saying C++ from GGC on *nix is a 100% different language than C++ on windows from VC++. This is just not an effective way of defining languages as the same or different. –  Jimmy Hoffa Sep 14 '12 at 14:03
show 3 more comments

Actually, programmers laugh at all languages except the ones they use. This matter is highly religious, if I may say so. Your favorite stack rocks and everything else is sort of funny. Not all programmers think like that, but quite many.

As to the case with Visual Basic, there is an idea circulating in many minds that people who stick with Visual Basic are generally incapable of taking on something more serious. Some believe programming in Visual Basic makes certain changes to your mental pathways from which you can never recover. But it's what they think, I'm not qualified to express myself to this matter.

And seriously, program whatever you like. Who cares?

share|improve this answer
7  
+1 for the first paragraph, but I am not sure I agree with "program whatever you like". It is certainly true for personal programming but for business programming, you are bound with the flavor of the day. –  Emmad Kareem Sep 14 '12 at 3:39
    
@EmmadKareem Bounded with the language your company uses:) –  shengy Sep 14 '12 at 7:05
5  
"Who cares?" Well, the guy who is to maintain your code after you left the company will certainly do ;-) –  Péter Török Sep 14 '12 at 7:32
    
+1 for pragmatism. –  LordScree Sep 14 '12 at 8:05
add comment

Basic is the beginner language for many people.

It has a reputation for creating unstructured difficult to maintain code - most versions don't have object orientated or functional programming features. Early versions used line numbers and goto/gosub for functions

For beginners at school this is fine. But VB's apparent ease of use meant that a lot of business apps were created by untrained and unskilled programmers in a language that didn't make good software engineering easy. And a lot of us have to maintain them since.

This isn't really VB's fault - some programmers can write bad code in any language!

share|improve this answer
    
Good point. It's true that programming language choice is nothing short of religion in developer culture which makes for a bad situation in general, but it's also true that VB holds a very special stigma above most other current languages which I think dates back to exactly what you mention here. Many untrained non-developers wrote lots of VB years back, and many real developers were left holding the bag years later. This has nothing to do with VB itself, other than a good trait it has: ease of use. Unfortunate that this is the byproduct from that, it should be rather praised for that instead. –  Jimmy Hoffa Sep 14 '12 at 4:12
4  
One thing you can say for php - it makes VB look good! –  Martin Beckett Sep 14 '12 at 4:41
1  
But IMHO, modern languages are tend to make programming more easy, such as java c# python, it does many work for the programmer, isn't that a kind of way which would let unskilled programmers write bad code? and why aren't people saying: Oh he uses python to wrote that, he must be a rookie –  shengy Sep 14 '12 at 7:11
    
@shengy - they do, see "scripting vs real programming". Mainly those languages were simplified versions of c++/perl. Basic was a starting from nowhere 1st language –  Martin Beckett Sep 14 '12 at 14:36
    
@MartinBeckett It was more a stripped down FORTRAN II with ALGOL 60 dusted over it. –  World Engineer Sep 14 '12 at 19:13
add comment

Use the right tool for the right job.

When you want to build windowed applications quickly (like tools), Visual Basic is great. It automatically creates much low-level code for you, which means you save time, but you also have generally slower code and lot of dirtiness.

When your principal concerns are size of the executable, speed, programs which don't require an UI (servers, drivers, mission-critical components?), and/or resource usage though, you may find Visual Basic not adequately good for the task. Also, VB is only available on Windows (as far as I'm aware of). Being platform-dependent is not really a great thing when your code to be portable and compatible with multiple platforms.

share|improve this answer
add comment

It's the legacy of Basic as a "teaching language" and more over a teaching language for people who weren't mathy. Basic was something that was a "kiddie" language despite being used all over the place. The original being a little feature incomplete didn't help the perception that it's a underdone language not worthy of serious consideration for "serious" projects. It's programmer chauvinism, plain and simple.

share|improve this answer
add comment

When you join the working world of software development after university, you will realise that there is a staggering amount of snobbery and elitism around. You have to be seen to be using the trendy scripting language du jour, functional programming, whatever it is this week. While lying around on beanbags in your startup, not doing much work and hoping to be the next FaceBook.

As you get older you realise that the best approach is to use the right tool for that job, whether that's assembler or COBOL or VB6, Ruby, JavaScript.

VB was always laughed at even when it was still supported by Microsoft and it got a bad rep because it let bad programmers crank out something that at least looked professional. It's never really gotten over that.

share|improve this answer
add comment

It's largely people's preconceptions and confirmation bias.

In my experience, there is some logic behind it however - during the ".com boom", almost everybody wanted to become a programmer. One of the easiest languages to pick up was VB (low entry barrier), and a lot of people with no programming experience become VB programmers overnight. While some of them "made it" and become good developers, many didn't, creating a bad reputation for other VB developers. The same thing didn't happen on the same scale, for example, with C or C++; those languages are difficult enough that nobody would take "a guy off the street" and expect them to cope, but that's exactly what happened with VB.

The topic is probably far more complicated (with many good points to be made on either side, e.g. language design, etc), but this was something I experienced personally, and was yet to be mentioned here. This post on SO goes into some detail on the rest of it, if you're interested.

share|improve this answer
add comment

Previous versions of Visual Basic encouraged many bad programming techniques in order to make it easier to learn. So it has always been frowned upon by serious coders not only as a micky mouse platform but because it was not good for beginners to pick up bad habits that they would later need to unlearn.

VB's main advantage over good languages was the WYSIWYG designer. With C# came a language with the best of both worlds. The current VB.NET is far more like C# then it's predecessors and only really exists to move coders over.

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.