Why Some Hate Vb Classic

VbClassic is VisualBasic from MicrosoftCorporation which has had its support removed, but which continues to be used with good effect by many regardless. It is a language which can create Executable files through a project system which integrates Visual and non-Visual components in a single Dot Exe file which handles both.

From VbIsBadForNewbies,

If you expect that most programmers would find PythonLanguage easy, then I suggest you haven't had much experience with below average programmers.
-- EricUlevik

Strange definition of "average." If most programmers would not find Python easy, that would seem to say the average programmer would not find Python easy. There is no reason to imply that if one does not find Python easy, then one is a below average programmer.

The topic WhySomeHateVbClassic appears to overlap ThingsWeHateAboutVbClassic. What is the difference, and if there is none, perhaps it should be divided up into an intro in outline form and a "discussion" topic.

''The difference apparent perhaps only in the titles is that one involves hating the entire thing, while the other involves a strange mixture of hatred and love, involving the things within it. The first involves shunning, the second would infer things that might and perhaps should be fixed. The first involves hatred based on loving something else more, the second on perhaps wanting to love VbClassic more."

Another difference arises from those who use it effectively and those who do not, and from the sensible use of alternatives which better fit the task at hand, versus the blind adherence to a single language or methodology as the best language to use. ItDepends a great deal on what one wishes to accomplish and what one has available in the work area and environment in which one is to accomplish it. It may also have a little to do with who is paying you, and what they want you to use, and how imperative it is to accomplish your programming tasks in final and operable form using the least possible amount of time. -- DonaldNoyes

The disdain shown here for VisualBasic as a language is only explicable by crass ignorance, and the superficiality of associating the culture of those using Vb with the language itself. In reality VisualBasic has always been quite a good display of sensible language design.

One of the great features of Vb is that it has optional and keyword parameters, and that alone puts VB way and above C#, and competing with Java. So, the language is also good for CRAP programmers. This is a quality to be admired.

As for those programmers pretending to be so much better, all we can tell is that if Pascal was good for Wirth and Knuth, then Python is not the only thing you're lacking in order to be able to write software masterpieces. It can be done in VB just like it has been done in Pascal. Actually it probably has been done already in VB.

Just to note, that "CRAP" is an acronym for "Create, Replace, Alter, Purge", not necessarily a cussword appearing on kindly wiki.

Then why not say CRUD (Create, Replace, Update, Delete)? See CrudScreen. There are many variations on the acronym.

Many years ago, I spent a year doing nothing but tutoring university students. It wasn't in VB or PythonLanguage, but in C++, the poor little lambs. Now I'm not certain that university students qualify as "below average", and I'm not certain that my experience generalizes to your satisfaction, but it's my leg and I'm gonna stand on it. If you'd like to continue to insist that weird, cranky, old VB has some kind of advantage for beginners over elegant, clean, little Python, I'd appreciate it ever so much if you'd explain in concrete terms what that advantage might be. PrettyPlease? -- PeterMerel

VB is so similar to python ... it's hard to say which is to be preferred over the other. However, I'd say if I were to develop a command-line tool, python is the way to go. Unit Test is a standard module in python. If I wanted to teach UI development, for instance, the concept of event handlers will come across as foreign to new developers, it is easier to climb VB's learning curve than developing with WxPython or Tk, both of which requires understanding of OO or event loops. When teaching debugging, VB again comes up on top for their superior debugger. This has been spelled out several times already, in my view.

It comes as one complete, integrated thing, including the GUI builder. I can buy a book on Visual Basic programming from even a poor bookstore. It's easy to build noddy programs in. It requires no real expertise to install. Any number of computer magazines have articles on how to write stuff in it. What does a GUI builder have to do with anything? I've been a professional programmer for five years and I have never used one. -- BrianRobinson

(see below for my answer to this...)

I'm not a novice programmer, but I have looked at ZopeApplicationServer. I don't think it's a GUI builder, and even if it was, it's not packaged [a package?] for programming by novices. Have you actually used Zope for that? Are you really claiming a novice can install it?

If your response is that Python _can_ have a GUI builder, I haven't got my point over. Asking the novice programmer, possibly quite unsure about computers, and knowing little of programming, to install Python, and select and install a GUI builder is just not reasonable.

If you're a novice programmer, with no real intention of ever becoming an expert one (you just want to print flyers for the membership of your local trainspotting (hmm, I see a BritishCulturalAssumption) club, index your CD collection, or whatever), then VB is a reasonable way of getting started.

''This strikes me as rather snide. But these applications are well-suited to Access. People can and do build more serious projects in VB.''

If you're not a novice, or take up development more seriously, VB will be limiting, and things you have learnt by using VB may hold you back.

But it's cheap, near ubiquitous, relatively simple, and requires little knowledge of programming or installing and configuring packages. If you insist on calling below average programmers "crap", then yes, it is a good tool for people of limited programming ability and no particular desire to become better.

-- PaulHudson

