Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?

Making an Argument Against Using Visual-Basic? 690

ethan_clark asks: "I work for a small company (< 10 employees) as a software engineer. The company got its start with a software product written by the owner in VisualBasic. He hired me to assist in rewriting the software – only catch is, he's stuck on having it re-written in VisualBasic. This scares me, but I honestly can't make a good argument against VB because I'm not familiar enough with it. So my question is twofold: I am looking for some confirmation to my suspicion that VB isn't the greatest language for large projects; and If VB isn't good, arguments against using it. If it is good, what arguments would you use to argue for it (for my sake)?" If you are going to argue against a language, it is best if you do so after you become familiar with it so that you can argue fairly on its merits and deficiencies. VisualBasic, like just about every other language, has its place. For the sake of discussion however, what tasks would VisualBasic not be suited for?
This discussion has been archived. No new comments can be posted.

Making an Argument Against Using Visual-Basic?

Comments Filter:
  • by pilot1 (610480) on Wednesday May 31, 2006 @11:24PM (#15441604)
    VisualBasic, like just about every other language, has its place.

    And it's called hell.
  • by Naikrovek (667) <(jjohnson) (at) (psg.com)> on Wednesday May 31, 2006 @11:38PM (#15441683)
    Visual Basic (especially VB6) have no place in the enterprise.

    C# and VB.NET are very similar, and C# has a much more standardized syntax style. It will take little time to teach someone C# that is familiar with Java or even C++, but it could take some time to acclimate that same programmer to VB's retarded syntax style. Any language with constructs like "If Not foo Is Nothing Then ... End If" rather than "if (foo) {...}" has no place in my brain.

    JavaScript, C, C++, C#, Java, and even Perl have the same curly-brace blocks, statements end with a semicolon syntax style.

    If your boss gives you the often used "anyone can learn visual basic in a day" line, give him the "anyone can learn Java or C# in a day also, and the talent pool for those languages is much larger" response.
  • by Stormwatch (703920) <rodrigogirao AT hotmail DOT com> on Wednesday May 31, 2006 @11:43PM (#15441719) Homepage
    What kind of project are you working on? The only description you provided is "Large". That could mean 3D FPS, relational database, mission-critical embedded vision system for an interstellar satellite, a cross-platform OS...
    Or Duke Nukem Forever. Who knows...
  • by PygmySurfer (442860) on Wednesday May 31, 2006 @11:49PM (#15441753)
    Nah, it sounds like their project is much farther along than DNF.
  • by rifftide (679288) on Wednesday May 31, 2006 @11:57PM (#15441815)
    1. Chicks won't be impressed because it's so nerdy

    2. Geeks won't be impressed because it's so VB

    3. Microsofties will explain how your language is "deprecated" unless it's VB.NET. Trust me, it's bad to be deprecated on.

    4. Enterprise programmers will explain how C# (or Java) is better than VB.NET, has more constructs, etc.

    5. (An elaboration of point #2.) To a programmer, "dim employees() as integer" just looks goofy.

    6. You and your company will be a one-man profit center for Microsoft (their tools are priced so that they don't come cheap when you need to do real work). Here it's not so much big bad Microsoft that's a problem, but I hate being someone else's one-man profit center.

    7. If it's Visual Basic 6, try to get a hold of Ted Pattison's (out of print) book on how to use Visual Basic with DCOM. It's a great book, but my takeaway was that it's easier and wiser just to say no. (I suspect this may have been Pattison's POV too).

  • by bigbadbuccidaddy (160676) on Thursday June 01, 2006 @12:47AM (#15442045)
    You just made the exact opposite point you were trying. It took a team of developers 7 years, at least 195.53 times the CPU performance, and your optimizations to emulate an 8-bit game machine. VB sucks for video game emulation in addition to all the other things it sucks at.
  • by geminidomino (614729) * on Thursday June 01, 2006 @12:54AM (#15442070) Journal
    No, you pussy. Real Men(TM) use small magnets directly on platters. ;)
  • by twitter (104583) on Thursday June 01, 2006 @01:00AM (#15442096) Homepage Journal
    VisualBasic ... has its place. And it's called hell.

    You can tell the difference?

  • See, he should just convince his boss to do it in LISP. I mean, the syntax isn't that bad, really, once you get around it, and GUI's are EASY in LISP. You just do paren-based dot-matrix representation.
  • by MadFarmAnimalz (460972) on Thursday June 01, 2006 @03:37AM (#15442762) Homepage
    I work providing MIS technical assistance in microfinance (used to be an open source consultant). I've seen a lot of Visual Basic applications in service of microfinance institutions and I've seen the consequences.

    What I've seen has been mainly Access being used as a RAD to develop portfolio management systems, with VBA constituting the language the logic is developed in. Some observations:

    1. Such applications when used over the medium to long run invariably become unmaintainable. The business changes, loan products change, organizational structure changes, new needs arise, servers are upgraded, etc. This we all know; there is no such thing as finished software. A VB application has the advantage of getting up and running fast, but as the code changes accumulate over the years, the code becomes unmaintainable; a change here b0rks fifteen things elsewhere and the developer (often one person) eventually gets to the stage where he just says "no, we can't do this". IF you're lucky, he tells you that it's because he needs to reqrite the app. If you're not, he attributes the limitation to the abstract god of technology.

    2. The Access/VB development environment is indeed a VRAD (very RAD). You can go from zero to information system in almost no time with almost no resources (the typical scenario of one developer mentioned previously). TH downside is that when you have this few people working on the system, it can be underdocumented. Which means that when your magical one-man development team jets, it's going to be easier to rewrite the application from scratch (and when that crisis comes, it's often rewritten in Access/VBA again, since a system is needed, FAST). Oh my aching bones...

    3. Mentioned elsewhere, but these MS products are EOL'ed periodically. No support. No bug fixes. No security fixes. One often overlooked consequence of this is that MS drives the techie labor market towards its current offerings; what this means is that you are not going to expect a VB-based product to last, since a few years down the road the Microsoft marketing machine has changed the paradigm and driven developers towards other technologies, limiting the availability of engineers to feed your monster.

    4. When you're developing a system for business usage, you're going to want to have several things which more proefessional toolchains make more readily expose; things which, more likely than not you can accomplish nominally in VB albeit with a lot of workaounds and in many cases not very reliably and sub-optimally. Audit trails, transaction atomicity, multi-user functionality, etc.

    I'll post more if I canthink of them. Good to have a reference of VB drawbacks, especially since I see it so often.
  • by Duhavid (677874) on Thursday June 01, 2006 @05:54AM (#15443113)
    Mythical like the man month, dude.
  • by Heembo (916647) on Thursday June 01, 2006 @07:05AM (#15443298) Journal
    Which means, you can write a thin .net layer that has a entire Java backend! W00T!
  • by Anonymous Coward on Thursday June 01, 2006 @07:09AM (#15443309)

       V   I   S   U   A   L   B   A   S   I   C
      22   9  19  21   1  12   2   1  19   9   3     - as numbers
       4   9   1   3   1   3   2   1   1   9   3     - digits added
      \_____/ \_____/ \_____/ \_____/ \_________/
       4       4       4       3       4             - digits added

    Thus, "Visual Basic" is 44434.

    Add 2971 to it - this is the year guillotine was first used, written backwards - you will get 47405.

    Add 4091 to it - this is the year Oppenheimer, the man who created the atomic bomb, was born, written backwards - you will get 51496.

    Add 8591 to it - this is the year Nabokov's "Lolita" got published, written backwards - you will get 60087.

    Turn the number backwards, subtract 1686 - the year Newton published wildly misunderstood "Principia". The number is now 76320.

    Turn the number backwards, subtract 1929 - the year Bingo was invented, taking many lives in years to come. The number is now 438.

    This, written in octal, is 666, the number of the Beast.

    It speaks for itself. QED.

    Copyright (C) Michal Zalewski http://lcamtuf.coredump.cx
  • by binkzz (779594) on Thursday June 01, 2006 @07:14AM (#15443325) Journal
    "If it's VB6, run for the hills. It's end-of-lifed."

    It's not entirely useless; I'm using my three VB6 MS books as a stand for my monitor to get to the right height. The only downside is that I continuously have 'VB 666' staring at me in the face.
  • by mdielmann (514750) on Thursday June 01, 2006 @11:14AM (#15445165) Homepage Journal
    Wow, that's impressive. I've never seen so many people on slashdot admit they program in VB, at one time. Might as well add my name to the list. I'm not embarrassed - it's fed my kids quite nicely.

If it's worth hacking on well, it's worth hacking on for money.