a companion discussion area for blog.codinghorror.com

VB vs. C# -- FIGHT!


My big gripe with vb.net is its lack of a multi-line string literal, which makes using embedded SQL a real pain.

C# sugar:

const string sql = @“
FROM table t
WHERE t.column = :p_column”;

This 1) improves legibility, both in the code and in app logs, 2) speeds coding/maintenance, and 3) promotes using parameterized SQL.

Post all “you should use stored procs” flames here:


Sorry, wrong link.
Anyhow I thought I’d add that C# and VB.NET don’t really have any
differences but if you really want power then everyone needs to try
Managed C++. This language is @#%! awesome! Its like C# but without
the limitations of regular C++ and you can
use native code and librarys and other stuff normal .NET will not let
you do.




To all you C# developers, shut the hell up. The language doesn’t make you elite; it is what you do with it. If you only knew how you sound. Just shut the hell up. You sound like a bunch of bigoted zealots from the old south.

You C sharpees kill me to death. I think you find VB a little confusing so you pick C# the easier language. As far as I’m concerned VB is the more superior language whether it is in the hands of a real programmer or not. VB is not the straight jacket that C# tends to be. VB allows many more ways to skin a cat. Where C# may seem lean and agile it looses its flare and edge. I must contend that C# is not a language of a true artist but then true artists do use the thing. What I’m saying is that language is neutral in a common language infrastructure environment (.Net, Mono, Delphi). So off course if you use one then learning the other is redundant, unless you have to. I would always choose a VB background over C#, C++, java etc, and I won’t tell you why mister smarty pants. Lets be real, you are only building business applications. That is not rocket science or dare I say it, neither is it computer science. The phony elitism by these guys is beyond asinine and I will address who the real idiots are later. What I want to know is have you built any new technologies lately. Oops, sorry about that low blow to the testicles. Just having a little mean spirited fun at your expense. I’ve been ignoring this crap from you guys for years. So back atcha. You try to persuade that VB and its users are inferior for all the wrong reasons. I’ve used Basic, VB, Assembler, C++, java, oh what ever. C# is not a new invention friends. C# is just a C, C++ and java knockoff. C# is a bastard 3 generations removed and you want to bust our balls. Yes you guessed it; I don’t intend to relieve you of your ignorance. I like you just the way you are. I don’t want to persuade you to like or use VB. Why, because I enjoy feeding my arrogance with your ignorance. So on that point I am leaving you in the dark where I found you.

In the end VB and C# are just tools. The real intellect comes from choosing the one that suites you and the job best. The tools don’t make the man, the man makes the tools.

Sharpees also try to put on airs because they are able earn slightly better pay then Vebras (VB developers). I just love bursting this little Arian fable you guys like to spin about. As Yoda would say, “Well rounded, you are not”. It is a simple matter of economics (supply and demand), there are far fewer C sharpees. If you intend to get one of the little buggers you will have to pay a premium. Do you remember PowerBuilder and SQL Gupta. Well that’s good because that’s all they are now, a memory. At one time they both commanded more than VB in the market place. So there you are my little grass hoppers. Those Idiots use the same dumb arguments you like to spread around today. Here is my Mr. T impression, “I pity the Fools”. It’s easy to hop on a bandwagon, the trick is being savvy enough to hop on the right one. VB is still here and they are not. There you go hot shots, so you can stop clicking your boots and saluting Hi-Hitler. If sharpees had any real sense they would just shut the hell up. Why would you want more people to start using your language and bring down your stock (A.KA your earning power). Just shut the hell up. Only an Idiot would bandy such nonsense.

I hope I have offended someone, or we haven’t started having any fun yet. Please read on.

Oh and why do I call C# users C sharpees? The language and the name (C#) remind me of that little ugly dog.

Anyway we have much bigger fish to fry in the near future so it won’t matter if you are a vb, cc, dd, c#, blah, blah, Blah.

If you really want to know what the elite is all about I guarantee you won’t find it in C#. If you really want to broaden your horizons you better find out what Linux and Mono is all about. You sharpees don’t even know you are just slaves. Common Language Infrastructure under Linux will set you free. I’m sure most of you want to be elites are scratching your heads now so I will rap this up because I have wasted enough time with you chaps. You now have real elite knowledge. Off course if you where elite as sharpees like to pretend then this thrashing would not have been necessary. In any case we all want to be the best that we can be. I just shared the path with you. You have ability to be much more than just programmers and developers. You should strive to be Computer Scientists. That is what the world needs. The world could give a rat’s ass about the contents of your tool box.

The Great Desdubler has Spoken …


I’ve programmed old VB form several years and then turned to C++ and C# as I became a professional. I’m sure there are many good VB.Net-programmers out there, but still I’m personally a bit prejudical when I meet one. I think that he is either a) a beginner, b) he’s previously worked functional or other non-mainstream languages, or c) before VB.Net he used old VB and for some reason never switched to a professional language.

