I’ve got until Friday (which I’m interpreting as start-of-business Monday), to build and deliver a VisualBasic application. It’s nothing horribly complicated, in theory, just a browser/editor for a local Access database. However it’s been a long time since I’ve done anything in VisualBasic, and VB 6 bears little relationship to VB 3 and 4.
After having spent a few months working with JBuilder, all I can say about VisualBasic is this: it is horribly, disgustingly, vileley broken. If this is the tool that new programmers are raised on as children, it explains a lot about the parlous state of the programming universe.
There are two areas that are painfully broken: the language itself, the IDE, and the help. Make that three areas that are painfully broken: the language itself, the IDE, the help and the documentation. Make that four…
Somewhere in it’s ancestry VisualBasic counts the ANSI standard BASIC. But Microsoft have “improved” the language to the point of being unrecognisable. The syntax is wildly inconsistent, and legal constructs in one place are illegal in other apparently identical places. Why, in the name of the gods, are there three different, not-quite-consistent, ways of assigning an expression to an lvalue?
THING = EXPRESSION
LET THING = EXPRESSION
SET THING = EXPRESSON
Why build a Collection object that has ADD and RETRIEVE methods, but no way of testing for the existence of something in the collection other than “try to add it and trap the error if it’s already there”?
The IDE is horribly bad. The editor sometimes auto-indents, sometimes doesn’t. It sometimes spots syntax errors, and sometimes doesn’t. It will magically disperse changes to upper/lower case letters in identifiers, but not changes to the identifier itself (ie it will globally change tHis to This on request, but not tHis to That). The “wizards” build code that is incomplete and buggy. The debugger struggles to trace anything complex.
Error messages are usually maddeningly vague, and sometimes horribly misleading — would you think to recognise that a “SET” keyword was missing when given a message that a “Parameter is not optional”?
The documentation is just as maddening. Quite apart from the fact that Microsoft have expunged virtually all materials from their websites other than those that apply to .Net, the supplied documentation is horrible to navigate. Mostly it’s exposed through the “help” application, but often navigation goes through modal pop-up pick lists which break the “back” and “forward” navigation.
I expect to have gone quietly mad by the end of the week.