If you'd like to continue to insist that weird, cranky, old VB has some kind of advantage for beginners over elegant, clean, little Python, I'd appreciate it ever so much if you'd explain in concrete terms what that advantage might be. PrettyPlease? -- PeterMerel

Answered above. Also, is there a Visual Python, where in one box, I get everything to just put forms up, double-click to add some code, build components, simple? No? I rest my case.

-- sg

In answer, to your post as a whole but to the above-commented paragraph in particular: So do other languages that are not VB. Delphi anyone? Plenty of books in the bookstore for it, completely integrated, an outstanding GUI builder, lots of add-in components for it, a real compiler not an interpreter, a clean, orthogonal object framework, and a nice clean language. Or if you really want to do something simple and don't care about the quality of the language, you could probably use a so-called 'multimedia authoring package' and get the same effect, and it'd hold your hand every step of the way.

So why use VB, which only has some, not all, of those things, and doesn't seem to provide anything special of its own that the others do not? "Do you want Product A with X, Y and Z, or product B with only Y?"

I don't want to harp on about this, but no-one provides me with a satisfactory answer and until they do, and as long as people keep saying but-VB-has-a-GUI-builder while ignoring other languages possessing GUI builders that are as good or better, I shall feel perfectly entitled keep harping on. ;} -- CanisLupus

It's true that Delphi has a good integrated IDE. But a bookstore in Sydney has about four shelves of VB books, and no Delphi books. And the syntax is terribly complicated. I could probably get the semicolons right. Pity the beginners!

I really take issue with this statement. The Delphi syntax (when you're not point'n'clicking) is pure Object Pascal. A language which, in Australia, is taught to High School students as their first language with good success. Beyond this, I have personally taught a class of "CRUD" programmers pascal in 4 days, with success. In fact, the biggest problem was the inability to introduce a GUI into the course.

The real clincher is the Delphi lesson a technophobe was given by a delphi master friend of mine. By the end of 3 hours she was coding, and the next day I couldn't convince her she had actually been programming! She found the syntax to be "almost English", and "not complicated like that programming stuff". I'm afraid that in 15 years I have found absolutely no evidence to support your assertion, and ample evidence to the contrary. -- AndraeMuys

That says nothing about Delphi and everything about the teaching skills of the master.

Hello, World in VBScript - one line of text:

MsgBox "Hello, World."

Hello, World in Delphi - many lines of text (please fill in exact details):

 program something
 ShowMessage?('Hello, World.');

"How to use Delphi:"

Here is a procedure for creating the Delphi hello world program:

(although the easiest way requires no programming: just drag-drop a Label from the toolbar onto a blank form, click on its Caption property and type in Hello, World. -- CanisLupus)

Gee, what a copy of VisualBasic, years before it.

or just drag a Label and ... Gee what a rip-off of VisualBasic. You can't have it both ways, Sam. Above, you claim Python isn't good enough because it's not VisualBasic. Here, you say Delphi isn't good enough because it can be used in a manner similar to VisualBasic. Make up your mind, eh? Couldn't they think of anything original? And in Pascal? Who the heck programs in Pascal other than intro CS students in the 80s? Not even Wirth does.

<OFFTOPIC>Programming Techniques ( = Algorithms and Data Structures + my college is silly ) swear by Pascal. Same as some instructors. Groan.</OFFTOPIC>

How easy it is or is not to make an API invocations is a rather silly metric on language features IMO. Besides, every FreeAsInBeer IDE and its mum will generate a program stub for you, so this whole minor pissing match is more moot than some of what I've seen around. -- David Vallner

-- sg

And the size of the HelloWorld program is important because?

... that's the size of program many novices (especially those doing this on their own) start out with

Eric makes a good point: If your application is on the same order of size and complexity as HelloWorld, VB is a viable option. ;->

And many programs written by novices are not a lot more complicated than that.

I agree that Delphi would be a reasonable choice, from what I know about it (which is little). But it isn't as ubiquitous as VB. VB books and software are everywhere (e.g. our local Staples (which isn't quite the same as the US chain)) where Delphi isn't.

If you're not convinced by this, then I don't know what more to say. There are better choices than VB. That doesn't make VB a bad choice.

If I had to teach a novice (as opposed to suggesting something for a novice to teach themselves), I'd choose Dolphin Smalltalk, as it happens. -- PaulHudson

Why not Squeak? -- EricUlevik

Squeak is wonderful, but it is very different from the Windows environment. Dolphin looks very similar to the typical development environment, largely because it uses the standard Win32 widgets. Some of the changes in the Squeak environment can be distracting, and many of the neat extras have minimal documentation. Anyone who is going to appreciate the openness of Squeak is probably not a novice anymore...
The line about "CRAP" at the top reminds me of the old Johnny Carson interview with a WW II flying ace, who kept saying, "There was fokkers to the left of us, and fokkers to the right of us..." Johnny added, "For those in the audience who may not know, the 'fokker' was a kind of German airplane." The pilot went, "That's right, Johnny, but these fokkers was flying Messerschmidts!"

