|
I understand your point about productivity and most likely you are very productive, we all must remember that not all VB programmers produce poor code.
However, Small businesses have to put up with programmers who dazzle with BS instead of shine with skill. While a BS artist can put something together in record time in the end the cost of maintenance and the possibility of a total rewrite far outway the initial savings. In my company we have actually lost revenue because I cannot implement a feature without a total rewrite. It takes me three times longer to troubleshoot the problem because of the extensive use of CType and Subs. In some cases to fix a problem with our changing business rules I have had to duplicate the existing function and rewrite it correctly; but I have to branch the code so that only the new business rules look at that function. It is absolutely crazy making and it is lost revenue as far as I am concerned not to mention the hours I don't get paid for because I am salaried.
VB was designed for the non-programmer to write simple productivity applications; but somehow it took on a life of it's own. Now we have social workers writing enterprise applications when they can barely figure out the algorithm for getting dressed in the morning.
Don't take me wrong there are very good programmers out there who can write in any language and adhere to best practices, know what an algorithm is and inplement it; but they are the minority and they have no interest in working in an 18 person company.
BTW - the orginal program I am now supporting was outsourced by my company. I have since rewritten the application in C# which is another story for another time.
Pamela Reinskou
Some Days the Dragon Wins!!
VersusLaw Inc.
|
|
|
|
|
Thanks for the reply. I still do not see anything that is a problem with VB. As the title of the thread says 'it's not the language...'
With pointers in C++, I can do much more damage. In fact, it is the poorly coded use of pointers in a lot of applications that had lead to some of the most famous and damaging code of our time - look at all the problems with IE and IIS and other programs that allowed someone to send input that allowed code to run when a pointer's contents were overrun. My company (the most respected in the world), does not allow IIS to be used internally for this reason.
Does this make C++/C a bad language? Because some coders were too lazy to do checking on input to make sure buffers were not overrun? Wasn't this one of the reasons Java does not implement pointers per se? no, when it is the language THEY use, everyone refocuses on a nice big target, like MS as being the culprit, not the fact that the language was sloppy enough to allow non-disciplined programmers to be lazy, and exhibit poor coding practices. It could not be the language that is not safe ... could it?
Why are there poorly rated submissions on this site, for code written in languages other than VB? Does that make the languages those poorly rated submissions were written in bad?
For that matter, I have seen some very 'hacked-together' code in C# in the past few years, that has crashed my machines a number of times.
I am not denying the fact that VB has attracted many more of the less disciplined variety of wannabe programers, and these programmers have given VB a bad rap. But it does not diminish the value of the language, nor the capabilities of the language. From what I have been reading, it only fuels the bias (which I read as snobbishness) of other programmers with formal training.
Poor hiring practices (can we say 'references'?) does not make a poor programming language. I can site numerous cases of the same thing happening as happened to your company with C/C++, and I anticipate that we will see more of it with .NET now.
Poor coding skills does not make a poor programming language. I have heard more urban legends of poor code written in VB, than have actually come across it in my professional career. Although, if the code on such sites as PSC is an indication, there is a lot of bad VB code out there. I guess companies that can afford my services are more discriminating.
Unsafe shortcuts does not make a poor programing language. How often have you read about a feature supported by a given compiler that is not recommended for general use? How safe are pointers when not used properly?
Someone mentioned 'On Error GoTo Next' as being evil. Only if the error number is not checked. A try...catch block can be just as dangerous, and used in the same way. Just because you catch an error does not mean that you handle it correctly, or make the best decision on where to go from there. How is this different from what VB allows you to do? What is the difference? It is not the language, it is the coder. I refer you to the title of this thread.
I think the conversations in these threads here solidify my feelings that it is snobbery that has fueled this bias. Anyone can find issue wih anything they are biased against. But all I see here are people saying that the possibility exists in VB to write bad code, and therefore it is a bad language. I have not seen anyone saying that it FORCES you to write bad code, that no matter what techniques or discipline you employ your code will end up bad. To me, that is the only definition of a poorly implemented language. People who think in one way, feel the rest of the world should think the way they do, and if not, then they are bad. Like MAC vs. WINTEL. Give me a break, get a life, and please, step out of the way so that I can get that money waiting to be had while others are pontificating about why their language preference defines your skills.
All I need is for the general admission that in the wrong hands ANY language is dangerous, and can deliver poor code. From there, we take the correllary that in the RIGHT hands, ANY language can produce robust, well thought-out code. At that point, we have successfully isolated the issue from being about the language, and about the nut loose on the end of the keyboard. A totally different issue. but one that identifies the only true ubjective answer to the poll is that VB has a bad rep due to the general awareness of the lack of discipline in many VB programers.
If more people would get beyond that way of thinking, and start worrying about delivering the best value, and which language can deliver that value (note that time is a factor in value), the market would be much tougher than I see it being. You can see that I am not to worried about this happening. This is not directed at anyone, as I know none of you here. But please, separate the language from the hacks.
Noël Henderson
|
|
|
|
|
So true,
and you'll find most VB programs lack concepts of OOP/OOD and User Interface Design.
Because it is so easy to learn, people with little or no programming experience find it easy way to move into the computer industry and wean themselves on VB projects only to produce what I call dogshit code.
I am that is
|
|
|
|
|
I have written many apps in VB. One of which is still running and handles over a £1,000,000 of data. Even with VB6 I was hooking into the windows API and making GUI do things that would make some C programmers blush!
It's true that people can pick VB up without a good understanding of programming, but thats not the languages fault. There are an awful lot of bad C, C++, C#, Java, COBOL programmers out there too!
|
|
|
|
|
Agreed I have seen bad COBOL in my day so I understand what you are saying. However notice that the only ones taking exception to this thread are decent or excellent programmers.
The problem is the language because if you do not control it, it will control you. If the programmer forgets to initialize a variable no sweat VB will just make it a variant and allow you to cast it any way you want. If the programmer creates a subroutine that returns no value at all no problem nothing happens. If an object has not been instatiated no problem if you test that it is "Nothing" instead of testing for the datatype; providing that you test at all. Oh I forgot VB doesn't know what a datatype is sorry.
The language is at fault because it was designed to be freindly and do the thinking for the programmer. Excuse me I will think for myself and you the programmer language will do as I say even if it is wrong. At least with ansi C based languages when I give it an instuction that makes no sense it has the ability to come back and say--"Are you sure(warning)" or "forget it I am not doing that it makes no sense (error)". VB on the other hand will just calmly make some assumption and go for it. This has nothing to do with the programmer, if he gets used to the language making the decisions he will never learn the correct way to do things.
Sorry, I tend to get a little excited, I do not mean harm to anyone.
Pamela Reinskou
Some Days the Dragon Wins!!
VersusLaw Inc.
|
|
|
|
|
VB = Pandora's Box...
I had to translate a lot app from VB to VC++ (No words)
I saw the problem is like you said:
The language control you
The most problems were sentences that doesn't that must to do.
Best Regards.
Carlos Antollini
Do you know piFive[^] ?
|
|
|
|
|
I do not understand the statement:
This has nothing to do with the programmer, if he gets used to the language making the decisions he will never learn the correct way to do things.
On one hand you say the coder has no conscious volition of his actions, and then you state that he makes a conscious discision to abdicate responsibility to the interpreter.
So, when a C/C++ coder writes code that allows a buffer overrun to execute code in the OS, it is the compiler's fault for not catching this error, right? It just blithly goes about it's business, nevers asks "don't you want to validate this input before passing to the buffer". Therefore, it is the compiler's fault, right?
But wait!, you say. It is the responsibility of the coder to check things like that. And hey, the language gives you a mechnism to do so! Woohoo, we are saved.
Too bad VB does not have a mechanism to inform you when using a variable that has not had a data type explicitly declared. Oh, I forgot, it does. Option Explicit.
Are you saying there is no such thing as an implicit cast in C/C++?
VB allows as much or as little control over your code as you wish. it is the decision of the coder as to the quality of the code they write. it is NOT dependent upon the language.
Noël Henderson
|
|
|
|
|
noelhx wrote:
VB allows as much or as little control over your code as you wish. it is the decision of the coder as to the quality of the code they write. it is NOT dependent upon the language.
But when it's run you can't see the difference between the codes....
Sometimes I see code written by No human been. But the app works.
If you say to coders how a correct code is, they say Why?
I saw very few coders that works seriously in VB...
Carlos Antollini
Do you know piFive[^] ?
|
|
|
|
|
My thoughts about learning the correct way to do things is targeted to junior programmers.
Yes, you are correct about Option Explicit, unfortunately junior programmers do not always turn it on (some seniors are guilty too). The language should not give them a choice, it should be mandatory.
Pamela Reinskou
Some Days the Dragon Wins!!
VersusLaw Inc.
|
|
|
|
|
...VB rocks, because it makes programming accessible to almost anyone...
...VB sucks, because it encourages the coding equivalent of house-building using 2x4s, duct tape, and string...
...VB rocks, because it doesn't require me to remember those horrid semicolons...
...VB sucks, because it lacks CListCtrl ...
But in the end, it's all just database access right? And that stuff is just plain boring.
|
|
|
|
|
Shog9 wrote:
...VB sucks, because it lacks CListCtrl...
You make a very good point. I hate having to use the ListView control in VB. It's such a pain in the ass compared to CListCtrl. I really miss SetItemData and pointers when I'm in VB!
Michael
But you know when the truth is told,
That you can get what you want or you can just get old,
Your're going to kick off before you even get halfway through.
When will you realise... Vienna waits for you? - "The Stranger," Billy Joel
|
|
|
|
|
Much like the control in .NET, the VB ListView control allows easier access to much of the WC_LISTVIEW functionality...
...Unfortunately, what they don't make easier, they make more difficult.
But in the end, it's all just database access right? And that stuff is just plain boring.
|
|
|
|
|
Shog9 wrote:
VB rocks, because it doesn't require me to remember those horrid semicolons
Double edged sword: You have to remember those horrid underscores if you're splitting a line of code into a new line of text.
--Colin Mackay--
EuroCPian Spring 2004 Get Together[^]
"You can have everything in life you want if you will just help enough other people get what they want." --Zig Ziglar
|
|
|
|
|
For the first time in my history of visiting CodeProject, I find I'm unable to find an option which reflects how I feel.
The poll options, seem a little childish and do nothing to address the real reasons why VB programmers have a bad name.
VB, got it's reputation because it allowed nearly anybody to pick it up and create an application. Now whether this is a good thing or a bad thing I don't know. A lot of poor code was written, poor code in the sense, hard to read and maintain. Badly structured and poorly documented.
Lots of good code has been written in VB, I know of big enterprise apps that were written by developers who had experience of coding; not hacked together by wanner be programmers, such as managers, tech support staff and journalists.
All languages allow you to write crap code, VB just makes it easier (IMO).
Of course, developers weren't helped by the dodgy UI which prevented you from seeing all the code. I've never been a fan of RAD development enviroments, point and click gives you too much of an opportunity to build reams of code, without design or forethough - I should know I've used VB in that way.
Like most things in this world, VB in itself wasn't a bad thing - it's just a minority of wannabe programmers spoilt it for the rest of us.
Michael
But you know when the truth is told,
That you can get what you want or you can just get old,
Your're going to kick off before you even get halfway through.
When will you realise... Vienna waits for you? - "The Stranger," Billy Joel
|
|
|
|
|
Changed my sig - SCNR
"All languages allow you to write crap code, VB just makes it easier (IMO)."
Michael P Butler
|
|
|
|
|
Michael P Butler wrote:
Lots of good code has been written in VB
Interesting that you should mention that. I've used a lot of professional apps for businesses large and small over the years. Nearly all were written in BASIC or, in the past several years, Visual Basic. I say nearly only because I haven't been able in every case to identify the language used. Of those where a control style or an error message gave away the identity of the language, all were in BASIC/VB.
Since it's so popular in business, programmers who shun VB are potentially only doing themselves out of a market...
"Another day done - All targets met; all systems fully operational; all customers satisfied; all staff keen and well motivated; all pigs fed and ready to fly" - Jennie A.
|
|
|
|
|
You hit the nail on the head so to speak. In days gone by VB was the best language for small productivity apps kinda like an extended macro. C and C++ addressed a different world altogether, think about a "struct" to create a record and then think about trying to put all the data from a database in that struct within an array and so forth and so on. The programmer who could do that was not cost effective I assure you. Enter the guy with VB knowlege and suddenly we have a cost savings.
While that was fine a generation ago the demands today are much greater. Companies that continue to rely on VB and access are bound to technologies that don't provide the scalabilty and flex that is needed. Basically it is a matter of competion.
Oh well, I've beat this horse to death. The language is at fault for allowing anyone to believe they are a programmer and the industry is at fault for not recogizing that good software, no matter the price, will be less expensive in the long run.
Hell, we should have Unionized!!
Pamela Reinskou
Some Days the Dragon Wins!!
VersusLaw Inc.
|
|
|
|
|
|
"It's horrible" perfectly reflects how I feel.
But I had exactly the same feeling with a recent poll, so you're forgiven
Flirt harder, I'm a coder.
mlog || Agile Programming | doxygen
|
|
|
|
|
It was meant to be humerous.
I have been programming in VB since version 1 and am fed up with people slating it all the time. VB is accessible to more programmers, hence you tend to get more bad code written in VB.
I prefer to code in VB because I like the way it reads so easily. C and it's derivitives are really hard to read because there language is unstructured. I have had to take over C projects and find it a nightmare that there are so many different ways to write the same commands.
|
|
|
|
|
Maybe, but it's stirred up some debate. I was umm-ing and ah-ing a lot about posting this poll and decided in the end to post it as it was sent in to see the discussions that would ensue. Having someone post a long diatribe about the options is far more interesting than looking at horizontal bars.
So thanks, Michael
cheers,
Chris Maunder
|
|
|
|
|
Chris Maunder wrote:
So thanks, Michael
My pleasure
I didn't want to call it a Childish poll but I couldn't think of a better term. The poll seemed like it was cooked up by some VB nut who was attempting to justify his love for VB in negative terms.
However, the discussion that has followed has been excellent, so I think you made the right choice in posting it. Perhaps you'll post my poll next.
"Why is Java so popular?"
1. There are lots of weenies who are too scared to do their own memory allocation"
2. There are lots of weenies who don't like pointers
3. Because developers thought it was something to do with coffee
4. Because those who thought VB was too easy and C++ was too hard, had to do something
5. Because Microsoft took so damn long to invent C#
Michael
But you know when the truth is told,
That you can get what you want or you can just get old,
Your're going to kick off before you even get halfway through.
When will you realise... Vienna waits for you? - "The Stranger," Billy Joel
|
|
|
|
|
As I remember ,I read somewhere its the most common language which use today,so what ever it is , we can't ignore it.
Mazy
No sig. available now.
|
|
|
|
|
Just because it's the most common doesn't mean it should be used. Once people realize that there ARE other solutions to programming tasks other than what Microso$t forces upon the masses we will all be better off.
Yes, I am a C++ programmer. Used VB version 3,4,5, etc. So I know of what I speak. VB is evil and should be destroyed.
|
|
|
|
|
I am sorry we VB programmers didn't hop from the womb to the heap in same manner as yourselves. I am getting there, others are getting there, and all you 'lunatic fringe' coders better get to the business at hand; keeping your employer happy.
I really like that Microsoft has labeled my types as 'Occupational Programmers' so that rest of the fringe leave me and my types alone.
Yes, you code better than me. Yes your prettier than me. Yes the ladies like you better than me. Now get out of my way I have got work to do. My business degree is getting good use every day- oh, and I cut good code too
Thank you CODE PROJECT for recognizing VB!!!
You Rock!!!
|
|
|
|
|