Before I became a c+±programmer I used VB for several years (from version 2.0). It took me some time to undo the poor practices I had been forced to develop as a VB-programmer. Old VB is a horrible (despite its RAD IDE) language compared to c/c++. I agree that VB.Net and C# are very similar - I’ve worked with both a lot - which shows that even the VB-developers finally realised how flawed their original creation was.

So I agree with Brian Trexler’s post, the background of a c# and a vb.net-programmer is what really differs.



First. I admit that VB.NET and C# are in syntax and power context VERY SIMILAR and MOST of the things you cand do with C# you can actually do them in VB.

Though. There are some things that you can’t help like unsecure programming. Ok, Ok, many of you would say that you don’t usually do that. But in terms of being productive, you couldn’t use ZLib, o PDFLib or other standard library in .NET (in ANY languages) if C# and C++.NET wouldn’t be out there, and sometimes you need that king of thing. (Note: I know that in .NET 2.0 and above there are a clas for compression with ZIP standards).

Another thing is the attachment of events. It’s just so easy to add or even quit events in C# from a class, and even easier to create new ones. Not so in VB where you can only use one method at a time and you must to handle the manner inside the procedure of the event which can be tedious to manage if you want a specific control or component act different in given enviroment variables.

I think is a little bit more optimized C# than VB because is a new language. (Note to Java developers: Please do NOT start a new discussion thread on this. I already DO agree with you).That means it has nothing to do with backward compatibilities like optional arguments that MSIL does not support like C++ and VB and pascal do.

That’s all. I don’t think any programmer should feel superior to another because “hey I’m programming in C#. Chek my 7331 skills”. I honestly use C# because I PERSONALLY like its semantics specially in casting and treating the null clause. (again, THIS IS MY PERSONAL opinion).


Wow… you guys get quite passionate. I admit… i hate VB. But i certainly dont think C# is better then it. I just happen to find the syntax easier for MYSELF to read. Whenever I see !value i instantly know what it is. seeing if not value forces my brain to read it like a logical sentence instead of just recognizing it as it is. It also feels like without the ending semi colons its a big long run on statement. However i’ve talked to some old Cobol programmers here that complain C# looks like an operating system language, not a real programming language :). They say the C# is completely unreadable. Whenever i look at VB code i get a headache. Whenever they look at C# they get sick looks on their face. I guess its just a matter of what your used to looking at. They both do the same thing.


“The English language is not case sensitive, nor are the humans that speak it.”

I’d be forced to disagree. I’m sorry for the mental image in advance, but there is a big difference in meaning in the following two sentences:

“I helped my uncle Jack off a horse.”
"I helped my uncle jack off a horse."
jacob on August 28, 2006 01:25 PM

Technically, the first sentence should read “I helped my Uncle Jack off of a horse”


I concur with English. You must use your helping verbs A.K.A. your linkin verbs. They are the verbs that help connect the subject with the predicate, helping you to form complete sentences.


OMG English that was brilliant.

I’m a C# dude I find it to be less forgiving to my mistakes and forces me to write better code.

I started in VB and moved to C# and didn’t go back.

I find Me. a bit immature and this. so much more adult like :wink:

Either way though both languages end up as the same thing and don’t look much like the code you wrote. I’m at the bottom rung of programming.

I have heard that the IDE is written in C#.

Also I always though the the code I write is in a language designed to be easy. It goes through several transformations before the machine gets it’s hands on it.

A good understanding of Assemble and C/C++ is where the professionals are at. I never had aspirations to get there though. I like the simplicity of .Net


In teaching myself how to program, I started out in VB and had to listen to all of the self-proclaimed Gods of programming shouting their C++ sermon on the mount. People that code in VB aren’t real programmers.

When I went back to college, my courses were in C#. Now, I code in nothing but C# because it’s the language I prefer - I found it easier. The .Net framework really makes the argument rather moot.

I think the most important thing about your code is that your users never see it, that it doesn’t implode. I’m not sure that case sensitivity is a huge factor, Uncle Jack not withstanding.

(I laughed for a while over Uncle Jack - thanks English!)


My only concern is which language will survive the longest. I Love Perl so I’m very familiar with C-esq syntax, but I like VB for web development better. I like the verbosity of it which tends to help debugging and knowledge transfer. But I would switch if I thought MS was planning to dump VB any time soon.


I recall BASIC being the acronym for Beginner’s All-purpose Symbolic Instruction Code.


Personally I prefer C# because it feels more natural to implement object orientation, defining delegates and events, using generics, and casting using the C syntax. However, there are areas in Visual Studio 2005 IDE where the only code you can write is in VB.NET, such as the code modules of Reporting Services.

So I guess it helps to be familiar with both.


Supposedly, there is very little difference between VB.NET and c#.NET, they are all compiled via .NET, and using visual studio intellitype makes the difference between then negligible.

However, comnig from php and jumping into .net i was posed with choosing c# or vb.

To me it was a simple choice of c#.

I find vb looks childish. An odd attempt to combine English and code, which just adds charaters to the code you have to read.

I find the usage of braces { } makes the code look segemeted and clean, but words such and Then and End If are difficult to distinguish from other code at a quick glance.