My big problem with VisualBasic is that it does ridiculously unpredictable things based on which pieces of the vast MicrosoftIncompatibleDependencySuite are installed. Probably mostly owing to its massive "we'll do it all" design that the newbies love so much, it is the buggiest... thing I've ever used.

And that's saying something.

Sometimes there is a trade-off between easy-to-learn and easy-to-use. I don't think it is possible to maximize for both.

This topic is bullshit. While the Smalltalk purists (the ten that are left that are only on Wiki) whine against VisualBasic, the rest of the world is getting real work done, every day, all 4 million of us. Maybe you would be interested in the words of SteveMcConnell, who many of you list as CodeComplete as definitive works, in his interview with JohnVlissides on the October 2000 DrDobbsJournal.

SM: [LAUGHS]I haven't done anything with C++ for, oh, maybe three years now. So, I don't know how many words of wisdom... Most of the programming work I've done in recent years has been in VisualBasic, believe it or not. I like VisualBasic - I'm not too embarrassed to admit that - AND I LIKE IT BECAUSE I CAN GET AN AWFUL LOT TO SHOW FOR MY EFFORT IN A VERY SHORT TIME. Another thing I like is that it's a great example of a language where a little bit of software engineering goes a long way. If you approach a VisualBasic project with no software engineering discipline, you can get a lot of functionality put together in a hurry - and then spend the rest of your life wrestling with that functionality. IF YOU APPLY A LITTLE DISCIPLINE, THERE AREN'T ANY SIGNIFICANT LIMITATIONS TO WHAT YOU CAN DO WITH IT {What have I been saying for 2 years here - it's incompetence, not the language]. Without that discipline, you're going to run into some pretty hard limits pretty early on.

[JV] How broadly applicable is the knowledge and experience you've gained with VB?

[SM}: It certainly was useful for me to have done low-level programming earlier in my career - some assembly language programming, low-level C programming, working directly with the OS calls, or even the hardware in some cases. It's nice to get a sense of exactly what's going on at a lower level than VB gives you. At the same time, though, the direction of PROGRESS in computing seems to be towards higher and higher-level languages. As something of an old-timer in the industry, I would say, yeah, everyone should have some experience working at a low level. But I'm not sure whether that's true or whether I think everybody else should go through the same development process I did!

[JV} The specter is that as a VB virtuoso I'd miss a bend in the road that requires a radically different toolset if not mindset, like say, a wireless app.

[SM} Well, I don't know. I think VisualBasic is today's VCobol, and there's a huge amount of development work going into it. I wouldn't bet against it. A person could probably stay busy for the next 10 or 20 years doing VisualBasic programming.

-- sg

Bill's theory (unproven): There is a non-incidental correspondence between programmers who are "OK" with the core VisualBasic language, and those who find no appreciable difference between the design of MS-DOS and Unix.

Unix and MsDos were each written to accomplish many similar tasks on much different machines. As one who has worked with Basic for 30 years, I have found the language to improve with age. It is not like others which are received, worked with, and then discarded in as short a time as 18 months. While others come and go, Basic seems to hang on. Why?, because it has been extended to include the good features of languages programming experts adopt and then discard. It will be around (while continually evolving) for your grandchildren to use.

I think it more a case of they keep inventing new languages, and call them "Basic". VB doesn't look anything like the original Basic (and as far as I know, will not compile even the most basic of original Basic programs). I think the only reason they called it VisualBasic instead of VisualNewLanguageInventedByMicrosoft? is that the former is easier to sell. --StefanVorkoetter

I get the impression (without having looked) that its syntax is actually closer to Pascal, is that right?

Yes and no. It's not quite as elegant as Pascal. Have you ever programmed in dBase? VB is kind of like that (language-wise, not db-capability-wise).

VisualBasic syntax is supposedly based on the original BasicLanguage, before it got polluted with line numbers and GOTOs. See TrueBasic.

According to the website, TrueBasic was put out in 1983.

{I thought it started out with goto's and line numbers. It was born around 1965.}

That's right.

And in VisualBasic you can still use GOTOs and line numbers if you want to. As well as DEFtype commands and other old stuff (but not all of it).

{I think VbDotNet is tossing some of the backward compatibility stuff that still worked in VbClassic, so it may not run older stuff anymore.}

My first programming experience was in 1976 in IBM's BASIC on the IBM 5100 (anyone remember that machine? years ahead of its time, but way too expensive). It certainly didn't have any of the modern control structures and such (all there was was "if...goto <linenum>" and "if...gosub <linenum>"), but on the other hand, in a way, it was a very simple and clean language. -- StefanVorkoetter

EGriffin Says:

You should try programming in KCML, that's a real head ache! It's a language derived from old BASIC 2C from the Wang 2200 machine. Doing development and maintenance work in that stuff really makes you appreciate the simplicity of VB and VB.NET. Those line numbers were a nightmare!!

See also: VisualBasic, PythonLanguage, LanguagePissingMatch


View edit of February 2, 2009 or FindPage with title or text search