I hate to say it--and that's not rhetorical, I really
do hate to say it--but my experience with
VisualBasic so far is that it works reasonably well in a multi-tiered distributed system, even though the language itself is not to my taste.
I can't speak to multi-threaded, reusable, or secure. The
VisualBasic applications I've dealt with, however, seem to scale well enough and perform well enough. In some cases, I could probably do something even
better with some other toolset, but given the environment and the skillsets of other programmers I work with using
VisualBasic is frequently a realistic application of
DoTheSimplestThingThatCouldPossiblyWork. --
MarkSchumann
Here (probably about 2003) I was speaking of
VbClassic. Now, October 2006,
VbDotNet is a much improved language. It's far from lightweight, but it (finally!) supports implementation inheritance and comes with a thorough class library in the
DotNet framework. Grudgingly, I admit I like it okay. --
MarkSchumann
I laugh hysterically about the idea of building a skyscraper with silly putty; however I've seen non-technical project leaders almost get violent in making their case that VB is definitely enterprise ready for that multi-tiered, multi-threaded, scalable, reusable, highly performant, secure and distributed business systems.
''VB, and VB development experts, have proven the language to be an excellent enterprise tool, laughing has not proven anything.
Just because you don't know how to do something yourself, doesn't mean it can't be done by those with the expertise. I've seen very-technical people build multi-tiered, scalable, reusable, highly performing, secure, distributed business systems using VB. (Let's leave multi-threading out of the argument for now. Suffice it to say that Visual Basic components will perform correctly in a multi-threaded environment.)
VB appears to be one of the most popular development environment in the world.
For people to be using it, they must be doing something right.
Any time developers start blaming their language for their problems, it makes me wonder if they know what they are doing. --
BobHaugen
The comment "it encourages
SpaghettiCode on a massive scale" made within a team under pressure can encourage people to give up trying and blame the tool. "It requires
even more XP discipline in the team to
DoTheSimplestThingThatCouldPossiblyWork and
RefactorMercilessly to keep the source code under control" would surely be better here. (And am I now aspiring to be one of those helpful
OfficialXpPersonnel he wonders.)
Having said that I think that sounding off about unnecesarily annoying aspects of a tool that you're using is sometimes necessary to regain sanity - and a perfectly reasonable use of a Wiki page, especially in the face of the
ImbalanceOfPower and the basic human need to know
ImNotTheOnlyOne. --
RichardDrake
Sure - blaming out of control projects on the language is what made me scratch my head. --
BobHaugen
If I carefully designed a language, and its tools, to screw you up right and left with dozens of boobytraps, and you tried it on a project and failed, shouldn't you blame the language? Of course MS didn't exactly do this, but there simply are times when it >is< the tool's fault. -- PhlIp
Who said "blaming"? There's a difference between "encourages" and "is responsible for". When evaluating tools, one variable to consider is whether it helps or hinders people trying to produce quality software. --
MartinPool
Personally, I do not consider VB suitable for applications. I tend to use it for writing utilities or for testing components. For instance, recently I wrote a test app in VB that had just a few buttons and input boxes so I could test setting various properties and calling various methods in a component. Took me a few minutes. Easy stuff.
I have seen multiple projects like the one described above in the comp.lang.python comment. VB is horrible for any kind of system or multi-tiered application IF USED IN THE WRONG WAY. Novices was the key word. If I ever use VB for anything, I have a sense for its place and never make assumptions about what it can do.
Prototyping? I know VC++ and its IDE well enough to do it directly there rather than in VB. It's fast and easy with MFC.
Even though I do that, I still find that many times the project, workspace, source control, and configuration management policies/issues weren't fleshed out, so I'll usually work with the team to establish this policy, set it up, then encourage them to copy and paste code from prototypes that can be reused.
And even though I make a habit of keeping all prototypes in source control under a completely separate project tree than the actual project, I never really look at it again once I'm doing the real thing.
All of the previous paragraph can apply to other languages (including VB) in other environments and other platforms as well. And if you have novices, the whole issue of mitigating risk is highly multidimensional, and this is just one of them.
--
PhilipEskelin
Can anyone name a Microsoft application that was written in Visual Basic? (vg. do they eat their own
DogFood?) --
PierreCloutier
All the Microsoft applications I know use
MicrosoftWindows. (they do use what they create)
Visual Basic tends to be used for custom business apps. That is what its strength is. I program custom business apps in Java, but I can't name one Java app that I personally use, aside from my IDE.
BorlandDelphi is perhaps a better choice for "packaged" applications. It seems to gear itself to that market more than VB, which targets custom in-house applications. And unlike Java, it is relatively fast and compact.
Python with py2exe, using a gui toolkit like
WxWidgets/
WxPython or even tk or gtk is another viable alternative. --
StephenThorne
When it comes to hiring,
VbClassic experience counts more than Delphi, Python, or Java. Companies who have existing applications developed in
VisualBasic is not going to hire super programmers proficient in other better languages, or have the capability to pick things up quickly. They want someone who gets productive the same afternoon after the new person started on the job.
Another thing companies know is that if they hire someone that is easier to replace (millions of
VbClassic programmers), those programmers tend to be more compliant to using inhouse procedures and would be more responsive to management needs.
--
DavidLiu
See also:
WhatIsWrongWithTheGeneralVisualBasicApproach
CategoryVisualBasic