Things We Love About Vb Classic

Okay VbClassic lovers, here's where you can reveal your passion for the language that dare not speak its name. There are a lot of people spouting on ThingsWeHateAboutVbClassic - this is the place to show 'em where they're wrong.

(For our feelings on VisualBasicDotNet, see ThingsWeLoveAboutVisualBasicDotNet.)

Please vote for an updated VB6 at:

The main problem, as I see it, is rank prejudice. The TrueHacker assumes that VB is a baby language and that those who use it cannot be RealProgrammers. Such arguments cannot be countered since they are not based on logic.

VisualBasic, when in the hands of someone who has a firm understanding of MicroSoft's ComponentObjectModel, is an excellent tool for prototyping/writing ComComponents. Granted, this is not usually the type of person you find using VB. =(

Once again, it depends on what you're attempting to accomplish. You always need to PickTheRightToolForTheJob. Being that I am LanguageAgnostic, I pick and choose between VB, Java, and C++ based on the requirements of the ComComponent.


VisualBasic programmers have no difficulty finding a job. --

Now they are rewriting everything into web apps, often abandoning VB and VB programmers.

MS's use of VBA to add consistent scripting to Word (replacing WordBasic?), Excel (replacing Excel Macros), and Project (don't recall the limited original macro/scripting tool) and now Office Forms and Outlook 2000, was a smart move. And the ability of VBA to interface with each application's object model offers a great deal of power that is too infrequently used to advantage. Some industrial strength applications have been implemented using VBA and Office applications. --JimRussell

Some industrial strength viruses have been implemented using VBA too! : ) -- KellyDenehy?

It's the only language I know of that successfully integrates both visual and textual syntax. Other so-called "visual" IDE's just have a half-assed visual language tacked on top of a straight textual language. The result is complicated and hard to use, because you have to learn the visual syntax of the GUI builder along with the textual syntax of the "real" language and the weird interactions between the two languages. Ick. Visual Basic works because the visual syntax is an integral part of the language, not just a tacked-on layer.

if you want to see the best. Two - Way - Tool around, have a look on DelphiLanguage! Integration of GUI and text is very smooth, but the GUI 'language' is not an integral part of the textual language. Does VB GUI - Builder work like the GUI - Builder in Borland's JBuilder ?

What can Borland/Inprise do to compete with VBA? --

That is not the question. The one million dollar question is : How can you make enough money only with development tools ? Borland challenges this for years. Now they merge with Corel, which would be a better move, if Corel were more successful with its products, especially the office suite. I'm considering Borland's and Corel's way to linux a little bit risky. How can you make money in a environment, where most software is for free? --ManfredSchaefer

Maybe time to start a discussion on FreeSoftwareEconomics

Its an easy way to make almost any Windows desktop application. There's not much that VB can't do. Did I mention its really easy?

Since the software executes from P-code, a developer can place a checkpoint in the code, step past a statement, inspect a variable, and if he doesn't like what he sees, he can change the code, relocate the instruction pointer, and re-execute the statement. All without rebuilding. Way cool.

Possibly the biggest reason for nostalgia in VB.Net, which isn't interpreted. --MikeWoodhouse

"Since the software executes from P-code, " When debugging or explicitly stating the code should be interpreted, this is true. But VB6 is compiled at runtime to native code using the same compiler as vc++6 (c2.exe)..

  1. How easy it is to create great looking GUIs that feel native (unlike Java)
  2. The component framework it is based on. The "toolbox" ideology(COM) is leagues ahead of many other languages. Other languages implement their own component frameworks, it just seems vb got it right the first time. The use of COM in c++ is equally/more powerful than vb, but its the simplicity of vb and com which makes it so attractive, and yes, fun :P <r u allowed to do that on wiki?

BTW: I'm not all smiles here.. ThingsWeHateAboutVbClassic .. ~AaronSevivas

The type declarations come after the variable instead of before, similar to Pascal. I find the variable name more important than types and thus easier to find if it is listed first. However, scope modifiers (such as "private") still come before, which is bothersome for the same reason.

It is one of the few corporate languages that can be both scriptish (implied Variant) and strong-typed, depending on need and personal preference.

Case insensativity. Some suggest that such encourages hard-to-read variable names because developers are not consistent with casing. However, it can reduce a lot of case-related errors.

I like redim preserve a lot

Which FINALLY came in this to arrays in Perl, there is no comparison with the flexibility of data types in Perl and many other "proper" languages.

"Redim" is probably a suggestion that one should use maps/dictionaries, lists, or tables instead of static arrays. VB did not have maps in its library either until 6 IIRC.

Default Properties were sometimes nice. Basically if you did not specify a given propery, then it assumed a default. This created shorter, more natural-reading code. Rough examples:

  row("foo") = 7
  textbox = "Hello!"

Instead of:

  row.field("foo").value = 7
  textbox.value = "Hello!"

VB can be easy to type (finger-wise), especially if you use it in scriptish mode. It does not need semi-colons or their equivalent (assuming you keep your lines short, which varies per style) and has much less need for parenthesis and braces. There is less need to hit the shift key compared to C-style syntax. Now whether being easy-to-type is related to or affects ease-of-reading is another subject. It may depend on whether you want to wear out your eyes or your fingers first. CarpalTunnelSyndrome for limbs is more common than the equivalent for eyesight (disclaimer, I'm not a medical expert). Contrast:


 if(a==b) {
   x = 2;
 } else {
   bar(b, "zak");


 if a = b then
   foo a
   x = 2
   bar b, "zak"
 end if

The only time you need the shift key here is for the double quotes. I've used BASIC-influenced languages that allow single quotes for string quoting, optional spacing for end-X ("endif" instead of "end if"), and did not need "Then" either. With a few adjustments, VB and/or VB-Script could make a good CarpalTunnelSyndrome language.

It should be pointed out that the need for Dim-ed variables because it lacked "left-side" auto-declarations without Nil risk did go away from this goal. I think MS should have added a third option to "Option Explicit", such as "Option Left Explicit" to match other scripting languages. Related: TheRightWayToDoWordyBlocks.


Gosub was VB's way of implementing nested functions (somewhat like Pascal). Nested functions can reduce the amount of parameter passing and management needed between two highly-related functions by letting the sub-function automatically inherit the scope of the caller. I don't know why nested functions fell out of style. There seems to be a forced assumption that every function is potentially generic or reusable in a different context. Hogwash. Some functions are inherently coupled to a narrow usage and trying to make them generic with parameter bloat is PrematureAbstraction.

See also: VisualBasic, ThingsWeHateAboutVbClassic, VbDotNet, WorseIsBetter, MicrosoftKudos, WhatIsWrongWithTheGeneralVisualBasicApproach, KnowledgeAndSkill

View edit of February 15, 2014 or FindPage with title or text search