Why is VB being forsaken?
-
db7uk wrote:
indeed. but who in the world concats numbers and strings in that manner anyway.
Your personal experience does not sum up the total of all of humankind. In case you have no knowledge of your tools, every computer that runs assembler deep down in it guts, operates in exactly the manner you seem to think doesn't exist
The 3-legged stool of understanding is held up by history, languages, and mathematics. Equipped with these three you can learn anything you want to learn. But if you lack any one of them you are just another ignorant peasant with dung on your boots. R. A. H.
-
jim norcal wrote:
stop using it
Absolutely. I'm a C/C# guy, but I've been doing VB.net for just about a year now and it's just horrible. Whenever I try to write C# I have trouble. Just last week I tried to access an item in a Dictionary with parentheses instead of brackets and couldn't understand the error it caused. VB use has even affected my health -- I've never had indigestion, but I was diagnosed with gastritis last week. C# is just a way better language. :thumbsup:
Agreed. Compared with the clean syntax of C#, VB.NET is horrid. Though, aside from these aesthetic, the major issue I've encountered is with the skills and abilities of those using VB compared with those coming from OO backgrounds.
I know the language. I've read a book. - _Madmatt
-
In VB, it's "&", not "+", and I use
StringBuilder
(orString.Format()
) in new code. I almost never use string concatenation. I have a rule that dictates never go back and change existing code (if I didn't originally write the file) unless changing the method is a part of the maintenance process. At that point, I may replace existing string concatenation with appropriate code, depending on a) how big the method is, and whether or ot I'm under an extreme time crunch.".45 ACP - because shooting twice is just silly" - JSOP, 2010
-----
You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010
-----
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass." - Dale Earnhardt, 1997John Simmons / outlaw programmer wrote:
In VB, it's "&", not "+"
No actually, in VB.NET it's both.
John Simmons / outlaw programmer wrote:
I use
StringBuilder
'Twasn't always the case, though, was it?
John Simmons / outlaw programmer wrote:
I almost never use string concatenation.
I use it constantly, but then we probably work on very different types of programs.
The 3-legged stool of understanding is held up by history, languages, and mathematics. Equipped with these three you can learn anything you want to learn. But if you lack any one of them you are just another ignorant peasant with dung on your boots. R. A. H.
-
jim norcal wrote:
So, what am I supposed to do? Just stop using it
Yes. Speaking from my recent and on-going experience of working, or attempting to, with a VB.NET project, the code is poorly sturctured, undocumented, unsecure and performs poorly. In general it has been my experince that C# developers are more versed in OO and actually code using these principles. In this recent project there are ~5000 lines of VB.NET in two files. I reengineered using C# with a nTeired approach so that it now has 17 files with ~3000 lines, including unit tests. This is why VB.NET can, and should, be phased out. Not that the language itself is bad, the developers using it, IMO, mostly, don't have the skills, training, or experience to write software in the best manner. C# is also more closely related to other langauages, such as JavaScript, so the transition between them in a web application would be much easier and developers more productive.
I know the language. I've read a book. - _Madmatt
For anyone reading Mark's response, it's important to note his qualifier, "In general". What he says is true. This is not to say that every VB programmer is less sophisticated than every C# programmer; there are some very good developers who happen to prefer VB. However, in the general sense, my experience has also been that people who develop in VB don't have has strong a grasp of the underlying fundamentals as those in C#. Thus, their applications are not as robust. For me, it seems as if the tools which go along with VB just don't work quite as well as with C#. Intellisense, for example: it seems as if, once I've made a syntax error in VB, inellisense just quits working, and it's more forgiving in C#.
-
Agreed. Compared with the clean syntax of C#, VB.NET is horrid. Though, aside from these aesthetic, the major issue I've encountered is with the skills and abilities of those using VB compared with those coming from OO backgrounds.
I know the language. I've read a book. - _Madmatt
Mark Nischalke wrote:
Compared with the clean syntax of C#, VB.NET is horrid.
One of the silliest things some folks do is think that their personal preferences are actually laws of nature. When someone is used to reading one language and has trouble with the other that defines not the language, but the programmer.
The 3-legged stool of understanding is held up by history, languages, and mathematics. Equipped with these three you can learn anything you want to learn. But if you lack any one of them you are just another ignorant peasant with dung on your boots. R. A. H.
-
I started VB with 1, after years of programming in FORTRAN, COBOL, Clipper, and QuickBasic. I never did use procedural programming, but did modular programming. That made the transition to OOP inVB4 through 6 pretty easy. Since my VB6 programs were OO, they ported easily to VB.NET. I also learned C# several years ago. I program in C# where I work since C# is the comfortable choice for the decision makers with a Java and C background. I program in VB.NET for my own development. I find VB.NET to be more productive, even in complex n-tiered apps. VB.NET does everything C# does, so why should I program in a 1960s throwback style when I can program in a simpler, more powerful syntax? I hear the anti-VB folks talk about C# being more "elegant". Huh? What does that mean? My wife and daughter are elegant. I don't want my language of choice to be girly or curly. :) I think "elegant" is used in the context of programming languages when one is unable to give a coherent reason for using a language. Simply put, if Java or C/C++ is your background, then use C#. If VB6 is your background, then use VB.NET. If you want to be mire hirable, know both well. After all, 80% of being an excellent .NET developer is knowing the framework.
MSBassSinger wrote:
I started VB with 1,
I started with VB for DOS - now that was a strange animal!
The 3-legged stool of understanding is held up by history, languages, and mathematics. Equipped with these three you can learn anything you want to learn. But if you lack any one of them you are just another ignorant peasant with dung on your boots. R. A. H.
-
kenSemantics wrote:
VB does it for you.
Yes VB does a lot for you, but that is a problem. It allows for stupid things to be done without the developer having to actually think about what they are doing.
I know the language. I've read a book. - _Madmatt
Mark Nischalke wrote:
It allows for stupid things to be done without the developer having to actually think about what they are doing.
I have seen some really horrifying code written by developers (who obviously weren't thinking) in C#. You seem to want to blame the language for the faults of the programmer. In truth, inferior programmers will write inferior code in any language and superior programmers will write superior code in any language.
The 3-legged stool of understanding is held up by history, languages, and mathematics. Equipped with these three you can learn anything you want to learn. But if you lack any one of them you are just another ignorant peasant with dung on your boots. R. A. H.
-
For anyone reading Mark's response, it's important to note his qualifier, "In general". What he says is true. This is not to say that every VB programmer is less sophisticated than every C# programmer; there are some very good developers who happen to prefer VB. However, in the general sense, my experience has also been that people who develop in VB don't have has strong a grasp of the underlying fundamentals as those in C#. Thus, their applications are not as robust. For me, it seems as if the tools which go along with VB just don't work quite as well as with C#. Intellisense, for example: it seems as if, once I've made a syntax error in VB, inellisense just quits working, and it's more forgiving in C#.
agolddog wrote:
For me, it seems as if the tools which go along with VB just don't work quite as well as with C#. Intellisense, for example: it seems as if, once I've made a syntax error in VB, inellisense just quits working, and it's more forgiving in C#.
That is just plain silly. You don't want immediate feedback when you have typed bad code??? You are right, since intellisense in C# is far less aware of what is being written, C#, much more often than VB.NET, must compile bad code before spotting an error. I have never regarded that as a feature to be touted, but a failing that must be borne.
The 3-legged stool of understanding is held up by history, languages, and mathematics. Equipped with these three you can learn anything you want to learn. But if you lack any one of them you are just another ignorant peasant with dung on your boots. R. A. H.
-
:zzz:
The 3-legged stool of understanding is held up by history, languages, and mathematics. Equipped with these three you can learn anything you want to learn. But if you lack any one of them you are just another ignorant peasant with dung on your boots. R. A. H.
-
That was me. Until I learned SQL, which is fun.
Exactly how can SQL be compared to any programming language? Since, you know.. it is not a programming language. ANSI/ISO SQL is not Turing complete. Now if you are speaking about some "real" programming language that is an expansion of SQL that is another subject. But SQL on its own is not a programming language, it is a language... just not a programming one :D.
-
Exactly how can SQL be compared to any programming language? Since, you know.. it is not a programming language. ANSI/ISO SQL is not Turing complete. Now if you are speaking about some "real" programming language that is an expansion of SQL that is another subject. But SQL on its own is not a programming language, it is a language... just not a programming one :D.
It's a transform language, it transforms tables of data into other tables of data. Queries can be optimised, there are various key words for performing different functions, there's maths, filtering, and formatting, it's just that the inputs and outputs are limited to tabular format. Some problems are tricky and require programmer skill to solve.
-
Mark Nischalke wrote:
Compared with the clean syntax of C#, VB.NET is horrid.
One of the silliest things some folks do is think that their personal preferences are actually laws of nature. When someone is used to reading one language and has trouble with the other that defines not the language, but the programmer.
The 3-legged stool of understanding is held up by history, languages, and mathematics. Equipped with these three you can learn anything you want to learn. But if you lack any one of them you are just another ignorant peasant with dung on your boots. R. A. H.
Oakman wrote:
One of the silliest things
So your arguement is my stated personal opinion is "silly" and I'm at fault for perfering one over the other? Good arguement. A really a good way to have an open and mature discussion. :rolleyes:
I know the language. I've read a book. - _Madmatt
-
All the programming I have done has been with VB then VB.NET. Microsoft keeps continues to develop and release it along side C# and the rest. However, over the last few years, I have seen very little new information out there regarding VB. Very few articles on Code Project and other sites. Oh, and I'm a subscriber to MSDN magazine and I haven't seen a single line of VB.NET code in .. in .. I can't even remember the last issue. I can say at least the last four issues there hasn't been anything in VB.NET. It's all been C#, C++ and even F# but no VB! Is Microsoft trying to push it to the side so it whithers and dies and hope that no one notices or pays attention? Even here on Code Project I've noted next to nothing new on VB. Every week I get the newsletter with all the new articles and rarely do I see anything on VB.NET. There may be one article among the 30 C# articles but that's on a good week. So, what am I supposed to do? Just stop using it, pick up a "Learning C# For Lonely, Left Behind VB.NET Programmers" and just think of VB.NET as fond memories of long ago? I have a hard time with such a concept. VB.NET has evolved into a good language and is capable of doing pretty much anything C# can do (using the .net framework, of course) so why isn't it promoted more by MS and others?
I started programming 3 years ago with VB.NET and encountered the same things you are seeing now. It won't change. VB developers are generally less likely to put content online. Limiting yourself consuming just VB or C# articles is just silly. Here's a cheat sheet to get things started. If you embrace both languages equally you should have no problem applying C# articles to your VB development.
-
Oakman wrote:
One of the silliest things
So your arguement is my stated personal opinion is "silly" and I'm at fault for perfering one over the other? Good arguement. A really a good way to have an open and mature discussion. :rolleyes:
I know the language. I've read a book. - _Madmatt
Mark Nischalke wrote:
So your arguement is my stated personal opinion is "silly" and I'm at fault for perfering one over the other?
Nope. I'll type slower so maybe you'll understand. ;) When someone expresses his personal opinion as if it is a law of nature, he is being silly. When a programmers blames the language for the mistakes he makes, he is being silly. Now, if the shoe fits, then by all means wear it. If not, then deal with the points I made rather than acting as if I attacked you rather than your argument.
The 3-legged stool of understanding is held up by history, languages, and mathematics. Equipped with these three you can learn anything you want to learn. But if you lack any one of them you are just another ignorant peasant with dung on your boots. R. A. H.
-
agolddog wrote:
For me, it seems as if the tools which go along with VB just don't work quite as well as with C#. Intellisense, for example: it seems as if, once I've made a syntax error in VB, inellisense just quits working, and it's more forgiving in C#.
That is just plain silly. You don't want immediate feedback when you have typed bad code??? You are right, since intellisense in C# is far less aware of what is being written, C#, much more often than VB.NET, must compile bad code before spotting an error. I have never regarded that as a feature to be touted, but a failing that must be borne.
The 3-legged stool of understanding is held up by history, languages, and mathematics. Equipped with these three you can learn anything you want to learn. But if you lack any one of them you are just another ignorant peasant with dung on your boots. R. A. H.
Oakman wrote:
That is just plain silly.
A very mature attitude.
Oakman wrote:
You don't want immediate feedback when you have typed bad code???
Then how do you explain this? In VB.NET this won't flag anything in intellisence nor when compiled. It will throw an exception at runtime.
Dim i As Integer
Dim x As String
i = 0
x = "foo"
If i = x Then
End IfIn C# intellisence will show the error and it won't compile.
int i = 0;
string x = "foo";
if(i == x)
{
}Oakman wrote:
since intellisense in C# is far less aware of what is being written, C#, much more often than VB.NET, must compile bad code before spotting an error.
Care to re-state this?
I know the language. I've read a book. - _Madmatt
-
Mark Nischalke wrote:
It allows for stupid things to be done without the developer having to actually think about what they are doing.
I have seen some really horrifying code written by developers (who obviously weren't thinking) in C#. You seem to want to blame the language for the faults of the programmer. In truth, inferior programmers will write inferior code in any language and superior programmers will write superior code in any language.
The 3-legged stool of understanding is held up by history, languages, and mathematics. Equipped with these three you can learn anything you want to learn. But if you lack any one of them you are just another ignorant peasant with dung on your boots. R. A. H.
Oakman wrote:
You seem to want to blame the language for the faults of the programmer
I think you should read my comments more carefully. http://www.codeproject.com/Lounge.aspx?msg=3978112#xx3978112xx[^] "Not that the language itself is bad, the developers using it, IMO, mostly, don't have the skills, training, or experience to write software in the best manner."
I know the language. I've read a book. - _Madmatt
-
kenSemantics wrote:
VB does it for you.
Yes VB does a lot for you, but that is a problem. It allows for stupid things to be done without the developer having to actually think about what they are doing.
I know the language. I've read a book. - _Madmatt
really, isnt it the responsibility of the developer to take care of what he is writing? if the language does something without his knowing then he is just a bad programmer.
-
All the programming I have done has been with VB then VB.NET. Microsoft keeps continues to develop and release it along side C# and the rest. However, over the last few years, I have seen very little new information out there regarding VB. Very few articles on Code Project and other sites. Oh, and I'm a subscriber to MSDN magazine and I haven't seen a single line of VB.NET code in .. in .. I can't even remember the last issue. I can say at least the last four issues there hasn't been anything in VB.NET. It's all been C#, C++ and even F# but no VB! Is Microsoft trying to push it to the side so it whithers and dies and hope that no one notices or pays attention? Even here on Code Project I've noted next to nothing new on VB. Every week I get the newsletter with all the new articles and rarely do I see anything on VB.NET. There may be one article among the 30 C# articles but that's on a good week. So, what am I supposed to do? Just stop using it, pick up a "Learning C# For Lonely, Left Behind VB.NET Programmers" and just think of VB.NET as fond memories of long ago? I have a hard time with such a concept. VB.NET has evolved into a good language and is capable of doing pretty much anything C# can do (using the .net framework, of course) so why isn't it promoted more by MS and others?
I'm Lucian Wischik, the VB language PM at Microsoft. Since VS2010 we've put a huge amount of resources behind VB. We haven't announced all the new features, but here are just some of the new VB features we've already announced: * Async programming, developed absolutely equally with C#. * Iterators, like C#, but also allowing lambda iterators and yield inside try blocks which C# doesn't have. * VBCore - removes the dependency on Microsoft.VisualBasic.dll, so VB is as easy for 3rd-parties to use as C#. * New platforms - VB support added to Windows Phone 7, to the Micro Framework (i.e. Netduino), to XNA. * (and smaller fixes, like no longer prettylisting that blasted "ByVal" in front of everything, and emitting minimally-qualified names) And of course all of these features benefit from the things we know and love about VB, like QuickFixes and XML. Here's an interesting code snippet which ties together several unique VB features at the same time:
Sub Main()
Dim xml =<%= Iterator Function() For Each robot In {"alpha", "beta", "gamma"} Yield * Robot <%= robot %> reporting in for duty Next End Function() %>
Console.WriteLine(xml)
End SubWhat this shows is code that on the surface looks similar in structure to ASP/PHP, but is actually fully typesafe. Personally, I've switched over all my hobby web-services from python to this kind of VB because I can code them quicker and with fewer bugs thanks to the type safety. -- Lucian Wischik, VB language PM
-
Oakman wrote:
That is just plain silly.
A very mature attitude.
Oakman wrote:
You don't want immediate feedback when you have typed bad code???
Then how do you explain this? In VB.NET this won't flag anything in intellisence nor when compiled. It will throw an exception at runtime.
Dim i As Integer
Dim x As String
i = 0
x = "foo"
If i = x Then
End IfIn C# intellisence will show the error and it won't compile.
int i = 0;
string x = "foo";
if(i == x)
{
}Oakman wrote:
since intellisense in C# is far less aware of what is being written, C#, much more often than VB.NET, must compile bad code before spotting an error.
Care to re-state this?
I know the language. I've read a book. - _Madmatt
Dim i As Integer
Dim x As String
i = 0
x = "0"
If i = x Then
End IfIn languages like Javascript and Python, this works fine. Obviously it depends on whether x was initialized to a string like "0" which can be converted to an integer, or one like "foo" which can't. In C# it never works. In VB you get the best of both worlds -- you can chose to code in a Python-like fashion (Option Strict Off), or in a C# fashion (Option Strict On), or you can make it merely give warnings for things like this which may or may not work (Option Strict Custom). It depends very much on the kind of programming you want to do. We try to avoid dogma here, and instead go on the results of extensive user studies. -- Lucian Wischik, VB language PM
-
Oakman wrote:
That is just plain silly.
A very mature attitude.
Oakman wrote:
You don't want immediate feedback when you have typed bad code???
Then how do you explain this? In VB.NET this won't flag anything in intellisence nor when compiled. It will throw an exception at runtime.
Dim i As Integer
Dim x As String
i = 0
x = "foo"
If i = x Then
End IfIn C# intellisence will show the error and it won't compile.
int i = 0;
string x = "foo";
if(i == x)
{
}Oakman wrote:
since intellisense in C# is far less aware of what is being written, C#, much more often than VB.NET, must compile bad code before spotting an error.
Care to re-state this?
I know the language. I've read a book. - _Madmatt
Mark Nischalke wrote:
A very mature attitude.
It is silly, Mark. Smart people say silly things, even I do. The idea that one would want to wait for compile time to learn about an error is silly. It doesn't matter what language one is using. The idea is silly.
Mark Nischalke wrote:
Care to re-state this?
You seem to think that I am going to defend the idiosyncrasies of VB.NET because I agreed with something that someone else said about C#, but did not find it attractive the way they did. Well just because I think Obama is incompetent, doesn't mean I think John McCain is any better. Ditto for not getting feedback when you make a mistake in C# or in VB. I do not think that VB.NET is perfect. I do not think that VB.NET is always the best choice, and I do not think that C# is inferior to VB.NET. But I do think that when people start claiming that their personal preferences are laws of nature, they are being silly.
The 3-legged stool of understanding is held up by history, languages, and mathematics. Equipped with these three you can learn anything you want to learn. But if you lack any one of them you are just another ignorant peasant with dung on your boots. R. A. H.