Forgot your password?
typodupeerror

Making an Argument Against Using Visual-Basic? 690

Posted by Cliff
from the is-it-the-right-tool dept.
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 grammar fascist (239789) on Thursday June 01, 2006 @01:19AM (#15442188) Homepage
    The only real arguement is based around that; if say... VB.NET and C# perform identically, why not use C#? It (arguably) has more of a following...

    Actually, I'm fairly sure you can find more VB programmers than C# programmers, and probably will be able to for the forseeable future. The problem is, a significant portion of them aren't real computer scientists, and they'll tend to write crappy stuff.

    I'm not sure that line of attack would work well with the boss, though, who's a VB guy, probably not a computer scientist...
  • C++ and Java (Score:1, Interesting)

    by Anonymous Coward on Thursday June 01, 2006 @01:42AM (#15442283)
    What about C++ and Java?

    In which areas is each one good in?
    In which areas is each one bad in?

    Good arguments against C++
    Good arguments against Java

    Good arguments for C++
    Good arguments for Java

    How good is each one in terms of:
    * Purely Object Oriented
    * Multi-threaded
    * Dynamic
    * Portablity
    * Robust
    * Secure
    * High Performance

    I am sure lot of us would like to know what other people think about the same. So, more comments, the better....
  • Each to his own (Score:2, Interesting)

    by tccd22 (975829) on Thursday June 01, 2006 @01:47AM (#15442293)
    I taught myself C in college and made loads of money making small programs. I got to learn C++ and VB simulatneously when working on medical imaging projects. There are three main points i would make for extending a perhaps "legacy system" thats built using a language, any language

    1) If it aint broken dont fix it.
    I guess you are quite a whiz at OOPS and C++ but what you really need to do is bring in the DELIVERABLES. So dont bother asking the question... if its built in VB (i would guess vb6) and it isnt a lot of pain (some say VB is a walk in the park, really?), dont mess with it.

    2) Make sure you are familiar with it without prejudice!
    Oh yeah, i heard a lot of people cursing, blaming and even trying to bring on a ban of sorts for VB6 but seriously its been a favorite RAD tool for many many people. And i suspect some people who do all the above may even use it when they need a quickie UI built! But seriously, i dont see any point burining VB6 at the stake and i dont see any point in installing in on a pedestal in the RAD Hall of fame... its a language, its used (quite extensively for "front ends") so get familiar and then form an opinion.

    3) If all the above dosent work, the boss will realise himself
    I agree to this -> VB can be a hell at times. I personally like coding in C++ and the .Net (pref. C#). so if the boss dosent see the point right now, he will in a few days
    ... hopefully :)
  • VB6 pros/cons... (Score:2, Interesting)

    by MWales (686969) on Thursday June 01, 2006 @01:51AM (#15442314)
    In my limited experience with VB6 at my work, I've found:

    Cons:
    - Doesn't really support multiple threads. I think there is a way you can do it via ActiveX controls, but it's not really built into the language like it is in Java.
    - It's not really Object Oriented. It sorta has objects, but it doesn't even support inheritance.
    - Your pretty much tied to using Visual Studio as the editor, and it shows it's age
    - Your stuck with Windows for the rest of the applications existence
    - VBs horrible syntax
    - The whole language will give you a "half-assed" feeling

    Pros:
    - Stupid easy to build a GUI
    - RS-232 interface is also very easy in VB6, but strangely, it's a PITA in VB.net

    I honestly don't think there is much of anything I would recommend it to be used for. Maybe to learn basic programming skills, or a REALLY quickly thrown together GUI, but nothing big. I would look at C++ or C# for .net, or Java myself.
  • by Baddas (243852) on Thursday June 01, 2006 @02:03AM (#15442378) Homepage
    VB.net's syntax is, in my OPINION, inferior. It's much harder to write clean, legible code in VB.net than it is in C#, and it also leaves you open to a few other little idiosyncracies such as whitespace and linebreaks.

    Call me old fashioned, but when a line with two statements on it has a different meaning than two statements on seperate lines, it strikes me as odd.

    Probably most of this is a result of people who seek out VB.net because it is 'easier' rather than inherent in the language, so it might be more the VB.net 'culture' that I am criticizing. Regardless, maintenance is a royal pain in the ass, whatever the cause is.
  • by Spacejock (727523) on Thursday June 01, 2006 @02:08AM (#15442394) Homepage
    Agreed. I wrote (and still maintain) a very powerful stock market charting app almost entirely in VB6. Yes, I use a couple of DLLs for intensive calculations but the GUI and 99% of the code is VB. It works, it's stable, and the users love it. Wish I could say the same about a number of other apps sitting on my computer.
    In summary: don't blame VB for shitty programs, blame the programmer. And if you'd rather write in something else, why should I care? I'll judge you on the results, not the language used to write it.
  • by jetcityorange (666232) on Thursday June 01, 2006 @02:59AM (#15442624) Homepage Journal
    I'm the owner of a 14 yr old software co. whose first products were written in Visual Basic and HyperCard. I grew up with BASIC in the 60's, had a Timex-Sinclair with built-in BASIC, ate up MS-BASIC, and thought VB and HyperCard (though not ToolBook or SuperCard) were the bomb.

    Then my product's needs and the market's expectations outgrew what VB or HyperCard could reasonably deliver. But I was too busy running a company to learn C/C++. So I had to hire engineering talent. Talent that needed to write in something *other* than a BASIC dialect. From that point on, my code writing days were over.

    Perhaps the background question you need to answer, for yourself and the /. community at large, is whether da boss is fluent in something other than BASIC? If not, there's the answer to your question. Perhaps he needs to continue using VB to justify his existence. Just a thought...
  • by gd23ka (324741) on Thursday June 01, 2006 @03:35AM (#15442750) Homepage
    ... to lock itself into Microsoft :-)

    Hi,

    First off, whatever you're going to code with VB will only run on Windows. There might be a way to generate .net code and there might be hope that you could get it to run on Linux using Mono but I'm sure that hope will shatter on the cliffs that a lot of Microsoft specific APIs and facilities will not (ever) be implemented on Linux.

    Essentially you're once again committing to use "Microsoft Technologies". These so-called 'Technologies' (mostly rehashes and adaptations of what's been out there shrink-wrapped, repackaged and rehyped by Microsoft ActiveMarketing+ )... these so-called 'Technologies' are not open source. IF you are wondering how Microsoft implemented something (because you can't get it to work) you will be stuck going to their "Knowledgebase" on the Microsoft Developer Network site where they might tell you, or again not. Calls to Microsoft support, your only dependable source of support cost $$$ but I think there are subscription plans for this, you might want to check them out. It's not that support for other software is free. It's just that with the "Technologies" they're the only ones qualified to give support.

    You will also find and that's aonther angle of the support issue, that people using Microsoft are a pretty much locked in community. I'm sure a lot of people reading here will likely object over this but I'm not talking about you. Slashdot isn't exactly one of the core sites most Microsoft people go to. In general these people lack the scope to look beyond the rims of their plate to see what other ways are out there to tackle a problem which thinking this further is probably why you came here in the first place.

    I don't know if I told you anything new but that's my take on the subject. I wish you the best of luck that you and your employer can avoid this particular piece of fly paper.
  • by 91degrees (207121) on Thursday June 01, 2006 @03:37AM (#15442760) Journal
    Isn't this one of those bad ideas? Joel Spolsky [joelonsoftware.com] seems to think so, and while he isn't an oracle, his opinion is worth something.

    Suggest not rewriting the software and simply going through and improving where needed.
  • by TheLogster (617383) on Thursday June 01, 2006 @04:36AM (#15442934) Homepage Journal
    I couldn't resist :)

    Good Points about VB:

    1. It's a fast development environment. You can get a decent sized program from idea to final build in hours and not days
    2. It's an easy language to master. It is based on BASIC after all.
    3. It has a large number of extra controls that can be used to do things like display webpages, upload/download from FTP sites, talk over IP, etc
    4. It understands COM, so you use automation objects with it.
    5. Now that PCs are so fast the execution time of the interpret is not an issue any more. However, VB is a slow language
    6. It's Database objects are easy to use, and supports Access, SQL server, ODBC...

    Bad Points of VB

    1. It's BASIC, so the language has its limitations
    2. It's OOP implementation is backwards. Parent class members cannot be called directly by their child descendants
    3. It's UI design elements haven't really changed that much, so building a nice looking interface takes some time
    4. The Right Way, The Wrong Way, and The VB Way
    5. It is interpreted and not compiled, so you can have difficulty giving an exe from VB to a customer and get it to run. The easiest way to get a program onto a customer's machine is to create an installer. The installation system that comes with VB hasn't changed since VB3 and doesn't look processional at all. Use Visual Installer instead.
    6. You have to declare your User Defined Types in an ActiveX DLL with a class that is never used, in order to use your UDTs as parameters to your classes in your main project

    Overall Thoughts

    I have been programming in VB since Version 2, and right up to Version 6. I cut my teeth on programming Windows Applications using VB, and I have to admit it is one of my favorite development systems. I also program in C++. I use VB to prototype an application, the other guys and customers can comment of the look and feel of the software, and modifications are easy to make. Once everyone is happy with the App, it is then ported to C++.

    VB.NET is not VB (google for Visual Fred) VB.Net is a completely different language to VB and it is not code compatible. Time will have to be taken to rewrite the parts of a VB app that don't work under VB.Net

    VB is a fine system and well suited to RAD projects, DB projects, and client/server projects. However, if you are looking for a system that creates faster code, is more secure, and easier to maintain, then you'll need to start working with things like C/C++/Java/etc

  • by ccallis (978434) on Thursday June 01, 2006 @04:42AM (#15442948)

    First, VB.NET is everybit the language that C# and/or Java are (that is there is NOTHING that can be done in those languages that can not be done in VB.NET (Regular Expressions, Hashtables etc. and much more is available to programmers in VB.NET)

    Second, if the original application was done in VB (6 or earlier) then there is no reason to believe that the language is no longer suited to the task, the only real question is "is the programmer up to the task?" Since VB and C# compile to MSIL (if both the VB code and the C# Code are "well written" then they will compile to the SAME MSIL (or near enough as to not matter...) the ONLY argument for one over the other is comfort/skill level of the programmer. This is not a trivial matter. I am far more productive in VB.NET because that is where I am comfortable, not because it is a better or worse language I can read/write VB much as I can [in my native language of] english. Where as I can read/write C# or Java about like my French, in which I am reasonably fluent, but I have to concentrate more on the translation. And thus we reach the ONLY real argument for you to make against VB, will you be more productive (and therefore cost your employer less) if you work in another language? If you believe this to be so, then you should already be able to quantify this.

    Admittedly, There are far more "less skilled" programmers in the VB world than there are in the C#/Java realm. This is simply because people can learn to do "useful things" in VB (or VB.NET) far more easily than they can in C-based languages. The "entry threshold" to "being a VB 'programmer'" is lower. Still the high end abilities of the language are there, even if a number of programmers don't know how to use them, or use them correctly.

    Anybody out there proclaiming that any language (other than C or assembler) is "better" then VB.NET is simply demonstrating their own ignorance of VB.

  • My two cents (Score:1, Interesting)

    by Anonymous Coward on Thursday June 01, 2006 @06:33AM (#15443222)
    VB (.net I presume) is a pretty feature-complete language. Cons: it has a legacy and .net features have been retrofitted onto the language. Pros: it really is quite powerful, rapid and reliable in ways that Perl, PHP etc fail to achieve. The debugging environment is streets ahead of anything else I've seen and really saves you time. Just to note, I've developed commercially with all of the lanugages I'm citing.

    I do believe however, if programming for the .net framework, C# was built specifically for that purpose and provides a more elegant syntax than VB.

    If your boss is hooked on VB5/6 - forget it. The languages were meant to be simple, but through bugs in the libraries and the convoluted methods you had to use to access system calls it generally wound up being more time-consuming than just coding in C++.

    HTH.
  • Book recommendation (Score:3, Interesting)

    by tetranz (446973) on Thursday June 01, 2006 @07:01AM (#15443281)
    If you're using VB.NET then I highly recommend Rocky Lhotka's Expert VB 2005 Business Objects [lhotka.net] and the CSLA framework that the book describes. It has plenty of useful information even if you don't use the framework. There is an equivalent C# book.

    IMHO, the new .NET 2 and Visual Studio 2005 stuff is pretty cool. Databinding was a bit of a joke in previous versions that no "real programmer" would use but now it really works and can save you a lot of time. Separate your UI and business layers properly and you'll be able to use the same business code from both Windows and ASP.NET if it ever needs to be web enabled.

    Your question is a bit meaningless without saying if its VB6 or VB.NET. Although I've written lots of VB6 stuff in the past, I'd be reluctant to start something new with it. I jumped from VB6 to C# just because I knew C from long ago and prefer the { } syntax but, as others have said, the difference between VB.NET and C# is pretty much just syntax.
  • by Maury Markowitz (452832) on Thursday June 01, 2006 @09:50AM (#15444240) Homepage
    Or, to be more accurate:

    VB, as a language, is the worst language I have used in the last 20 years.

    VB as a development platform is the most productive system I have used in the last 20 years.

    Hate the language, love the system. You will too.
  • by sbrown123 (229895) on Thursday June 01, 2006 @10:51AM (#15444890) Homepage
    Odd, I haven't had this problem and I have a similar system to what you describe (you have no description of your video card, though,

    I don't think I have ever had to worry about a graphics card for 2D widget blitting. Why is VS2005 different? I have also noticed this same slowness in another large .NET app called Paint.NET.

    6) Partial classes? ...
    Don't use them if you don't want.


    It is not me that is creating these freaks of nature, but rather VS2005 GUI editor. It uses these partial classes for code behinds.

    I personally dislike Java's strict file naming rules/conventions for a number of reasons.

    Work on something of scale in .NET with multipe coders and you will begin to wish you had it. And even though you can enforce certain rules in your area for coders to follow you are not able to enforce these same rules on others who code you may reuse in your project. I think Microsoft left the strict naming out to appease C++/C programmers but didn't fully understand the disadvantages in doing so.

    That's "forward compatibility", not backwards. Backwards compatibility means that Vista will run XP applications. Forwards compatibility means that XP will run Vista applications.

    You just pointed out the big difference between Microsoft's .NET and Java: .NET is tied to the OS. That is just silly. Why are they unable to release the runtime (virtual machine) for "older" operating systems like XP? Why should I have to compile code, which is actually just bytecode and not machine code, for two different platforms? I know my Java 1.5 apps still work on Windows 95, 98, Me, 2000, XP, and Vista. Why is .NET so limited?
  • 1)VB is dead, use VB.net

    2) VB is no good for low level work

    3) It is good at getting the job done

    4) Why the hell does a programming language scare you? the day a language scares me is the day I look for a new line of work.

    5) It is easier to maintain. This assumes that the programmer who wrote it wasn't a complete idiot...but that applies to any language.

    6) VB.net compiles to byte code. Just like any .net language. So the language doesn't matter in .net.

    7) VB handles the memory for you. For business applications that need to be done, this is a good thing.

Be sociable. Speak to the person next to you in the unemployment line tomorrow.

Working...