Also, i guess my experience in PHP and then having to code in ASP VB for some projects was quite an eye opener, VB just felt so strange.

Usage aside, I personally feel c variants, php and java braces style programming etc just looks more professional than VB.


VB.NET is a useless language. It is not simple (as any basic in the world - even as MS old VBs). It is exactly (almost) as a C “like” language. You must type-create-make all the things you type-create-make in a “complicated” language like C# but with more typing!!. So VB.NET is Visual not Basic language and hence there is no need to have such discussions as VB.NET vs C#.
public void foo(string arg)
if (null == arg) return;
// code here
C# 65 typings
Public Sub Foo(ByVal arg As String)
If arg is Nothing Then Return
// code here
End Sub
VB.NET 83 typings
(Please, this is posted with no offensive mood)


I am currently a Senior Programmer in a large health insurance company. We are predominantly a .NET plateform, but you know, we work with whatever tools are necessary. We have a project coming up in '08 that uses some existing IBM technologies, and the way we are tailoring it to our particular use and interfacing with parts of it is through Java. No biggie. Like some have said, you select the tool that helps you get the job done. You should never become too attached to any one tool. Most of the time we use VB, and I really enjoy it. I first cut my teeth on Java and C++, but I eventually got around too C# as well. It really is not as big a deal as people are making it, but aren’t programmers known to argue over trivial things, or just to be arguing? If I am under a time crunch, I will use VB. It’s quick and dirty. If I have time to breathe, then I will most likely use C# to switch things up and keep things interesting. If your customers need fast results, then use whatever it is that helps you deliver. They don’t really care what language you are using, or how many languages you know. They just want it to work, and work yesterday.

I also disagree with the sentiment that VB programmer are less intelligent or capable than C# programmers. That’s like me saying anyone who didn’t graduate from the mighty University of Illinois got an inferior education - it can sometimes be fun to make such statements, but you shouldn’t really believe them. A good programmer will thrive no matter what language he is using. A lazy programmer will take shortcuts any change he/she gets. I have met masterful VB programmers and ghastly C++/C# programmers. I think part of it depends on your own aptitude, and part depends on what you were exposed to and how good your teachers were. The guy who taught Java was Polish, with a very thick accent that made it very difficult to understand. But in lab, the lady was Indian, and although she had a thick accent as well, she was very good at breaking it down. By the time I got to Advanced OOP, I was well prepared. The guy I learned C++ from had no business teaching in a university. Most of the class came to me when they had a question. But for people who may not have had a talented peer or a motivated professor, their knowledge will be incomplete at best and outright wrong at worst. And their future colleagues will make them feel like they are stupid because of their deficiencies and inexperience. Hey, these are people who need to put people down to feel good about themselves. I can say without hesitation that knowing what someone’s primary platform is no indication of their grasp of OOP or anything else. If I found myself out of work, I feel I can jump to whatever language is necessary and still TCB.


Eventually everyone will be programming. I think that VB or VB-like language will survive over a C-like language because of the English-like syntax. They will be teaching it in elementary schools.


hmmm, i working on a project … image processing application (ACDSee like). And i cant decided which to use, C# or Vb 6…



As someone who wrote his first program before most of you were born (aplologies to anyone born before September 1964)and has written software in numerous assembler languages, COBOL, Fortran, VB, C#, C++ and a number of other languages no one has heard of I would say that from a maintenance point of view VB is superior.

VB allows optional arguments which means you only have to have one version (I know more versions are generated under the covers) visible in the code. This means you only have to make changes in one place instead of in several overloaded versions of a routine. If fact overloading doesn’t cover all cases - consider a routine with two optional strings. Dead easy in VB; Can’t be implemented with overloading.

VB also allows named arguments, which in addition to providing useful documentation about the called routine, provides a safety net if the routine’s interface changes.

The features may seem trivial, but if you consider the lifetime maintenace costs of a system are typically 3 times the development cost anything which reduces maintenance is a good thing;


You guys amaze me! You think there’s a difference between C#.net and VB.net? The syntax is near as dammit identical! Swap me/this, =/== and add or remove a few ; and {} and you’ve got the other language. Wise up you C# elitists - Microsoft’s secret is that C# is actually VB with curly braces ( a has already been pointed out).
If you don’t beieve me, look at any programming book that provides code examples in both C# and VB. After a couple of chapters, you can’t tell the difference!
Before the advent of the .net languages, it really was a case of the best tool for the job; a competent VB dev would be more productive on a typical business client/server app than an equally competent C developer, simply because the higher level of abstraction was appropriate for the requirement. Similarly if the intention was to write a competitor to Word, then C would beat VB hands down - once again, because it was the tool for the job. Again, writing something that gets even closer to the hardware - real-time idustrial control, say, or a driver or even an OS - would require assembler or C or a mixture of both; or VB for the UI and C to talk to the hardware. To say one of those languages is ‘better’ is simply as meaningless as saying a dentist’s drill is ‘better than’ a Bosch hammer drill… . .but to argue about the minute differences in the syntax of the CIL pre-compilation dialect you happen to prefer is just utterly absurd . . . .