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?
Re:No argument really. (Score:3, Interesting)
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)
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)
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
VB6 pros/cons... (Score:2, Interesting)
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
Re:Got nothing better to do? Troll (Score:3, Interesting)
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.
Re:Rethink your approach, perhaps (Score:4, Interesting)
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.
Does the boss only know VB? (Score:2, Interesting)
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
Your company is too young and too small... (Score:2, Interesting)
Hi,
First off, whatever you're going to code with VB will only run on Windows. There might be a way to generate
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.
Why does the software need to be rewritten? (Score:3, Interesting)
Suggest not rewriting the software and simply going through and improving where needed.
Good and Bad Sides of VB (Score:5, Interesting)
Good Points about VB:
Bad Points of VB
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
There is only one REAL argument... (Score:4, Interesting)
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)
I do believe however, if programming for the
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)
IMHO, the new
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.
VB is the best language, VB is the worst language (Score:5, Interesting)
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.
Re:Can .Net Provide a Vehicle for alternatives? (Score:3, Interesting)
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
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
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
I am program in VB(and other languages.) (Score:3, Interesting)
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
7) VB handles the memory for you. For business applications that need to be done, this is a good thing.