logo
vbRad Home
Source Code
Book Reviews
Forum
Links
About Us
Contribute

Compare Databases with SQL Effects Clarity
 
 Top 10 reasons C# is better than VB.NET

Posted on
8/23/2004
Author:
Robert Gelb
Email:
Not Shown
Applies To OS:
All
Product:
N/A



Related Articles
Top 10 reasons VB.NET is better than C#

Let's get practical, religion aside, with an eye on programmer productivity, here are the top 10 reasons why C# is better than VB.NET, in no particular order. If you have some other ones, let me know.

  1. In C# the line ends when I type the semicolon. The practical offshoot of this is that I write code like this:
    string sql = @"SELECT *
    		FROM SomeSuchTable
    		WHERE ID='WhatHaveYou'
    		ORDER BY ThisAndThatField ASC ";
    So when someone hands you a SQL statement you can just paste it into your code and the output (i.e. carriage returns) will still keep the format. In VB.NET, you would have to write the following to keep the formatting.
    dim sql as string = "SELECT *" & vbCrLf
    		sql += "FROM SomeSuchTable" & vbCrLf
    		sql += "WHERE ID='WhatHaveYou'" & vbCrLf
    		sql += "ORDER BY ThisAndThatField ASC "
    And that's annoying.

  2. Increments/Decrements. a++;a--; 'Nuff said

  3. Money. No, not the data type. The green. C# developers make more money. Don't believe me? Here is the proof. Like Orwell said, War Is Peace, Freedom Is Slavery, Ignorance Is Strength and yeah, it's the same .NET framework, but Perception is Reality. Get over it. Learn it. Put it on the resume.

  4. I am not sure whether this is a valid reason, but with C# I can use Borland C# Builder which sports my beloved SDI interface, a la VB3, so that you can code full screen. This interface was also available (though not by default), in VB4,5,6 and VS.NET 2002 beta 1. The SDI interface disappeared from the VS.NET product before it shipped though. Anyway, if you miss that kind of interface, you can use it in Borland C# Builder.

  5. Error Catching. C# catches a lot more errors than VB.NET, such as uninitialized variables, dead code, etc...

  6. You get to act really snotty to VB.NET developers, yeah! That's priceless.

  7. The source code to the C# compiler is available from Microsoft and Novell. This means that you can theoretically develop apps for OSes other than Windows, such as Linux and MacOS. Thanks to Jai Lue for this tidbit.

  8. C# has Operator Overloading (my favorite feature from C++). Though, via the grapevine, VB.NET will have this feature in VS 2005. Thanks to Aditya Vaze for this language delicacy.

  9. Comments in C# are just better. You can do multiline comments, XML comments, single line comments, etc... Thanks to German Voronin for this.

  10. Regions in C# are far better. The key here is that you can place a region inside a function, thus breaking up the implementation into logical pieces. I simply love this ability.





Add Your Comment  

Name: Email Address: all fields optional
Notify me via email when someone responds to this message (valid email required).

Enter the word:
 



Comments
#1. By Alpha Binary. Posted on 3/16/2006 2:16:31 AM
Some of the issues you mentioned do have a valid point; others are just plain nonsense to me :)

1. CarriageReturns do NOT matter in SQL statements. whether it's there or not has nothing to do with how the sql server function. Moreover, you can also use the underscore to continue your codes in the next line. For example:

Dim SQL As String = "SELECT * " & _
"FROM blahblahblah"

etc. One can reverse this issue and point out that it's more convenient than C# because you do not need that little annoying semicolon at the end of every line, reducing the code's clarity and readability. It's COMMON KNOWLEDGE that each commands end with a line termination.

2. Its equivalent in VB.Net is A+=1. It takes, precisely, four letters of code. :)

3. Hmph... I have to agree with this one. There's no denying that a "C-Sharp" developer sounds a lot more professional than a "Visual BASIC dot net" one.

4. There are various editors out there that only work for VB.Net as well. I'm not going deeper into this matter because I only use the .NET IDE. Love it.

5. Nonsensical! Obviously you do not know enough about VB.Net to be critizing it. :/

6. Oh well...

7. Who's gonna bother porting it to a different platform? Well, I can't deny that this has its point as well...

8. As you have said, VB.Net features this in VS 2005.

9. Honestly, who uses XML comments in their code? For the multiline comment, there's a button on the toolbar that allows you to comment the whole selected area instantly. You can even assign it your favorite hotkey. I can also say that VB.Net features TWO (yes, not just one, but TWO) ways two do a single-line comment as well, even it's just there for the sake of compatibility.

10. AFAIK functions are not meant to be large. They consist of codes that do a specific job. If a function is too large, I always break it down, for the sake of readability.

Hope you're not troubled by my below-average English. Thanks for sharing it anyway.

#2. By Robert Bouillon. Posted on 3/16/2006 4:15:22 PM
Some good comments by "Alpha Binary."

#10 is HUGE, though rarely used I'd be frustrated by this if it was left out of c#. For example, I wrap my parameter validation in a region inside the method because it very rarely changes and makes the code neater: the only code I see is the functional code pertinent to the method. I also do it with my "Finally" clauses because those are generally all the same, rarely need updating, and are plain ugly :) Regions make it MUCH easier to find the code you're looking for.

C# forces you to think more object-oriented because it exposes you to the object model rather than obscuring it through the VB.NET library. For example, in C# you have to manually attach methods to events using delegates. In VB.NET you use the handles keyword (Which I personally find more difficult). Parsing strings uses the val method where the best way to cast is to use the Int32.Parse. Why have the compiler figure out the source/destination type on every execution rather than explicitly defining it in code? Is it really THAT much more work to use Int32.Parse over val?


VB Allows you to create code that is not as efficient as code written in C#. More examples are available online, but as a rule of thumb, if you want to write good, professional code in VB.NET, avoid the VB.NET library functions.

#3. By Anonymous. Posted on 3/17/2006 5:05:09 AM
The comments by Alpha Binary:
1. Carriage returns in SQL don't matter, correct, however, but you also don't to add continuation characters every couple of words. You'll get a carpal tunnel.

2. You gotta hunt for too many keys. You can't deny that a++; is better than a+=1
5. It certainly does catch a lot of more errors/warnings by default.
9. Who uses XML comments? Almost every professional coding shop. NDoc wouldn't be about around without it. Anyway, vb 2005 has that too now.

#4. By notty. Posted on 3/22/2006 9:48:40 AM
C# is easy for ppl who know c or C++ becoz in vb the process of declaring the variables itself is like DIM which looks very odd to me & even the sub end sub etc.,

#5. By carlos. Posted on 3/28/2006 1:50:36 PM
all of you are missing an important point. is not just ++i, but could also be i--.
if you are a really experimented programmer, you know the difference.

#6. By Rob. Posted on 4/13/2006 1:01:35 PM
@carlos,
you mean the difference between a++ and ++a (and a-- and --a) I guess.
I don't now of any vb equivalent for that.

Also don't now why you have to be a really experimented programmer to know the difference,
it's basic knowledge.

#7. By Daniel Clarke. Posted on 6/1/2006 2:51:06 PM
Re: 2
A++; is 4 characters, A+=1 is also 4 characters.



The BIGGEST issue with C# is that visual studio for c# is CRAP compared to that for VB. It does nothing of the cool things that VS does when you write VB. I have heard that 2005 is beter, but still.





Oh and another thing that I think may be to do with VS rather than with the c# language itself is this:


myclass Foo;
try
{
Foo = new myclass();
}
catch
{}
Foo.DoStuff(); /// this line caused a compile error. We are told that Foo is uninitialised. Bollocks is it.

#8. By Daniel Clarke. Posted on 6/1/2006 2:59:03 PM
My probalem with the language itself, rather than visual studio being ghey, is that the curly brackets are confusing when nested.

Thus I comment my closing curly brackets as if it were VB:

void Foo()
{
if (something == 0)
{
foreach (int x in y)
{
DoStuff;
} // End foreach
} // End if
} // End subroutine


If you are doing all this commenting to help remember which bracket is terminating which block, you might as well enjoy a syntax that divulges this information explicitly:

Sub Foo()
if something = 0 then
For Each x in y
DoStuff
Next
End if
End Sub

#9. By Chris Simmons. Posted on 6/3/2006 12:13:11 AM
1. No real programmer would write an sql string to a variable anyway besides if you use & _ it will put you to the right place on the next line which doesn't happen in c#

2. a+=1

3. Overall this is true, but i know some c# programmers making the bucks who are bloody idiots

4. who cares why would you use anything but the VS ide anyway

5. that's bull, vb has better error handling

6. and vb developers can't act snooty?

7. you can develop apps written in vb and port it to linux max etc i know i've done it and it was just as easy as c#

8. i use this in VS 2005

9. i have to agree with this, but then again unless your selling your product i don't really write comments anyway, if you can't read my code, well the comments arn't going to help you anyway.

10. have to agree with this, but if your functions are that big that you need to put them in regions your doing something wrong.

and my two cents are c# and vb the differences are minimal, the only reason why c# programmers are paid more is because all the well paid c++ programmers moved to c# and c# encourages OO practices, but I havn't seen an advanced c# developer do a better job than a vb developer, lets face it most of the vb.net programmers are coming from a world without oo and they do'nt get it, maybe they never will, that's not vb.net's fault

#10. By Anonymous. Posted on 6/5/2006 6:22:52 AM
BAC:BACnet.BACnet.KMC & D14 Sus's&[DEV_14].[AI_13]AI13.event-state:RTDATA:R:Integer

#11. By Andreas. Posted on 6/30/2006 12:50:49 PM
What about this stupid stuff in vb?

Dim myInt as int32= 1
Dim myString as String = "ehhe... This will crash " + myInt

And more:
if ( not myObject is nothing and myObject.property = true ) then
end if

This will also crash since MS decided that and should continue evaluate even if the end result is false despite standars approaches. instead one have to user the AndAlso operator. This sucks!

#12. By Daniel Clarke. Posted on 6/30/2006 1:30:37 PM
ANDREAS:

No, that does not suck at all. The person that would be dumb enough to write that code would suck.


Remember that in VB the + operator is NOT concatenation but addition. You cannot sum an int and a string. If one trys to do this then one sucks as a programmer.

If you did this it would not crash:
Dim myString as String = "ehhe... This will crash " & myInt

Personally I think this is a better approach than having the + operator perfom concatenation or addition depending on its operands.
e.g.
Dim iZero as Integer = 0
Dim iSeven as Integer = 7
Dim sJamesBondOne as string = iZero + iZero + iSeven ' gives "7"
Dim sJamesBondTwo as string = iZero & iZero & iSeven ' gives "007"

Which of those do you really want? In VB, you have the choice. In C# you cannot use &, nor can you shove integer 7 into string sJamesBondOne.




And more:
if ( not myObject is nothing and myObject.property = true ) then
end if

Agreed this will crash but you are dumb if you wrote code like that.
As you say it's better to write:
if ( not myObject is nothing andAlso myObject.property = true ) then
end if

If one knows that 'and' will continue but 'andalso' will not, then one's use of 'and' in a potentially dangerous situation like the above shows that one are a bad programmer, not that the language 'sucks'.


Daniel Clarke

#13. By Anonymous. Posted on 7/5/2006 5:11:18 AM
oh great camparison between c# and vb.Net,it's nice one............

#14. By fawad ali. Posted on 7/18/2006 12:53:43 PM
on some points.. i just dont agree with u ,for example developers who work with c# to develop appliocations earn more money than those who prefer vb.net . the source u have use to prove ur point is just one (single source). there may be 100s of other sources may have indicating vb.net programmers earn more. any ways, the truth is,if the application is made well and good, does't matter in which language. and yes.. by the way i am a vb.net programmer.

#15. By C# !!!. Posted on 7/22/2006 1:32:28 PM
i++ is the same as i = i + 1 which is 3 steps, load i into register, load 1 into register & add...
++i is increment which is 2 steps, load i into register & increment i.

So basically ++i is faster. You can find on the net many places showing that VB.NET code is not MISLing as efficient as C#

#16. By everynobody.com. Posted on 7/28/2006 10:53:02 PM
Some of that above is misleading or inaccurate (the SQL Statement is on point but I develop in Sprocs so its all the same more or less), but . . .

As a recent VB convert after over 7 years of vb and vba develeopment, I can honestly say; "WHAT THE EFF TOOK ME SO LONG?". Especially if you are heavy into web dev and JavScript development, it feels more natural. If this was a VBScript vs C# contest, well duh, the doors are blown off anything previous. But in VB.NET vs C# it comes down to development environment. COMMENTS! They rule in c#. And all good coders comment the hell out of their work so sold me.

Oh yeah, and the increase in pay. So actually forget the rest. That makes it worthwhile.

#17. By John G. Posted on 9/8/2006 3:26:45 AM
#1.
dim sql as string = "SELECT *" & vbCrLf
sql += "FROM SomeSuchTable" & vbCrLf
sql += "WHERE ID='WhatHaveYou'" & vbCrLf
sql += "ORDER BY ThisAndThatField ASC "

Nice try

dim sql as string = "SELECT * FROM SomeSuchTable _
WHERE WhatHaveYou ORDER BY ThisAndThatField ASC"

#2 +=, -=, Just as good my friend

#3 Probably true, but every programmer should know more than one language.

#4. Just preference more than a valid reason, Borland IDE is not better than Visual Studio by any stretch of the imagination

#5 This is totally untrue and I find it ridiculous this was even mentioned.

#6 Not smart ones!

#7 I haven't met any .NET programmer (and I know a lot) who would port a .net app to another? I wish the examples provided were more valid to rebut.

#8 Included in 2005

#9 The only valid reason to use XML comments is for methods to appear in a tooltip or for a brief description in the Object Browser. VB can do this, so this again, is not a good point. I personally prefer a ' anyday against a //

#10 Dude.....Regions are far more cleaner in VB than C#. So much so that very few C# programmers even bother with them, while most VB folks use them.

#18. By Daniel Clarke. Posted on 9/8/2006 1:10:46 PM
John G:

dim sql as string = "SELECT * FROM SomeSuchTable _
WHERE WhatHaveYou ORDER BY ThisAndThatField ASC"

This cannot be written in VB (in VS2003 at least).
The studio will always replace it with

dim sql as string = "SELECT * FROM SomeSuchTable _ "
WHERE WhatHaveYou ORDER BY ThisAndThatField ASC"

and then underlines the word 'where' as a syntax error.


Maybe you mean

dim sql as string = "SELECT * FROM SomeSuchTable " & _
"WHERE WhatHaveYou ORDER BY ThisAndThatField ASC"

which is better than the example given with the "sql +=" everywhere, but still not as nice as C#.


On the other hand, having to prefix literal strings that don't contain line break in them with an @, such as
string foo = @"C:\foo"
is still annoying.

#19. By John G. Posted on 9/8/2006 3:30:00 PM
Yes, small typo, this is what I meant.

dim sql as string = "SELECT * FROM SomeSuchTable " & _
"WHERE WhatHaveYou ORDER BY ThisAndThatField ASC"

Personally this looks better than the above sample. But that boils down to more preference than anything else. Since the differences between C# and VB 2005 and so small, it will ALWAYS remain just a matter of preference.

I like the convenience of the My namespace, also better intellisense, but this is a preference. I code in C# for a living, but I also do a lot in VB 2005. I think this debate really is obsolete, the main purpose of the .NET Framework is One Platform, many languages.

Anyone who thinks if (!test == null) looks better than if (test IsNot Nothing) is expressing a preference, nothing more. I love C#, but I also VB 2005.

Bottom line, learn both and be more valuable...

John G

#20. By Gavin. Posted on 10/3/2006 7:02:35 PM
As for comment #1 from Alpha Binary, carriage returns DO make a difference in SQL statements! If you dont care about others being able to read your code, then how do you expect to ever be considered a professional?

And for your comments as a whole, I dispute the fact that any language is particularly better than any other language, at least without putting qualifiers with "better". The difference is in the quality of the developers/architects.

You do not select a technology and then try to fit a solution into that technology. You are supposed to choose the right technologies to suit the problem.

ie: I wouldn't use a hammer to polish a car ;)

#21. By Denny. Posted on 10/17/2006 9:31:12 PM
This: string sql = @"SELECT *
FROM SomeSuchTable
WHERE ID='WhatHaveYou'
ORDER BY ThisAndThatField ASC ";

Returns This: "SELECT *\r\n\t\tFROM SomeSuchTable\r\n\t\tWHERE ID='WhatHaveYou'\r\n\t\tORDER BY ThisAndThatField ASC " ....

Thats NOT the sql string that I asked for ... will it is in C# I guess... but I definatly couldn't pass that to a sql server

#22. By Randall. Posted on 10/26/2006 11:19:21 PM
Besides the fact that C# reads like a great majority of other languages, which is a big ol' plus if you happen to use anything else, I pity the poor fool who is stuck with porting VB6 code to VB.NET (like I was), particularly when COM is involved (and you can forget that VB6 -> VB.NET Wizard). Its not likely a matter of choice for anyone stuck with such a task, of course, but it makes you wonder why anyone ever thought that it was a good idea to use 1-based indexing... and then you have line numbers, things like "call" and "set", 16 to 32 bit datatype converesions, On Err, and two ways to return values from a function (function_name = value/return value).

Good programming and spoken languages alike should exhibit consistency in their core features over time.

#23. By Daniel Clarke. Posted on 10/27/2006 12:48:34 PM
Denny,
The string you see in Intellisense or in the Immediate window *IS* what you wrote on your code. It's just showing all characters expressed slightly differently, a bit like when you press the "show all characters" button in Word. What you have is the characters S, E, L, E, C, T, space, *, carriage-return, new line, tab, tab, F, R, O, M ... etc
How you show this or how it's shown to you is not what's important, what's important is that your string is indeed made up of the exact characters that you typed.

SQL would accept that and hanlde it perfectly.

But if course you would not pass a select statement from your VB/C# to SQL would you? You'd write a proc and then pass the name of your proc and the value for its arguments, right??

#24. By aatif warraich. Posted on 11/6/2006 9:43:00 AM
My dear Where r u standing
1)use _ in VB.net
2)Use Num+=1
3)I would like to say that more work done in vb .net not in C#. so money and opertunities in Vb.net.
But indivially C# developers getting more money
4)NO dear u r not know about vb.net (u r just going to comments)
5) errror checking is there also in vb.net and also provides u more flexibility to write code
6)It is price full
7)well
8)nice it came in vs2005
9)priceless point to prefer C# over VB.net go for VS just select and comments
10)no comments
sorry for denying
aatif hussain warraich
software engineer (incomesol lahore pakistan)

#25. By Anonymous. Posted on 11/6/2006 9:44:54 AM
warraich_pu@yahoo.com

#26. By AATIF HUSSAIN WARRAICH. Posted on 11/6/2006 10:48:21 AM
That's the difference my dear one
1)>As far as the .NET Framework is concerned, all programming languages are pretty much equal. In the past, you may have evaluated languages on the basis of their compilation and execution efficiency or their editing, design and debugging tools.

>The really important differences between the languages are not to be found in their interaction with the runtime system but in the support they offer to the programmer.

>Because Most of these considerations are irrelevant when programming for .NET. Languages such as C#, VB.NET and others can, in principle, access the same classes and output the same MSIL code. When hosted by Visual Studio .NET, they even share the same development environment.
In short, the syntax, the structure and the clarity of the languages are paramount.
2)
>While it is generally true to characterise C# as the terser language, this is not invariably the case. When you need to read or write multiple properties of a single object, VB.NET provides the very useful with keyword. This lets you enter the object variable just once rather than repeatedly. This can often make VB.NET considerably less verbose than C#, as you can see in this example:

’ Set TabPage properties in VB.NET
With TabControl1.TabPages(0)
.BackColor = Color.Red
.BorderStyle = BorderStyle.Fixed3D
.ToolTipText = "Click Me!"
.Text = "Hello world"
End With

// Set TabPage properties in C#
tabControl1.TabPages[0].BackColor = Color.Red;
tabControl1.TabPages[0].BorderStyle = BorderStyle.Fixed3D;
tabControl1.TabPages[0].ToolTipText = "Click Me!";
tabControl1.TabPages[0].Text = "Hello world";
3)
>For programmers with no previous experience of a C-like language, VB.NET code will, in most cases, be easier to understand than the C# equivalent. Take the example of a simple for loop. You could read this VB.NET version aloud and understand what it does:

For i As Integer = 0 To 7
TabControl1.TabPages(i).Text = "Tab: " + i.ToString()
Next i

The same cannot be said of its C# equivalent:

for(int i = 0;i < 8; i++){
tabControl1.TabPages[i].Text = "Tab: " + i;
}
4)
>Incidentally, there are two interesting things to note in the code fragments shown above. First, experienced VB programmers may be surprised to see the declaration of i As Integer in the For loop. In previous versions of VB, the counter variable in a For loop had to be pre-declared. The other thing to note is that C# automatically converts the integer variable, i , to a string when it is concatenated using the + operator. VB.NET does not permit this. Instead it requires the variable to be explicitly converted using the ToString() method.
5)
>There are several non-intuitive or ambiguous features which C# has inherited from the C language. To take a simple example, C# allows programmers to increment or decrement the values of a variable by placing two plus ( ++ ) or minus ( -- ) characters either before or after the variable. The resulting value can then be assigned to some other variable. However, the effect of the assignment varies according to the position of the increment operators. If placed before the variable, the increment is done before the value is assigned. If placed after the variable, the value is assigned before the increment is done. Used carelessly, this can result in subtle bugs. The VB.NET syntax does not allow such ambiguity.
On the other hand, VB.NET has acquired some C-style operators which can be used for brevity. The += and -= operators, for instance, allow you to increment or decrement the value of a variable without having to repeat the variable name on the right-hand side of the assignment:

x += y ’ this is the same as x = x + y

6)
>Other distinguishing features of the VB.NET and C# languages include the case sensitivity of C#. In VB.NET, a variable named MYVAR can also be written as myvar. In C#, these would be treated as two different variables. There are, of course, numerous syntactical differences ranging from the declaration of variables ( Dim VariableName As TypeName in VB.NET, TypeName VariableName; in C#) to the way in which statements are terminated (typically the end of a line in VB.NET and a semi-colon in C#).

7)
>More significantly, C# gives programmers the option of using pointers. Pointers are variables which refer or ‘point’ to specific locations in memory. They are so widely used in C and C++ that many programmers may find it difficult to conceive of programming without them.
>The trouble with pointers is that they are inherently unsafe. They make it easy to corrupt memory, overwrite data and crash your applications. C# discourages the use of pointers but does permit their use within blocks of code marked with the unsafe directive.
>Code marked with the unsafe directive is ‘unmanaged’. This means that it is run as native machine code without benefiting from the services of the CLR. The use of pointers may be useful for certain special programming tasks that require the direct manipulation of memory or interaction with COM. In most cases, however, the .NET Framework provides all the services your program requires without having to resort to the hazards of unmanaged code. VB.NET is more restrictive than C# in this respect
It does not permit the use of unsafe code under any circumstances.

> Even so, it is not quite true to say that pointers can never be used. VB.NET provides access to pointers using the IntPtr type. This allows a limited range of pointer operations. For example, an IntPtr variable can be used to store a handle to a file or a window.
>If you prefer to program in VB.NET but have an occasional need to use pointers, you can, of course, add a C# or even a C++ project to your solution in order to do all the ‘dirty work’
8)
>Aside from the features of the languages themselves, there are also several significant differences in the way in which they are supported by the Visual Studio .NET environment. The code editor provides more automatic formatting and IntelliSense code-completion for VB.NET than for C#. For example, to create a property in VB.NET you need only enter the keyword property and a name such as MyProp. When you press the Enter key, the editor generates all of the following code:

Property MyProp()
Get
End Get
Set(ByVal Value)
End Set
End Property

In C# you would have to enter all the equivalent code for a property by hand.

9)
>The editor supplies many other types of automatic formatting for VB.NET. For example, it adjusts the capitalisation of keywords for consistency and it optionally reformats code by logically aligning statements, adding missing end quotes to strings, supplying parentheses to function calls and so on. The automatic formatting options available to C# are far less complete.
>The Visual Studio editor provides a number of automatic code formatting and completion options specifically for VB.NET. These can be disabled if you don’t like them.

10)
>In summary, when evaluating programming languages for .NET, the choice between C# and VB.NET is largely a matter of personal preference. In the past, VB may have been looked down upon by some developers who considered it to be inherently less powerful than other general purpose languages. But VB.NET is altogether a different beast from VB6. It is every bit as powerful as C#, it has full access to the .NET Framework and its compiled applications should generally be just as fast and efficient as similar applications written in C#.
>The only major difference between the two languages is that C# can break out of the ‘managed’ world of .NET to support unsafe code should this be required. However unsafe code is, as its name suggests, inherently hazardous and you may feel that it is a good thing to avoid using it. Explicit use of pointers is seldom required when programming .NET. If you really feel that you cannot do without pointers, then C# would be a good ch

#27. By zmc. Posted on 12/5/2006 11:46:46 PM
Most of the points I agree with.

Here's some things that I also thought of that are worth mentioning:

1.) VB/VB.NET has without a doubt the most counterintuitive variable declaration syntax I have ever seen in any programming language. Dim means nothing to me. Even when you know it means dimension, it is an esoteric word and is completely redundant, obviously I'm declaring a variable. (type) (varname) = (value), there's just no reason to invent a new syntax other than to be different for the sake of being different, which is obviously what MS wanted years back when they created this Satan spawn language.

2.) Array indexing looks like a function invocation. obj.someMethod(5) vs obj.someArray(5) For what reason other than to obfuscate the code?

3.) The distinction between a Sub and a Function, this one just down right pisses me off.

4.) Allowing methods to be called without the () operator, this is another one that is just ridiculous. I would prefer it if the language weren't as flexible and forced the () operator for method invocations, that way when I look at code I have a chance in hell at precisely understanding the expected behavior. Looking at this line of code: myObj.prop you really have no clue what this is doing, could be a property, a sub, or another object with a default property, who knows?

5.) Then/End if Are { and } so complicated that need to have pure english source code? The worst decision Microsoft made when designing VB was omitting all the wonderful punctuation characters. Sure, { and } are more confusing if you have never programmed before, but like anything else, you learn it and know it. A good editor handles all of the indentation for you. I guess this one is really pure personal preference, but from someone coming from C++, this is just craziness.

6.) It took almost 15 years to get short circuit boolean logic? And when it finally does come it takes at least 6 characters to express? ("OrElse" / "AndAlso") This is actually much more disastrous than it seems because they had to hack this into the language in order to support legacy code, which really just further supports the theory that everything about this language is a hack. The problem is this: now there are potentially people out there who code in VB.NET and have no knowledge of these new operators (VB programmers lacking knowledge of their own technology is fairly common, considering the reason they chose VB in the first place is probably because they care less about minute details) So what this means is there is an extra layer of obscurity on all boolean expressions, ie "Did they mean bitwise and or boolean and? Should I change this code to AndAlso?"

7.) The retarded _ line continuation "feature". Coming from C++, where nontrivial boolean expressions are very common, it is often most convenient to have multiline "if" conditionals for the sake readability, which in VB you have to use this silly _ at the end of every line. If I need a boolean expression containing 6 sub expressions with comparisons, my options are to have 6 lines with a " And _" at the end, or to put them all on a single line (not acceptable), or to split them up unevenly and still use the "_", none of which are optimal. It's even uglier when you have to put the "Then" on the same line. I just looks hideous and it all stems from the fact that VB programmers are afraid of the ';' character.

8.) No ++ and --, I'm very curious why these were left out...

9.) The Nothing keyword. Again, a verbose version of null, why? No good reason at all other than for differentiation and I guess they like typing more than I do.

10.) THE ULTIMATE LAME FEATURE : case-insensitivity on everything. I know I can normalize the case in my own code, that's not the point. Any professional programmer is going to end up dealing with other people's code, which is where this is an issue, because the language allows you to write code like a 3 year old.

In conclusion, if you know and are comfortable with C#, you have absolutely zero reason to learn VB.NET, unless you need to modify someone else's code. I know most of my reasons for disliking VB are based on personal preference and programming background, but I honestly am confident that some of the features in VB are wrong and a few I would consider to be downright blasphemous. It just seems that when I question all of my annoyances about VB, the only answer I can usually come up with is that Microsoft just wanted to create something that wasn't C. If it aint broke, don't fix it. In my opinion, they could have done that without making such radical changes to the syntax. JavaScript (with a few of its own little quirks) is everything VB should have been.

#28. By sandeep. Posted on 12/7/2006 1:28:00 AM
I am creating a order form, where I want the order number to increment everytime an order is placed. How do I do it.

#29. By Abul Hassan M F. Posted on 12/7/2006 11:28:04 AM
1. more over, if we are not using a declared variable any where in the coding, C# will give us warning as "The variable has been declared and never been used", but not the VB.Net

2. while defining functions, if we have used a return statement above some lines, C# will give as unreachable code before compiling, but not the vb.

3. same in functions, there's no need to mention the return type while defining.

#30. By Anonymous. Posted on 12/18/2006 5:34:26 AM
bullllllllllllllllshiiiiiiiiiiiittttttttt

#31. By Tim. Posted on 1/3/2007 4:05:12 PM
zmc,

You've pointed out quite a few problems with VB, most of which I agree with. But you also blame MS for most of these misfeatures, which is not entirely accurate. I'm no fan of VB (nor have I ever coded in it), but you have to remember where it came from. VB, after all, stands for Visual BASIC -- it's Microsoft's version of the preexisting language BASIC. MS did not "invent" VB from the ground up, so you can't say it's all their fault. Your points 1, 2, 3, 5, and 10 are all complaints about BASIC in general, not just VB. If they changed these features dramatically, it wouldn't be BASIC any more. VB is BASIC with modern features hacked onto it, so some issues, such as your point 4 about array access vs. function calls, arose partially from the original BASIC syntax and happened to collide with later additions.

Sure, VB isn't a good language, but keep it in perspective.

#32. By Bharath Reddy. Posted on 1/26/2007 10:51:20 PM
I got one more reason to say VB sucks ..

There is no god damn continue key word in VB.NET.Everytime you want to achieve that functionality u gotta put If else statments....

#33. By Radu Serban. Posted on 1/31/2007 7:57:16 PM
Some above said that it's easier to go through code when you see clear delimiters like End If, End While, End Sub and that many programmers use comments to duplicate them. The thing is in C# you can optionally mark the endings if you need them, but you don't need to mark them for simple statements. With proper comments it's much easier to look through C# code, since the block delimiters are more easy to follow. And as a side feature just try to find easily the matching If and End If in a multiple level If statement. It just isn't possible, while in C# you can just go to the matching brace.

#34. By Dulon. Posted on 2/15/2007 6:54:50 AM
That's why I dont like VB.NET :D

#35. By Rick Deschenes. Posted on 3/7/2007 12:29:40 PM
As many, times as I read through the all of the different coding message boards, I never see actual real world coding techniques used. In the real world would your application actually have hard coded SQL written in the application like that? No, I think it would be stored in an external file. At least I hope so, can you imagine the horror on the faces of your project managers when you tell them they need to reinstall or upgrade every PC in the brand new customer’s offices because there needs to be a space after each line in the SQL? An external file update is reusable code, while a hard coded statement is generally a fool’s errand.
In the real world this point is moot, you enter the SQL in any text editor, save it into a flat file, a resource DLL, a resource file, even store it in an INI, or for the modern world an XML encrypted file. I can think of about 10 ways to update the file with out a huge recompile, new upgrade, program version, revision, major, minor incrementing process.

#36. By Dave Schinkel. Posted on 3/7/2007 5:04:13 PM
Look. I used to be a VB.NET guy. I switched to C# due to the "environment" at a new company. After this, I will NEVER go back to VB.NET unless I have to for whatever reason (e.g. I move to a division where they are using it, etc.). The point is, I have found it much more enjoyable and makes my life easier, why? Well let me give you my reasons based on my transition to C# and after using it for a good year:

Some of this repeat but I guess I can say I will repeat it again since it’s worth repeating ;)

1) The transition from VB.NET to C# is actually easier then the other way around. Why? Because the syntax of C# is cleaner, using less lines of code or characters. I used to be in the school of thought that C# is intimidating due to the looks of the {} or whatever. The fact is, it only took me a week (literally, totally honest here) to get used to the syntax of C# and actually, I barely had to look anything up because there are only a few subset of things you need to know to change. They are the following for the most part:

2) All the stuff above in this article...for sure. Like or not, recruiters are not always tech oriented. And a lot of jobs at the big companies are done in C#. Like it or not, in several cases, those recruiters or PMs are not the smartest (well most PMs aren't very technical which is a problem in IT culture these days) and may not even consider you if you have done VB.NET even though it can do the same.

3) Using } to end your classes, methods, etc. instead of End this or End that like in VB. What a waste of typing!

4) Ability to use a method to either return or not return a value. No longer need to worry about separating out into Subs and Functions...that's a mess!

5) No more Dims. All I have to do is type variable; that's it! e.g. string myvariable; (nobody needs to look this up, just take out Dim as and add a ;!)

6) The error checking is much better. VS 2005 helps me fix my code much better!

d) I can read the entire page of code so much more clearly because there is simply less syntax. I hate reading a VB.NET page. It's long as hell.

7) Loops are simply cleaner looking and easier to read

These are just a few benefits. and is why going back to VB.NET to me, would be like going from ASP.NET back to ASP Classic...meaning, it's so much nicer to code with C# syntax-wise! There is NO learning curve whatsoever like everyone thinks when moving to C# and those brackets just melt away in the background. I never forget to end bracket either...it's by habit that I add it so I never have to worry about it. Try it! You'll only see that when you are forced to change and then you will see that it was no big deal. I cannot say likewise going back to VB.NET, I dread it, who wants to type all day long Dim and whatever!

The fact is, switching was not a big deal at all. I was intimidated but found out, yes, there is no difference between the two. The difference was minor going to C# due to less code and in the end, I am a much happier programmer with less crap to worry about in syntax as in regards to VB.NET syntax!

#37. By michael. Posted on 3/8/2007 7:27:52 PM
A couple of things.

Does it really matter which is used as long as it is coded well and work?

VB.Net and C#.Net. When they're compiled, aren't they compiled into the same bytecode for use by the Common Language Runtime? So, other than syntax and maybe a little added funtionality in C#, is there really that much difference?

Here's how I see it. VB.Net is a hell of a lot better than VB6.0. Anyone want to argue with me on this?

C#.Net may be marginally better than VB.Net, but it is at best only marginal.

It makes since to know both given that unless you work in a sheltered environment, you will likely come across both at some point and you'll be better off knowing both.

If you code in Java much, you will find C#.Net to be much easier to read and understand. (Oh yeah, for the person who thought C#.net was hard to follow because of nested {}, have you ever heard of tabs?)

For the discussion of which comment type is better than the other, maybe I just haven't done it before in VB, and quite likely it is there, but I love the fact that in C#.net (and it Java), I can add my comments with the correct syntax to the code and then use the document / javadoc tool to create a great deal of my documentation. Like I said, maybe you can do this in VB.Net, I've never tried, but boy do I love it in C# (and in Java).

As for the IDE, boy, who can argue that VS 2005 isn't a lot nicer than VS6.0! WOW, what a difference. But hey, some of those cool things that you can now do in VS2005 (and in VS2003) were available 4 or 5 years ago in Eclipse for Java Developers.

Ok, I'm just bringing these things up. I am not an expert C#.net programmer or even an expert VB.net programmer. What I can tell you about myself is that I'm a pretty good programmer, and that I can write good programs in VB6, VB.Net, C#.Net, Java, JScript, VBScript, Korn, and Bash. I personally don't feel that there is one magic right language out there, they all have their places. Truth is, I would like to use C++ or assembly more. While they are harder to read, harder to learn, and harder to program well, my experience is that they are faster, and that knowing them make you a better programmer in general.

One other thing, #6, is that all you know, C#.Net? What kind of programmer are you? You want to be snotty? Prove that you can step into any situation, read any code, and be able to extend that code, or improve it, and then you can be snotty. Otherwise, you're just a one trick dog. Go back to the pound!

#38. By world. Posted on 3/18/2007 2:16:22 AM
hello world http://bcreditused.info http://carloanp.info http://refincarloan.info http://badcredith0melan.info http://creditcard0ffer.info

#39. By Anonymous. Posted on 4/9/2007 8:17:29 PM
i++ or ++i is insignificant by themselves.

Use them in compound statement to see their beauty.

j=i++ or j=++i (the 2 statements are totally different with totally different results)

Some simple examples.
if(++i < j)


while(i < 10)
{
a[i] = a[++i]; move a[n+1] to a[n]
a[i] = a[i++] * 2; a[n] = a[n] * 2
}

Also a++ is an increment statement, a+=1 is a=a+1 which is addition. In machine code, increment is a shorter instruction and executes much faster.

#40. By Manoranjan Rout. Posted on 4/13/2007 11:39:43 AM
In Vb.net the less number of typing is needed to write code and less no. of syntax error is in vb.net and it is easy to find than C#.

#41. By Michael 'netcop' P.. Posted on 4/16/2007 2:18:12 PM
In the past I was a VB6 (over 10 years) and then a VB.net guy. Then I switched to C#.
The first reason was Resharper R#.

This tool (or any other refactoring tool) makes developer life much easier!

The second reason are multiline comments.

#42. By Manoranjan Rout. Posted on 4/17/2007 5:37:53 AM
I am not agree upon your betterment bcause in vb.net we need to write less no. of code than C# and it is easy to write.It may be easy to catch the error but in vb.net less no. of error are generate than C#.C# give more syntax error.

#43. By Jesse D.. Posted on 4/18/2007 9:31:30 PM
Hi Robert,

Let me say this before I drag you in a Pile of CRap where you actually belong: "Youre A Fool And You Should Be Doing Farming And Quit Programming Right Now"

Now here's 10 response to your above posted 10 faggy C# Love Reasons:

1. VS.Net will automatically do your code Formatting. You practically will never have to do this ever again.

2. If you think youre going to save TIME between a++ and a+ =1 Then God Bless You faggot.

3. I make a 6 Figure Base Salary for a Top Investment Bank in NYC and handle a high profile role working on VB.Net. Again its not about VB.Net or C# Its what you can do with either of them.

4. MS IDE Designers against Borland. You've gotta be kidding.

5. Errors are part of the Framework you jerk. Anythign you can think of catchign you can do so alike in VB.Net & C#.

6. VB.Net Developers are way too cool to let jerks like you disturb our composition.

7. You surely aint a OS Developer for sure you faggy mid-west farmer. So who you kidding.

8. VS2005 has it.

9. You're really a faggot talking about how your comments look like.

10. Region Start - End.

So heres the story in a Nutshell,

Give Up Programming if you haven;t done so already. You faggot.

#44. By Jesse D.. Posted on 4/18/2007 9:35:06 PM
Hi Robert,

Let me say this before I drag you in a Pile of CRap where you actually belong: "Youre A Fool And You Should Be Doing Farming And Quit Programming Right Now"

Now here's 10 response to your above posted 10 faggy C# Love Reasons:

1. VS.Net will automatically do your code Formatting. You practically will never have to do this ever again.

2. If you think youre going to save TIME between a++ and a+ =1 Then God Bless You faggot.

3. I make a 6 Figure Base Salary for a Top Investment Bank in NYC and handle a high profile role working on VB.Net. Again its not about VB.Net or C# Its what you can do with either of them.

4. MS IDE Designers against Borland. You've gotta be kidding.

5. Errors are part of the Framework you jerk. Anythign you can think of catchign you can do so alike in VB.Net & C#.

6. VB.Net Developers are way too cool to let jerks like you disturb our composition.

7. You surely aint a OS Developer for sure you faggy mid-west farmer. So who you kidding.

8. VS2005 has it.

9. You're really a faggot talking about how your comments look like.

10. Region Start - End.

So heres the story in a Nutshell,

Give Up Programming if you haven;t done so already. You faggot.

#45. By JustDre. Posted on 4/23/2007 10:28:21 AM
ZMC has the most salient points about why C# is better than VB. However, he reeks of n00bness to not know that DIM and most of the VB syntax is not "invented" by Microsoft, but is inherited from BASIC. It's too bad that VB carries the stigma of BASIC, especially that "B" (from BASIC) which any good VB developer knows doesn't apply to _him_ (or her). I actually agree with michael who says that assembly language will make you a better programmer in general, but someone else who was saying that C# is better because it executes i++ faster than i+=1 is not giving the VB.NET IL compiler much credit. Not knowing the difference between somevariable.some_obfuscated_method(5) and somevariable.some_obfuscated_array(5) would be of only trivial importance, or, conversely, of short-lived duration.

Sure, C# code looks cleaner, is less verbose, but will almost always be entirely coded by hand. The fact is that given two competent developers, the VB.NET developer has an equal or better chance of developing the same functionality in less time than the C# developer. In fact, if the two happen to decide on the same implementation, both versions will likely execute in the same amount of time, even. Both languages allow one to develop some really horrendous code, especially code that's so bloated that comments are necessary. At the end of the day I'd rather be able to show some code to my support staff and have them understand why the software works the way it does, and have them "get it" because 1) it reads like English, because BASIC is modeled after English, and I've named my members correctly; and if I've written it correctly, 2) can be seen in about 10 lines of code or less.

So now I'm off to find the _real_ reasons that C# is better, which has to do with features not available in VB.NET. I noticed that while a VB.NET 1.x shortcoming was mentioned, no one cared to bring up generics, or any of the more powerful new namespaces introduced in the new framework. I've no doubt that given the number of languages I know, "learning" C# would be quick given the common framework which is, incidentally, the heart of .NET.

#46. By JustDre. Posted on 4/23/2007 10:40:49 AM
Oh, and I just wanted to point out to Robert Bouillon (or anyone nodding their heads in agreement) that "avoiding" the VB.NET library functions is a bit ambiguous and lame. While I'd say that some of the Microsoft.VisualBasic namespace members are overly simple, most of the framework allows for custom implementation due to its inherent provider pattern; then again, most of the base code is already written for you to inherit from, making the code easier to debug and understand. Whether Robert was referring to the former or the latter, one should realize that Microsoft is allowing third-party developers to extend what's already there while providing a simple implementation out of the box.

#47. By Bullocks. Posted on 4/27/2007 12:26:23 AM
"My dad i stronger than your dad".
"I have a bigger penis".
"Oh look, my language is better than yours".

Grow up.

Its not the language that matters, its the solution. If a customer cant take VB as a solution then they can go f**k themselves. Knowing a certain language doesnt make you a better programmer, the most retarded programmers i've met are those who do Visual C++ only. What i typically hear is "Is VB object orientated?", i usually reply: "Do C++ have classes?" (I know the answer since i know C++, i just want to piss them off).

Any good programmer would wise up and learn at least 2-3 languages.

#48. By thoughtwist. Posted on 5/28/2007 12:51:01 PM
Why fight, just code both :)

#49. By Dan Mor. Posted on 6/7/2007 3:09:50 PM
your R.. about vb but wen its the only one that you have used in 10 year
its hard to forget about it and use c# or others.

for me it s hard and mind breaking in fact it s a head problem
and worst. try to use html than use asp or php it is the same

for trying it i beleave it's true thank's for your input on the c# and vb

#50. By Martha. Posted on 6/8/2007 3:50:10 AM
Very interesting site. Hope it will always be alive!

#51. By .net developer. Posted on 6/22/2007 7:05:12 PM
Are you done justifying why you're hidding behind a language? Why a waste of time!

#52. By Anonymous. Posted on 7/16/2007 2:37:17 PM
SELECT *" & vbCrLf
sql += "FROM SomeSuchTable" & vbCrLf
sql += "WHERE ID='WhatHaveYou'" & vbCrLf
sql += "ORDER BY ThisAndThatField ASC "

#53. By Rick Doble. Posted on 7/20/2007 4:32:28 AM
geuNdA I put together a show of about forty photographs at a frame shop. I invent a unique way of mounting the pictures, flush on aluminum with a spacing device to move the picture out from the wall. This way of framing has never been done before, at least in our area. (Now I see it all the time on styrafoam board.) The show is a wild success with about a hundred people at the opening including the former director of the Playhouse 90 series on TV (a teacher in my department) who loves my work and brings the Chairman of the Art Department with him.

#54. By JLover. Posted on 7/28/2007 7:26:49 AM
This is all bullshit! Java is the best! Its platform independent, clear, concise and above all totally free! you need not keep on buying newer versions of visual studio just because MICROSOFT WANTS YOU TO BUY IT. This is just hype created by microsoft to compete with java, but it will never be able to do that.

#55. By Jeff. Posted on 8/2/2007 2:37:55 PM
Your reasons are superficial, and have no validity.
Quote: “You get to act really snotty to VB.NET developers, yeah! That's priceless"
Yes that is intelligent reason NOT! Sound more childish to me.

#1 You got me there, formatting strings is annoying.
#2 You can increment using x+=1; is X++ so much easier?
#3 One article?
#4 Certainly just a preference. I don't like Borland's interface
#5 Totally untrue check you facts, according to Microsoft the languages have the same functionality just the syntax is different.
#7 Sounds fishy to me
#8 Untrue
#9 A comments a comment; this is just an opinion not a fact.
#10 I haven't used regions, but based on you unfounded biases, I doubt this is true also.
Maybe you should try using VB.NET before you make off hand comments.

#56. By salman. Posted on 8/6/2007 2:19:35 PM
VB.Net is bullllllllllllllllshiiiiiiiiiiiittttttttt

#57. By Anonymous. Posted on 8/8/2007 10:41:56 PM
Java,

I rest my case....

#58. By chris. Posted on 9/10/2007 12:58:41 AM
microsoft used c# to build part of the .NET framework. by not using vb.net, this tells you a lot about C# and their direction.

#59. By tj. Posted on 9/18/2007 4:21:43 AM
It's interesting that these VB vs C debates continue. The power of VB is equal to C# so it's probably making a lot of "traditional" C syntax lovers quake in their boots. VB is now so powerful that it can do everything that C# can do. Wow...all these "amatuer" programmers who are now able to do "objects".... Objects are so easy.. Give me a break. VB is great. No apologies needed here. Who cares if there an additional word here or there? it's not as if computer memory is so precious anymore. It's a commodity for heaven's sake!!

#60. By tj. Posted on 9/18/2007 4:22:11 AM
It's interesting that these VB vs C debates continue. The power of VB is equal to C# so it's probably making a lot of "traditional" C syntax lovers quake in their boots. VB is now so powerful that it can do everything that C# can do. Wow...all these "amatuer" programmers who are now able to do "objects".... Objects are so easy.. Give me a break. VB is great. No apologies needed here. Who cares if there an additional word here or there? it's not as if computer memory is so precious anymore. It's a commodity for heaven's sake!!

#61. By Rush. Posted on 9/19/2007 11:58:03 PM
lol @ some of you peoples code.

#62. By Mike. Posted on 9/20/2007 4:02:56 AM
I've got to say, I'm an avid C# fan, and just like you think VB.NET is rubbish, but this post is almost 100% crap. Please do some more research and come up with something better.

#63. By j. Posted on 10/11/2007 4:52:19 AM
100% correct sir.

#64. By Anon. Posted on 10/23/2007 11:21:39 PM
Those are just a few of the reasons why to use c#, they are mostly trivial. Start doing real advanced coding and you will soon learn that what you can do in c# is far more superior then in vb .net. Try drawing complex graphics with vb.net and you will see they are MUCH slower. Using pointers maybe unsafe, but if you want to (simple example) scan a photo pixel by pixel, it will take a minute in vb .net vs milliseconds in c# with pointers.

This should NEVER work in any language:

Dim sJamesBondOne as string = iZero + iZero + iSeven

Terrible programming to implitly cast anything, you are relying on windows to 'figure it out'?

If it fails to initialize of course it would uninitializes, be prepared for the unexpected, that coding is just bad.

myclass Foo;
try
{
Foo = new myclass();
}
catch
{}
Foo.DoStuff(); /// this line caused a compile error. We are told that Foo is uninitialised. Bollocks is it.


Whoever is using 'vbCrLf' to do new lines, that will be gone. That is OLD vb code, you will be using Environment.NewLine soon vs '\n'

In vb .net :

" if not myObject is nothing and myObject.property = true "

Would be the equivalent to checking if myObject is null, then setting a null variable to true, yes you can do that type of thing in c#.

"
Property MyProp()
Get
End Get
Set(ByVal Value)
End Set
End Property

In C# you would have to enter all the equivalent code for a property by hand. "

Not if you do it right.

Case sensitivity matters in the real world, why not in vb .net?

Try compare serializing data speeds, try globalizing. If you want to make a application to process tickets at your local pizza restaurant then go with vb .net, vb is what it is, BASIC. It makes it so you can turn a 5000 line project into a 20,000 line project and still not have the functionality that c# has. Basic hides the nitty gritty stuff from you because it doesn't think you can do it without messing it up.

Vb.net is too easy to skip important things, because there are no warnings. c# makes you do it the right way. I passed by here looking for a way to tap into a external process and control various aspects of it, what I want to do is not possible in vb .net, however in c# its just a matter of time...

#65. By m000gambo. Posted on 10/30/2007 1:29:48 PM
============================
To: Robert Gelb
============================

Robert what I want to know from you is Your Age :P

Are you baby?


lolaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa


==================================
To: Aatiff
==================================
hmm. nice post dude!

#66. By pounds. Posted on 10/30/2007 1:39:19 PM
For the past 2 years, I had been coding, almost exclusively in c# but recently started helping out on a vb.net project. I had done vb.net in the past but somehow I don't remember it lending itself so easily to sloppy code. It seems that MS loosened it up quite a bit now for 2005, even more so it seems, so it has more of a vb6 feel - I think this is mainly due to turning the Option Strict off by default (not sure if past versions had this off by default). But the point I need to make is that vb.net relaxes the good habits of disciplined programming so you will typically find code like this(actual vb.net code that tests the equality of 2 integers):

If Trim(oRisk1.iRoleId.Equals(oRisk2.iRoleId)) Then
...
...
End If

And you wonder why c# programmers get paid more. A lot of VB developers usually don't think about what they're doing ("as long as it works") but the above If statement is just a small example of rampant unnecessary overhead. You will find ints being used as strings, strings as doubles, etc. all over the place. And if you are coming from c#, you might unwittingly do things like this (with Option Strict being off):

Dim list = New List(Of String)

Also, some things are just so much easier in c#, like dealing with special characters using the escape character. In vb.net, you have to resort to concatenating the old vb constants (or the new ControlChars constants) which makes it a real chore to build large strings.

#67. By pounds. Posted on 10/30/2007 1:43:54 PM
For the past 2 years, I had been coding, almost exclusively in c# but recently started helping out on a vb.net project. I had done vb.net in the past but somehow I don't remember it lending itself so easily to sloppy code. It seems that MS loosened it up quite a bit now for 2005, even more so it seems, so it has more of a vb6 feel - I think this is mainly due to turning the Option Strict off by default (not sure if past versions had this off by default). But the point I need to make is that vb.net relaxes the good habits of disciplined programming so you will typically find code like this(actual vb.net code that tests the equality of 2 integers):

If Trim(oRisk1.iRoleId.Equals(oRisk2.iRoleId)) Then
...
...
End If

And you wonder why c# programmers get paid more. A lot of VB developers usually don't think about what they're doing ("as long as it works") but the above If statement is just a small example of rampant unnecessary overhead. You will find ints being used as strings, strings as doubles, etc. all over the place. And if you are coming from c#, you might unwittingly do things like this (with Option Strict being off):

Dim list = New List(Of String)

Also, some things are just so much easier in c#, like dealing with special characters using the escape character. In vb.net, you have to resort to concatenating the old vb constants (or the new ControlChars constants) which makes it a real chore to build large strings.

#68. By pounds. Posted on 10/30/2007 2:02:26 PM
For the past 2 years, I had been coding, almost exclusively in c# but recently started helping out on a vb.net project. I had done vb.net in the past but somehow I don't remember it lending itself so easily to sloppy code. It seems that MS loosened it up quite a bit now for 2005, even more so it seems, so it has more of a vb6 feel - I think this is mainly due to turning the Option Strict off by default (not sure if past versions had this off by default). But the point I need to make is that vb.net relaxes the good habits of disciplined programming so you will typically find code like this(actual vb.net code that tests the equality of 2 integers):

If Trim(oRisk1.iRoleId.Equals(oRisk2.iRoleId)) Then
...
...
End If

And you wonder why c# programmers get paid more. A lot of VB developers usually don't think about what they're doing ("as long as it works") but the above If statement is just a small example of rampant unnecessary overhead. You will find ints being used as strings, strings as doubles, etc. all over the place. And if you are coming from c#, you might unwittingly do things like this (with Option Strict being off):

Dim list = New List(Of String)

Also, some things are just so much easier in c#, like dealing with special characters using the escape character. In vb.net, you have to resort to concatenating the old vb constants (or the new ControlChars constants) which makes it a real chore to build large strings.

#69. By pounds. Posted on 10/30/2007 2:16:14 PM
For the past 2 years, I had been coding, almost exclusively in c# but recently started helping out on a vb.net project. I had done vb.net in the past but somehow I don't remember it lending itself so easily to sloppy code. It seems that MS loosened it up quite a bit now for 2005, even more so it seems, so it has more of a vb6 feel - I think this is mainly due to turning the Option Strict off by default (not sure if past versions had this off by default). But the point I need to make is that vb.net relaxes the good habits of disciplined programming so you will typically find code like this(actual vb.net code that tests the equality of 2 integers):

If Trim(oRisk1.iRoleId.Equals(oRisk2.iRoleId)) Then
...
...
End If

And you wonder why c# programmers get paid more. A lot of VB developers usually don't think about what they're doing ("as long as it works") but the above If statement is just a small example of rampant unnecessary overhead. You will find ints being used as strings, strings as doubles, etc. all over the place. And if you are coming from c#, you might unwittingly do things like this (with Option Strict being off):

Dim list = New List(Of String)

Also, some things are just so much easier in c#, like dealing with special characters using the escape character. In vb.net, you have to resort to concatenating the old vb constants (or the new ControlChars constants) which makes it a real chore to build large strings.

#70. By pounds. Posted on 10/30/2007 2:24:33 PM
For the past 2 years, I had been coding, almost exclusively in c# but recently started helping out on a vb.net project. I had done vb.net in the past but somehow I don't remember it lending itself so easily to sloppy code. It seems that MS loosened it up quite a bit now for 2005, even more so it seems, so it has more of a vb6 feel - I think this is mainly due to turning the Option Strict off by default (not sure if past versions had this off by default). But the point I need to make is that vb.net relaxes the good habits of disciplined programming so you will typically find code like this(actual vb.net code that tests the equality of 2 integers):

If Trim(oRisk1.iRoleId.Equals(oRisk2.iRoleId)) Then
...
...
End If

And you wonder why c# programmers get paid more. A lot of VB developers usually don't think about what they're doing ("as long as it works") but the above If statement is just a small example of rampant unnecessary overhead. You will find ints being used as strings, strings as doubles, etc. all over the place. And if you are coming from c#, you might unwittingly do things like this (with Option Strict being off):

Dim list = New List(Of String)

Also, some things are just so much easier in c#, like dealing with special characters using the escape character. In vb.net, you have to resort to concatenating the old vb constants (or the new ControlChars constants) which makes it a real chore to build large strings.

#71. By pounds. Posted on 10/30/2007 2:34:58 PM
For the past 2 years, I had been coding, almost exclusively in c# but recently started helping out on a vb.net project. I had done vb.net in the past but somehow I don't remember it lending itself so easily to sloppy code. It seems that MS loosened it up quite a bit now for 2005, even more so it seems, so it has more of a vb6 feel - I think this is mainly due to turning the Option Strict off by default (not sure if past versions had this off by default). But the point I need to make is that vb.net relaxes the good habits of disciplined programming so you will typically find code like this(actual vb.net code that tests the equality of 2 integers):

If Trim(oRisk1.iRoleId.Equals(oRisk2.iRoleId)) Then
...
...
End If

And you wonder why c# programmers get paid more. A lot of VB developers usually don't think about what they're doing ("as long as it works") but the above If statement is just a small example of rampant unnecessary overhead. You will find ints being used as strings, strings as doubles, etc. all over the place. And if you are coming from c#, you might unwittingly do things like this (with Option Strict being off):

Dim list = New List(Of String)

Also, some things are just so much easier in c#, like dealing with special characters using the escape character. In vb.net, you have to resort to concatenating the old vb constants (or the new ControlChars constants) which makes it a real chore to build large strings.

#72. By Daniel Clarke. Posted on 10/30/2007 2:37:38 PM
To ZMC

Regarding:
10.) THE ULTIMATE LAME FEATURE : case-insensitivity on everything. I know I can normalize the case in my own code, that's not the point. Any professional programmer is going to end up dealing with other people's code, which is where this is an issue, because the language allows you to write code like a 3 year old.

It's not my code or other developers' code that I find annoying to deal with, regarding case sensitivity. It's mostly the built-in libraries.
I used to love the way in VB.net I can type
dim foo as system.net.mail.whatever.something
and the IDE would "translate" it into
Dim foo as System.Net.Mail.Whatever.Something

In the C# IDE if I type
system.net.mail
but then can't remember the name of the next namespace, I press the period key (.) to give me intellisense to remind me.
But OH NO! Crappy IDE can't work out that "system.net.mail" is really "System.Net.Mail" and therefore the intellisense does not work. I have to go back to the start of my line and upper case my typing (or stuggle with ctrl-space).

I just find this annoying as hell.

#73. By Daniel Clarke. Posted on 10/30/2007 2:45:07 PM
To "ANON" in post #64

WRONG!

You said

" if not myObject is nothing and myObject.property = true "
Would be the equivalent to checking if myObject is null, then setting a null variable to true, yes you can do that type of thing in c#.

Wrong wrong wrong. In VB.net this doesn't SET anything. It does NOT set a null variable to true. The part, "and myObject.property = true" does not SET myObject.property to true, it TESTS whether its value is true.

Remeber, in VB.net the = sign is both the settor and the evaluator. I prefer C# syntax in this regard.

The point is that the line
if not myObject is nothing and myObject.property = true
will crash if myObject is nothing (null), because when it continues to the next part of the line and tries to evaluate whether myObject.property's value is true, it will fail.

Like I said, it's better to use AndAlso in this situation.

#74. By pounds. Posted on 10/30/2007 3:12:15 PM
For the past 2 years, I had been coding, almost exclusively in c# but recently started helping out on a vb.net project. I had done vb.net in the past but somehow I don't remember it lending itself so easily to sloppy code. It seems that MS loosened it up quite a bit now for 2005, even more so it seems, so it has more of a vb6 feel - I think this is mainly due to turning the Option Strict off by default (not sure if past versions had this off by default). But the point I need to make is that vb.net relaxes the good habits of disciplined programming so you will typically find code like this(actual vb.net code that tests the equality of 2 integers):

If Trim(oRisk1.iRoleId.Equals(oRisk2.iRoleId)) Then
...
...
End If

And you wonder why c# programmers get paid more. A lot of VB developers usually don't think about what they're doing ("as long as it works") but the above If statement is just a small example of rampant unnecessary overhead. You will find ints being used as strings, strings as doubles, etc. all over the place. And if you are coming from c#, you might unwittingly do things like this (with Option Strict being off):

Dim list = New List(Of String)

Also, some things are just so much easier in c#, like dealing with special characters using the escape character. In vb.net, you have to resort to concatenating the old vb constants (or the new ControlChars constants) which makes it a real chore to build large strings.

#75. By Anonymous. Posted on 11/7/2007 10:23:41 PM
You need to change the title.

#76. By Guy in a Red Flyover State. Posted on 11/17/2007 10:17:29 PM
Pay is by region, company, experince, and/or the project. If you can do the job, and do it right, you can command a good salary in any language be it FoxPro, SQL, Clipper, Java, C, C++, C#, and even in VB6 or VB.Net.

Everything else on this list is trival and hobbyist/beginner nonsense. Professionals create applications, they don't care about the tool, only the job or task at hand. My advise, become a professional in your language of choice in a good company or as an consultant. Master that tool, learn how the business world works, and get paid.

I started at $8/hr with no college and only a few certs and I now bill out at $95/hr 12 years later. I pick my clients and I use VB.Net if possible (I takeover existing projects, you don't choose a language in that case).

#77. By Rungu Mondlane. Posted on 11/19/2007 9:13:22 PM
you speak of the differences in features. So if your saying your more comfortable with C# features that is fine because it is your opinion.

#78. By tj. Posted on 11/19/2007 9:30:37 PM
I believe the highest paid programmer in the world programs in Basic. His name is Bill Gates.

#79. By DerLang. Posted on 12/7/2007 3:54:08 PM
Some points lack in good comparison.

1. Commenting is priceless und should never be missed. Selecting good names for methods and variables reduces amount of comments but can never replace comments.

Has anyone tried this one in VB.NET?

someMethod(variableA // needs a comment
,variableB, // needs a comment as well
variableC); // what the hell

Don't argument, I've written the commas badly as I just wanted to spot a point for comments...

2. OO-Design/Programming.

Yeah most developers don't know anything about it.
$1: Implement against interfaces not an implementation. (Erich Gamma)

Have anyone of you tried to program that in VB.NET. Welcome to the hell of killing keyboards by typing till death...

3. Anonymous methods and generics

Now I hope not to ask to much of the smart developers I've had to read their comments here.
Today, I could have written half of code, without any copy-paste action, if I could have used C#.
Writing delegates to anonymous methods for instantion would be the solution but VB.NET is far away from writing efficient code..

4. VB.NET syntax is way to much to read.
Yes, it's easy to read for the dumb developers. Sub-End Sub and such things instead of {}.
If a developer can't learn to read abbreviations or synonyms they're not worth to develop as they might not think more than necessary, hence welcome the NullReferenceExceptions and so on.
It's like driving. You learn it once and don't think about the clutch or so. So why can't you use the short writing of C#. VB.NET files have about 30 to 50% more bytes.

Good, this point is somewhat a personal favoritism

5. C# forces to write code in namespaces and OO. Double post? dunno but it's important

6. Case-sensitiv vs. case insensitiv...
Well, I prefer the camel- and pascal-casing of C#. Once you declared a style guide everyone (and that's mostly all over the world the same) can identify what it meant. I've seen so many VB.NET-Code where noone cares about that.
Writing variables in camel case and methods in pascal case is a must if you ask me. It's common .NET Style Guide AFAIK. And please get rid of these _ in variables and methods. Absolutely not necessary !!!

7. Does VB.NET support Using now? If not, the hell, another point for C#

That's all for today, I'm going to leave the office now and write good old C# code for my private project. Unfortunately my new company forces me to write in VB.NET as some old staff is used to VB6 and still write VB6-Style VB.NET code. It's a shame...

#80. By ashfaq. Posted on 12/9/2007 11:48:03 AM
thanks u

increment/decrement operater is not support in vb.net
but we can do it alternate way
dim i as integer
i=i+1

#81. By Ruby. Posted on 1/1/2008 9:24:09 AM
Both vb.net and C#.net are equally dirty. Both of them lack simplicity of RUBY and elegance of JAVA. Moreover MS upgrdes C# almost every year and there are very less similarities between C# 2003 and C# 2008. Whereas you can always be sure that once you learn core Java you need not worry about later versions because the base is same and above all its free! So I request you to stop this waste of time and concentrate on building RELIABLE APPLICATIONS THAT DON'T STOP WORKING BECAUSE MICROSOFT HAS BROUGHT NEW VERSION IN THE MARKET!! Think about it.

#82. By Liam. Posted on 1/16/2008 3:10:43 AM
I'm not going to give much of an opinion on C#, as I still don't understand it. I would love to say though, many of you need to have EQUAL and UNBIASED experience with both languages, BEFORE giving your opinions.
For you that are complaining about the amount of code, think of this: I wouldn't have started programming until I found how easy Visual Basic.Net was. Then I went and taught myself pretty much anything in it. It's easy enough for anyone to pick up and learn: it's like English, not cryptic shorthand (which is how I find the C# syntax, which is why I haven't put in huge amounts of effort to learn it. How many developers use this language? It really would be interesting to know.
A lot of this stuff mentioned is personal preference.
I personally prefer writing in English than cryptic shorthand.
If you use C#, that's great for you. Just don't try to convert the VB.Net world to you. VB.Net programmers can do as they please, it's not like we try to convert C# programmers to VB.Net ones, so don't try to do it to us.
Those of you arguing about performance: they both compile to the same code, so the execution speed is the same. Don't try to fool VB.Net programmers into believing that.

That's my $0.02, anyone feel free to rebut me.

#83. By Justa Serva. Posted on 1/18/2008 4:52:44 AM
C# and VB are on equal ground.... Splitting hairs with syntax and preference to the compilers are really worthless. No matter how you hate it C# fans VB is now your equal. Get over it! You can, as you put it in 6, "act snotty" but the only person that looks foolish is you. Your obvious lack of knowledge in the languages leads me to think of you as a "Kramer-like" person from Seinfeld. Nuff said....

#84. By bobsponja. Posted on 1/18/2008 10:29:33 AM
Well, C was the language choosed in the past for building IDE'S and even other languages, like Clipper and many others. This tells the C family is indeed powerfull, think of C# with .NET , a more powerful tool yet!

does C has just loosed the power once it had in the past???
as someone said above, even Microsoft used C# in the .net development!
VB is good also, but C# could be a higher level, elitized language. But now, with .NET rulling and acting behind the scenes, i think (it maybe) just a matter of choice, but C# takes the famous part (becouse of it's productive past, in building new languages IDES, etc..

#85. By bobsponja. Posted on 1/18/2008 10:35:01 AM
Well, C was the language choosed in the past for building IDE'S and even other languages, like Clipper and many others. This tells the C family is indeed powerfull, think of C# with .NET , a more powerful tool yet!

does C has just loosed the power once it had in the past???
as someone said above, even Microsoft used C# in the .net development!
VB is good also, but C# could be a higher level, elitized language. But now, with .NET rulling and acting behind the scenes, i think (it maybe) just a matter of choice, but C# takes the famous part (becouse of it's productive past, in building new languages IDES, etc..

#86. By bobsponja. Posted on 1/18/2008 10:42:34 AM
i mean C# has inherited the fame of C and C++, just take a look, you will find dozens of famous app developed in C in the past, do you think C# (like C) won't repeat the success of the past?

#87. By bob. Posted on 1/18/2008 10:44:47 AM
i mean C# has inherited the fame of C and C++, just take a look, you will find dozens of famous app developed in C in the past, do you think C# (like C) won't repeat the success of the past, in the .NET plataform?

#88. By Guru Ghantaal. Posted on 1/23/2008 1:55:29 PM
hihihihhihihihi....time pass mat karo be chutiyon... jo language aati hai usme coding karo naa be... sadak ke kutto ke maafik lad kyu rahe ho...hihihhihihihi....lolaaaaaaaaaaaaaaaaaaaaaa

#89. By lol. Posted on 2/7/2008 2:36:22 PM
bullocks :)

#90. By lifewithryan. Posted on 2/27/2008 2:31:54 PM
6a. Then the Java developers can act all snotty to the C# developers...even more priceless...
6b. Then the GRails guys smirk at the Java guys
6c. The Rails guys spit on the GRails guys
6d. The PHP guys just want to be included
6e. The Python guys ignore everyone

#91. By Tahir. Posted on 2/27/2008 11:44:37 PM
Hi,

Nice reading.

All I would say is that from the start of my career my employer is interested in the software, they don't care about the technical details of it. I have used VB.NET and C# both. Other than language and preference reasons, both are good.

A good piece of software is good no matter which language you use and a bad piece of software is bad no matter if you have used your beloved language.

The biggest advantage of VB.NET over C#, IMO, is that it has a history and has a large community. C# on the other hand is a new, of course it is based on C/Java like syntax but the language C# itself is new. If VB was that crap, as you have suggested then I don't think Microsoft is dumb enough to continue developing it. VB.NET is as good as C# in .NET 2/3.5 and VS 2005/2008.

And by the way, I use to think about the differences as well, when I was in school. When you start professional career then I don't think these things matter. Grow up.

Tahir

#92. By Chad Dokmanovich. Posted on 3/11/2008 4:59:31 AM
My feeling is that the reason C# programmers make more money than VB.NET programmers is due more to the history/roots of each language than to subbstantive differences in the languages as they are today.

VB.NET programmers tend to come from VB6 and earlier versions. Clearly, because VB was developed as a RAD tool to "make programming easy," this resulted in many hobbiest developing code that met the business need but wasn't necessaily efficient or maintainable, etc. This type of tool wouldn't attract the serious developer who wants more control of the computer.

As a result of all of this, I think there are more VB programmers than there are bad C# programmers, but I think that the minor differences and the strong opinions that C# programmers have in favor of C# over VB.NET is more due to their engrained familiarity with their language of choice than with the differences in the languages as they are today (2008).

Some of the advantages quoted here by C# lovers show their lack of familiarity with VB.NET and others are just plain petty and points were made here without consideration of arguing from the other side...

I see a lot more prejudices displayed than substance. Perhaps, one of the problems here is that the posts are old and things have changed.

I will comment on one point, #10. When coding in VB.NET, I have wanted to embed a region within a sub. I suspected the reason that it was not allowed was due to a decision that the developer should never have a sub that was large enough that he would want to sub divide into regions. If subdivision was desired for organizing/grouping sections of code, I suspected the "response" for why this was not allowed would be that "you should be creating a new sub." I'm not sure I agree with that one, but if t hat was a consideration, I could underdstand that pt of view.

#93. By Scott Thomason. Posted on 5/1/2008 7:07:24 PM
I can't wait to transition from VB to C#, the only thing holding our company back is fear and inertia. By the way, there's a great translating site at http://labs.developerfusion.co.uk/
---scott
http://scott-thomason.org/

#94. By Lee Hewitt. Posted on 5/15/2008 11:24:32 PM
TBH, who cares? It all gets converted into CLR in the end, so who cares what you use? VB.NET is a hell of a lot easier to pick up for the novice programmer. It's just pathetic that people have pointless debates, over what essentially is nothing. Most of the items in your list were personal preference and the others show how little you know about VB.NET. Personaly, I prefer VB, syntax is a lot easier, you don't was to worry about the endless number of brackets and semi colons.

But, as I said, in the end they are essentially the same and it's down to personal preference.

#95. By C# programer. Posted on 5/16/2008 12:03:19 AM
wrong! wrong! wrong!
everything is wrong, you cannot do this these top 10 things are absurd!

#96. By Ranjit SIngh. Posted on 5/18/2008 7:18:52 PM
1. ctr + R+R
2. b+=1
3. auto typecasting alwasys flows towords higher datatype so what is risk ?
4.
5. minimize devlopment time to hide unwanted errrors.
6. i feel ugly the C# language. i love vb.net
7.
8.vb.net is supporring operator overloading from 2005,2008
9.// is takes more charator then '
10.who says regions is not there in vb.net

#97. By pounds. Posted on 6/3/2008 8:32:03 PM
I have spent time with both VB.NET and C# and can be productive in either but I am more productive in C#. The C# language is more intuitive and natural, to me at least. Also the language is much more powerful once you learn to use it. You'll find yourself typing a lot less code. And, since the language forces you to pay attention to details, you avoid costly bugs in the future. And to boot, the Visual Studio IDE is much more accomodating to C# development.

#98. By Steven Calderon. Posted on 6/5/2008 3:38:18 PM
I Love C#

#99. By Reasons why Vb.net is better t. Posted on 6/27/2008 12:17:24 AM
1) I don't have to worry about writing in small or capital, it just adjust to the closet known function, variable, .... name.

2) vb.net is with no doubt the closet to the English language, this make it more readable (Readability) I just write what I'm thinking no compilation time in my mind from human language to programming language, or more specifically, less compilation time.

Moreover, knowing the syntax of a language doesn't make you a good programmer, I think programming is about method of solving problems, its about algorithm, design patterns, efficiency. also, there are many website to convert from either language to the other, I used that a lot.

I agree with you the new line continuation is annoying in vb.net, whenever you need to split a line of code you need to add "_" at the end of each line.

I think its just a matter of taste. if vb.net hadn't had any fan or advantages over C# Microsoft wouldn't have thought about shipping it with dot net.

#100. By Ali. Posted on 6/27/2008 6:14:50 PM
I disagree with you. You like C# only because of a sense of cachet that it gives you that you probably feel the way you do (because of the fuzzy feeling you get when you think it's somehow related to C++ in some way-- when really it's not). Aside from C#'s pointer and rudimentary unmanaged code ability (useless in most business solutions), VB does MORE than C#. VB event wiring is better (withevents), intellisense + syntax checking much much better (background compiling as you type), built in functions that wrap a lot of code up (for example, Asc, Left, Mid etc... that handle exceptions gracefully) in both the VisualBasic Library namespace and the handy "My" namespace. Add to that VB2008's superior LINQ/XML implementation and you have a clear superior.

Now, you're perfectly welcome to prefer the C# syntax. But in terms of functionality VB is not "identical" to C#... it's better.

#101. By Vaibhav. Posted on 7/8/2008 10:02:23 AM
c#.net or vb.net?
After reading the post and comments I think use of any language is equal.
Its not the habit of vb programmers to write dirty code but its an unprofessional habit.
Professionals must stick to coding standards regardless of language.

Do not use vb.net if you want to use pointers.

#102. By David CHATEL. Posted on 7/17/2008 1:49:02 PM
> Oh and another thing that I think may be to do with VS rather than with the c# language itself is this:
>
> myclass Foo;
> try
> {
> Foo = new myclass();
> }
> catch
> {}
> Foo.DoStuff(); /// this line caused a compile error. We are told that Foo is uninitialised. Bollocks is it.

If myclass.ctor() throws an exception, then Foo is uninitialized.

#103. By gary. Posted on 7/31/2008 6:31:04 AM
My company choosed C# because it is easier to find talented programmer from C# group.

Most of the vb.net programmers we had interviewed failed in our object-oriented programming test.

#104. By Gary. Posted on 7/31/2008 6:31:19 AM
My company choosed C# because it is easier to find talented programmer from C# group.

Most of the vb.net programmers we had interviewed failed in our object-oriented programming test.

#105. By Gary. Posted on 7/31/2008 6:31:42 AM
My company choosed C# because it is easier to find talented programmer from C# group.

Most of the vb.net programmers we had interviewed failed in our object-oriented programming test.

#106. By xTian. Posted on 9/9/2008 5:17:37 PM
Just read comment #76.. that explains it very well..
If you dont agree, then you're just boasting your so called "ADVANCED" knowledge in that particular language.

Just be a professional.

#107. By Todd. Posted on 9/15/2008 7:55:45 PM
Ask #76 if he knows what a design pattern is. He probably doesn't because he doesn't care, as long as he "gets paid". I have worked with many contractors with that same mentality and their legacy of lousy, unmaintainable code. It's part of the reason the IT industry is looked upon negatively and not as a disciplined field as in other engineering professions. Hell, anyone one can pick up book and begin a programming profession which is what you see throughout the industry because of languages like vb6 and Access which is perpetuated by vb.net. Languages such as c# and Java have a bit more learning curve and force you to follow software principles. These languages also weed out the quacks and help the industry produce software with much better quality in my opinion.

#108. By Anonymous. Posted on 9/15/2008 9:11:58 PM
At first, #107 was preaching to the choir as far as I am concerned, when he spoke of "just wanting to get the job done to make big bucks."

As long as non-technical people are holding the purse strings, employees will tend to get paid for delivering on time, per spec, etc, instead of being judged for the unmaintainable mess that they create under the covers. Right now I am working on a project to report this year's survey results to last year's and i am horrified to see all year references HARD CODED in tables and SPs suffixed by the year and hard coded captions. That's the kind of shit you get when non techies don't care about how the job gets done, only that it gets done.

Then I start to disagree with #107 based on what appears to me to be placing C# on too much of a pedastal, or more likely, not giving VB.NET its due because of his likely bias due to using C# more than VB. I see very little reason for C# people to have a superiority complex.

I'm a C# person myself but that's because I came from a C++ background, originally writing compilers and 3-D simulations, so moving to C# was a natural progession. But I have been using the two languages so much back and forth that my biggest problem is not blurring the two languages

#109. By Todd. Posted on 9/15/2008 10:41:03 PM
I've worked with both languages on numerous projects and from my experience, projects using c# tend to have less bugs and are easier to extend/maintain. I don't think the language itself is the reason, but a combination of things. The culture seems to be a bit different - vb more rad, less formal, c# more thoughtful of design and architecture. I was trying to make a point though that, at least from my experience, developers coming from their old vb6 ways do not even take the time to learn object oriented development which you can do very powerfully in vb.net. A lot of things were left in the language to appease the old vb6 crowd which is why a lot of the projects in vb.net today are not object oriented or well designed. I agree with you for the most part though, "guns don't kill people ..." and there's plenty of bad c# code out there as well so I shouldn't imply that the language by itself separates the good from the bad.

#110. By Arjun Singh. Posted on 9/17/2008 10:21:58 AM
Hi All,

Both languages have its own feature and way of coding style. We can not compare with each other. I am old VB programmer so it is natural I like the VB .Net because of coding style. If people have worked in C/C++ or Java they will like C#. The matter is what how fast you are able to write code and with proper logic and architecture it is all depend on the past programming experience what you have learnt from your old used language.
We can solve the same problem in both language from simple to complex even enterprise solution. I saw many comments some is telling C# has post and pre ++/-- but not in VB. I am saying who is using in real project ++/-- and at what frequency.

Only the new programmer are like to work on C# and the project really need C#. The reason for new programmer is, from school or college days the students are practicing on C/C++ so it is obvious they like to continue with the same programming structure thas why C#

However, in terms of speedy development when you are in pressure to deliver the product as soon as possible, it is possible in Visual Basic

Thanks
Arjun Singh

#111. By James. Posted on 9/27/2008 5:07:26 AM
Correction for Comment #110,
-- However, in terms of speedy development when you are in pressure to deliver the product as soon as possible, it is possible in "Visual Basic 6.0", NOT "Visual Basic.Net".
--
From my experience, coding in VB.Net won't be any faster than C#.

#112. By subhash. Posted on 10/24/2008 12:41:29 PM
i am agree with you

#113. By Anonymous. Posted on 11/7/2008 4:38:41 PM
All Your Base are Belong to us.

#114. By Trevor Hall. Posted on 11/11/2008 3:07:19 AM
I Find that Visual Basic .Net is my favorite. I know C++ C# and Visual Basic, and Visual Basic.net

And my opinion stays the same. Visual Basic is way better for me.

Though I do strongly Agree with you about the Increments in C# being WAY easier.

Visual basic Is Slow compared to C#. And Is much worse at Catching errors.

Actually come to think of it. After reading this, I think I am going to Code in C# from now on.

#115. By Soheal Qasas. Posted on 12/13/2008 3:57:19 PM
Good job !
but (i think) there is no difference between vb and c# .net in performance ..
and so do not worry about using vb.net :)

Thank you

#116. By Trevor Hall. Posted on 12/13/2008 4:51:17 PM
Yeah. Visual Basic is a great language. There is really nothing "I can't" do in Visual Basic. Plus, String manipulation in VB makes SO MUCH MORE SENSE than C#.

#117. By Alexander. Posted on 12/15/2008 1:38:04 PM
You guys make me laugh, I won't say VB.net is better than C#.
It is commonly argued that VB is easier (no doubt it is) but C# is more advanced (rubbish). I have tried all the languages available, from python, C++, Pearl and even assembly languages.
VB is easier, a hell lot easier,
If you are good at programming you'll find yourself able to do much more (EDIT: With fewer keystrokes) than you will be able to do with VB
If you are a great programmer, you probably wouldn't mind whatever you are using. What you would mind, would be not to mix all the languages.
Yeah it's true, When I program in VB I mix a hell lotta c#.

#118. By c# dev. Posted on 1/1/2009 9:26:55 PM
tosser

#119. By Anonymous. Posted on 1/5/2009 3:26:33 PM
If I am not mistaken.

VB doesn't technically have anonymous methods.

#120. By john kerry. Posted on 1/8/2009 4:01:01 PM
you're reasoning is total garbage. You might as well say I'm just a fucking C fag.

#121. By James. Posted on 1/12/2009 7:57:46 AM
Correction for Comment #117,
-- It is commonly argued that VB6 is easier (no doubt it is), NOT VB.NET.
--
From my experience, coding in VB.NET won't be any easier than C#. Both depend on the .NET framework.

#122. By Trevor Hall. Posted on 1/12/2009 8:09:55 AM
I love the .net framework. There are no "real" limits to what you can do.

Name one thing you can't do in Vb.net that you can do in vb6...

And I'll prove you wrong

#123. By Trevor Hall. Posted on 1/12/2009 8:14:06 AM
And "You get to act snotty to vb.net developers"

Yeah right. I don't care if you use C#. You still can't write applications better than I can.

I could use C#. But who cares right? If I have to type a LITTLE BIT more its not a problem.

#124. By George. Posted on 1/12/2009 10:28:50 AM
VB is better tha C#, it has more esthetic design, and Bill Gates invented it :).

#125. By onur uluag. Posted on 2/9/2009 3:44:41 AM
"with ..... end with" statement is so useful code in vb. but,
if (you have to type really long code about 1 object) then
you can use namespace
else
turn to vb
end if '=)

namespace listbox1
{
public partial class listbox1 : ListBox
{
public listbox1()
{
Items.Add("lksadjljf");
}
}
}

#126. By Greg. Posted on 2/19/2009 5:19:07 AM
You can do #10 in vb.net now ...

#127. By icanmakeiteasy. Posted on 3/14/2009 1:59:32 PM
is there any Good Time complexity or Space complexity reasons..??

#128. By SysDev. Posted on 3/26/2009 8:24:17 AM
For me, it's not the language you used but how you used it. If you're saying that VB.Net is slower than C# in some aspects, then check your codes, if you can't find it, ask google, buy a book or much better, go back to school. I' am not an avid fan of any programming language, the newer (as in I never used yet) the better. My only principle of being a programmer is not to stop learning. So it's better to use most the language available in the market and do what most of the unbiased professional here said "MASTER THE TOOL", do a lot of development in any language. It's not the language history people that we consider that as much better, it's how you used it. As I've said, if your applications is getting wonky, don't blame the language, blame yourself for not having sufficient logic and having not enough knowledge on the programming language.

#129. By SysDev. Posted on 3/26/2009 8:27:10 AM
For me, it's not the language you used but how you used it. If you're saying that VB.Net is slower than C# in some aspects, then check your codes, if you can't find it, ask google, buy a book or much better, go back to school. I' am not an avid fan of any programming language, the newer (as in I never used yet) the better. My only principle of being a programmer is not to stop learning. So it's better to use most the language available in the market and do what most of the unbiased professional here said "MASTER THE TOOL", do a lot of development in any language. It's not the language history people that we consider that as much better, it's how you used it. As I've said, if your applications is getting wonky, don't blame the language, blame yourself for not having sufficient logic and having not enough knowledge on the programming language.

#130. By SysDev. Posted on 3/26/2009 8:30:57 AM
For me, it's not the language you used but how you used it. If you're saying that VB.Net is slower than C# in some aspects, then check your codes, if you can't find it, ask google, buy a book or much better, go back to school. I' am not an avid fan of any programming language, the newer (as in I never used yet) the better. My only principle of being a programmer is not to stop learning. So it's better to use most the language available in the market and do what most of the unbiased professional here said "MASTER THE TOOL", do a lot of development in any language. It's not the language history people that we consider that as much better, it's how you used it. As I've said, if your applications is getting wonky, don't blame the language, blame yourself for not having sufficient logic and having not enough knowledge on the programming language.

#131. By SysDev. Posted on 3/26/2009 8:37:05 AM
For me, it's not the language you used but how you used it. If you're saying that VB.Net is slower than C# in some aspects, then check your codes, if you can't find it, ask google, buy a book or much better, go back to school. I' am not an avid fan of any programming language, the newer (as in I never used yet) the better. My only principle of being a programmer is not to stop learning. So it's better to use most the language available in the market and do what most of the unbiased professional here said "MASTER THE TOOL", do a lot of development in any language. It's not the language history people that we consider that as much better, it's how you used it. As I've said, if your applications is getting wonky, don't blame the language, blame yourself for not having sufficient logic and having not enough knowledge on the programming language.

#132. By SysDev. Posted on 3/26/2009 8:44:29 AM
For me, it's not the language you used but how you used it. If you're saying that VB.Net is slower than C# in some aspects, then check your codes, if you can't find it, ask google, buy a book or much better, go back to school. I' am not an avid fan of any programming language, the newer (as in I never used yet) the better. My only principle of being a programmer is not to stop learning. So it's better to use most the language available in the market and do what most of the unbiased professional here said "MASTER THE TOOL", do a lot of development in any language. It's not the language history people that we consider that as much better, it's how you used it. As I've said, if your applications is getting wonky, don't blame the language, blame yourself for not having sufficient logic and having not enough knowledge on the programming language.

#133. By Trevor Hall. Posted on 3/26/2009 8:53:34 AM
ALRIGHT SYSDEV WE GET IT!!!

#134. By SysDev. Posted on 3/26/2009 8:58:36 AM
Hi Trevor,
Sorry for the multiple post. Hmmm. I just clicked refresh without anything on the board. Well..

#135. By Trevor Hall. Posted on 3/26/2009 9:02:38 AM
Lol, Ok. Sometimes that happens to me as well.

VB.net is Better than C# in my Opinion. At least for software. C# maybe better for games.

#136. By SysDev. Posted on 3/26/2009 9:08:55 AM
:D Honestly, I started as a VB6 developer then switch to VB.Net, appreciate C#, CSP, ASP, etc. And found out that all of the programming languages are fun to used with. Each have their own ways of dealing with complicated matters, just need a lot of hearts in obtaining what you want in your application.

Cheers!

#137. By MD. Posted on 4/22/2009 10:06:37 AM
Add reason 11:

Syntax difference is what makes C# better!
Programming is a science rather than literature. Thus usage of scientific symbol is essential. For example:
1) SET Variable1 TO TWO PLUS THREE
2) Variable1 = 2 + 3

The example 2 definitely is more readable. C# use scientific symbol such as {},:,() whereas VB.NET use English-like END THEN INHERIT. Analogically, this makes C# easier to read and code.

#138. By Trevor Hall. Posted on 4/22/2009 4:16:31 PM
Eh, Vb.net's syntax kills C#. Because programming is an Art, not a science(In my opinion)

#139. By Jerome Labbe. Posted on 4/23/2009 6:53:55 PM
You know c# all developers have in common? They all think they are god! Do your thing and leave me alone with what you think is good. "optional parameters are bad bad bad", how bad????? I have used them sometime and guess what, nobody dies and the systems I used it in still works!!

I do not hate C#, I juste hate people who think they are smarter because they use C#

#140. By Josh. Posted on 4/30/2009 5:58:25 PM
Ok, I read all the comments in here and am flat out amazed that, by and large, the VB programmers are the ones who didn't read half of them.
The one thing that sticks in my craw is this little trival tidbit below:

If you are a VB developer, and you are even *THINKING* about responding to point #2 by saying x+=1 is the same as increment decrement you're an idiot and shouldn't be touching a keyboard. x+=1 or x==1 does not in any way shape or form allow you to do the same as --x or ++x, which is half the functionality of the increment decrement operators. If it's missing half the functionality and you still think it's the same thing, die in a fire.

#141. By Trevor Hall. Posted on 4/30/2009 6:03:48 PM
Chill the fuck out with your increments Josh.

Btw. its not --x or ++x you moron.

Its x++ or x--.

Apparently you've bitten off more than you can chew.

#142. By Josh. Posted on 4/30/2009 6:35:27 PM
You're a perfect example of the idiots I'm talking about Trevor. Increment and decrement are pre and post operators. There is x++, ++x, x--, and --x. If you don't know the difference, you're a fucking moron and shouldn't even be discussing anything here.

#143. By George. Posted on 4/30/2009 6:46:28 PM
Josh is may or may not be a self-annointed genius, but even teh blind can see that he is a difficult person, regardless of any knowledge that he may or may not possess.

Wise up, young man, or you'll learn the hard way. I presume you're young, otherwise someone with your temperment might have killed you by now.

#144. By Josh. Posted on 4/30/2009 6:56:21 PM
Quite the opposite, George. Besides, I'm not the one ranting and raving that C# or VB.Net is better, I'm merely pointing out that it's painful how many are even in this conversation that don't have a full understanding of both languages yet are claiming one is better than the other. How can you possibly begin to compare the two if you don't even understand the basic functionality of one of them?

That'd be like me arguing that physics, which I understand quite well, is better than quantum physics, which I don't understand 99% of.

Moreover, you've got just shy of #150 comments here, and yet everyone puts their two cents in without reading the prior comments and thus end up repeating things that have been shown to be wrong over and over.owing largely, once again, to their lack of understanding of the very language they are claiming is so bad.

Is it wrong of me to stand up against ignorance? Does it make me a villan to suggest that people use basic reading comprehension before airing their thoughts? I don't think it does. Maybe that's just Orwellian of me.

#145. By Simon. Posted on 5/5/2009 3:44:47 AM
Wo! This VB.NET versus C# discution are getting worst than many MAC VS PC discutions.

I do have my opinion about this question but I think it's pointless... VB programmers won't change C# programmers mind and vice versa.

The only thing I'd like to say is about point #3: Money. If you are considering money as a reason to switch to an other language, then you should condiser switching to Cobol :)

#146. By Jose. Posted on 5/5/2009 4:20:24 AM
Simon,

Hilarious.

Personally, I think this forum should be in Spanish since Spanish is clearly a better language than English.

Get the point? LOL.

#147. By Trevor Hall. Posted on 5/5/2009 8:11:32 PM
You're right Josh. I'm an idiot. Oh boy I'll never make it in the programming world because I use X+=1 instead of X++.

Either way. By the end of the night, I still have working methods with increments. So instead of flaming people like me who are still mastering the languages, why don't you explain to us the difference between ++X and X++.

Because when I think about it the only difference I could think of(And this is just guessing).

I'm assuming ++X would increment x before the entire line of code would be executed.

And I'm assuming X++ would increment the X variable last.

Also, I would somebody to explain why increments are so important that they should be argued about.

Oh and somebody please try to save a file in C# with one line of code. I think it may be possible, but not as easily set up as Vb.net is.

#148. By Frank. Posted on 5/5/2009 8:41:20 PM
The answer to your question is that Josh thinks that his pecker is longer than yours

#149. By Trevor Hall. Posted on 5/5/2009 9:50:40 PM
Rofl!

But honestly. I still don't get why not knowing about pre-increments would make me an inexperienced programmer. lol.

I mean, I've developed some insane shit with Vb.

Just a few:
-Ham Harvester
-Cl-EX Kollector
-Extractulator CL
-SymbolMe!
-SymbolVid!
-Ham Blaster

The list goes on forever.
I mean, I would understand if somebody chose C# because they were planning to make a video game. but otherwise I stick with vb.net on projects...

#150. By jim. Posted on 5/6/2009 12:22:37 AM
In VB.net you can write an application that sings. In c# writing singing applications is not possible.
2. I ate breakfast
3. I love Money
4. Borland is good but have you tried Zend Studio?
5. Error catching is not needed.
6. I act snotty to everyone.
7. Source code? I can create an application and give you the source code.
8. Overloading is not good it can melt wires.
9. I have many comments
10. Big Fat Hen.

#151. By Hal. Posted on 5/6/2009 12:31:36 AM
That dont make no sense to me

#152. By Hal. Posted on 5/6/2009 2:17:35 AM
That dont make no sense to me

#153. By lewis vee. Posted on 5/14/2009 11:48:03 PM
i have been at this since before microsoft or sql arrived. the problem is that we have a tendency to overrate things - eg there is more coding today than in the flat-file manipulating days - why?: maybe because we have forgotten KISS. Today we have only two issues - DATA and HTML. If you visualise how your data 'sits' the rest is a piece of cake. the trick is to link the data output to the html efficiently. if you are not BOTH a data and html superstar you can invent as many c######## as you like but you will remain a slave to the intellectual crutch makers.
my advice to anyone is simple - ignore me!!!!!!!

#154. By Smoke. Posted on 5/22/2009 4:27:52 AM
First off C# sucks.. It does..

1. VB.Net doesn't have incrementing\decrementing, really?

Try A+=1, A-=1,..

2. C# Catches More Errors.

Try "Options Strict On", it then catches the same errors.

3. Multi-line Comments..

Again, its easy in VB.Net, just select the code, and hit the "Comment All" button on the toolbar, it also can un-comment selected code just as easily..

4. Regions.

While you are correct, you can't make regions inside a VB.Net function, I have to ask, how bad of a coder are you that you would need to? You need more skills if your functions are so messy you need to hide them in regions to make sense of it.

5. XNA.. Woot.. You didn't mention this, but most of you types do..

I use XNA just fine in VB.Net, its quite easy, and I don't have to deal with that ridiculous content pipeline which takes a one step operation, and adds five more just for XBox support..

Furthermore, there is no demonstrable proof that shows any speed improvement over VB.Net, C# is just as memory heavy, you don't get a RAD IDE which slows down development time.

It's in every respect inferior, I fail to see one advantage to using it over VB.Net.. But whatever, use an inferior product, and act smug, I don't care.

I just wanted to inform you that 90% of the complaints against VB are non-issues, almost everything you claim is impossible in VB, is actually quite possible, and very easy,.. Next time read the fucking manual.. Idiot.

#155. By Trevor Hall. Posted on 5/22/2009 1:01:07 PM
HELL YEAH! Now thats what I'm talkin about Smomke!

Vb.net kicks ass. The only problem I am having tho is I moved to a better computer(64bit instead of 32bit). And now Edit and Continue will not work no matter what I do... Do you have a solution?

#156. By 100k VB.NET Developer. Posted on 6/3/2009 11:30:41 PM
You're such a Richard.

#157. By shk. Posted on 6/9/2009 12:04:50 PM
Couple of things:

>myclass Foo;
>try
>{
>Foo = new myclass();
>}
>catch
>{}
>Foo.DoStuff(); /// this line caused a compile error. We are told that Foo is uninitialised. Bollocks is it.

If you don't understand this you shouldn't be posting about it, this is trivial C# coding.
Trevor, if you don't understand the increment and decrement operators, you look like a twat for telling someone he's wrong - if you're still learning to code, why do you think you have the ability or knowledge to berate anyone? Also the reason that ++i is faster than i++ is because i++ creates a temporary store of the original variable to use for that line of code and increments the real variable. The extra copy is the difference, not the register ops. In C++ anyway. Oh, and I've used both VB and C# and VB6 and C++ and C and older versions of BASIC and I prefer C# (although I look forward to C++0x).

#158. By George. Posted on 6/9/2009 1:08:15 PM
This is quite the pissing contest in this thread. I would love to unsubscribe. 10 brownie pts if someone can tell me how.

Example:
Poster #1: C# Rocks! VB programmers are idiots
Poster #2: Fuck you! You don't even know what x +=1 means! And BTW, your dick is small!
Poster #1: Sure my dick is small but at least I program with a real language!

unsubscribe! uncle already!

It seems to reason that a decent compiler should be able to generate the same IL code for x = x + 1 and x += 1, eh?

Sure enough, that is the case.

Module Module1

Sub Main()
Dim x = 0
Console.WriteLine(PlusEqual1(x))
Console.WriteLine(Add1(x))
Console.WriteLine(PlusEqual2(x))
Console.WriteLine(Add2(x))
Console.ReadLine()
End Sub

Public Function PlusEqual1(ByVal x As Integer) As Integer
x += 1
Return x
End Function

Public Function Add1(ByVal x As Integer) As Integer
x = x + 1
Return x
End Function

Public Function PlusEqual2(ByVal x As Integer) As Integer
x += 2
Return x
End Function

Public Function Add2(ByVal x As Integer) As Integer
x = x + 2
Return x
End Function

End Module
IL for both PlusEqual1 and Add1 are indeed identical:

.method public static int32 Add1(int32 x) cil managed
{
.maxstack 2
.locals init (
[0] int32 Add1)
L_0000: nop
L_0001: ldarg.0
L_0002: ldc.i4.1
L_0003: add.ovf
L_0004: starg.s x
L_0006: ldarg.0
L_0007: stloc.0
L_0008: br.s L_000a
L_000a: ldloc.0
L_000b: ret
}
The IL for PlusEqual2 and Add2 are nearly identical to that as well:

.method public static int32 Add2(int32 x) cil managed
{
.maxstack 2
.locals init (
[0] int32 Add2)
L_0000: nop
L_0001: ldarg.0
L_0002: ldc.i4.2
L_0003: add.ovf
L_0004: starg.s x
L_0006: ldarg.0
L_0007: stloc.0
L_0008: br.s L_000a
L_000a: ldloc.0
L_000b: ret
}

#159. By Trevor Hall. Posted on 6/9/2009 8:18:10 PM
To George: Whats you problem? No programmers are idiots. Considering I know C++ but choose to program in Vb.net, you have no right to bash me.

To SHK: Uhm, I didn't "berate" anyone. And its kinda stupid that everybody assumes VB.net programmers are stupid.

Honestly guys, the only reason I would switch to C# is so people would Shut the fuck up about the programming language. Because honestly, nobody would be able to tell that I was using Vb.net when they use my software that I design.

The basic point is.

I like C# and I love Vb.net

They are both wonderful programming languages. Pretty much all programming languages are great.

I don't see why comparing them is even relevant.

But honestly, if it matters that much, I'll just switch over to C# so people will stop bitching and whining "AW YOU MADE SOMETHING BETTER THAN ME IN A MORE SIMPLE LANGUAGE! THATS NOT FAIR! YOUR A JERK!"

A programmer shouldn't be judged by increments or the language they use. They should only be judged by what their code produces and how well it works.
Because when it comes down to it. A programmer should be able to take any language, and create something thats well worth using.

Now I understand C# is faster and there are great advantages to it.

But VB.net is incredibly good for making "Draft" programs. You can obviously create some great "Mainstream" apps with it. But either way, the way its laid out you will be able to create a basis for what a C# app should be made like.

Everybody can have their own methods but I only ask one thing of everybody here. And that is, Be civilized. PLEASE.

Nobody is going to affect me by calling me an idiot, because when it boils down, people are only saying that because I chose to use vb.net
So its obviously a pretty ignorant statement.

#160. By George. Posted on 6/9/2009 9:57:21 PM
Trevor,

I think you misunderstood my point. I was trying to make the same point as you by creating a parody of the type of insults that were being slung here. I wasn't adding my own. Note the "Poster #1, Poster #2 text preceding each quote"

I agree with you. The biggest reason to pick C# over vb.net is to overcome the ridiculous bias about the VB.NET language. The language itself is as 1st class as C#. Period.

#161. By Trevor Hall. Posted on 6/9/2009 10:35:17 PM
Well, I agree George.
No matter what anybody says, people are going to bash a language.

But yes, C# and VB.net are both great languages. I still to this day can't find an actual reason to move to C#. The speed in both of them seems relatively the same though the best way to find out is doing your own testing. I may be wrong, I may be right.

Now I've learned through the 9 years of learning programming that if you run into a speed issue, it is usually the programmers fault. I've learned this by making simulators, games, encryption functions, String manipulation functions, etc. There is usually a way to make something more and more efficient even when in VB.net

You could trans-code that same slow method to C# and it may Run faster but not to its full potential. Of course it all depends on the way your methods are logically built.

One thing I always try to do is make a Synchronous working example of anything(whatever moderately used method that I am programming) and try to get it to work as fast as possible, then once I feel it is optimized to its full extent I go ahead and multi-thread that method.

I am sorry that I call myself a "Programmer". I only do that because its my career. I am still perfecting my skills in Computer Science overall, but if I am making and selling software that is at an Above-Exceptional quality I think that qualifies me as a "Programmer". But that's just a label that the public can decide.

I don't think there is anybody on this earth that knows "Everything" in programming. Because in software design(at least in my view), programming is related to the world and every person who uses that program/application/web service/etc. So in my opinion, that makes the entire knowledge of programming ever-expanding and dynamic. You always have to accomplish new goals, overcome new obstacles, and bring your ideas to life. So, In my view, a programmer is anybody that knows programming at a moderate level and works toward accomplishing tasks with their application for whatever purpose.

But guys, the point is, no programmer is stupid. Certain programmers may not be as "Educated" as others, but not stupid.
So everybody, lets not bash other languages, because when it boils down, everybody has different taste. And that is a good thing.

#162. By Anonymous. Posted on 7/30/2009 6:53:03 PM
This was very helpful. Thank you.

#163. By OrangeMelons. Posted on 8/15/2009 7:15:22 PM
I have used both, still prefer VB, but learning both isn't a horrible thing.

I can tell you a few annoying things about C# though..

1. Event Handling. Where to start..

Adding simple events, like Mouse Over, Double Click, etc, is easy in VB.Net. Not so in C#, I spent two damn days reading various tutorials, before I learned everything necessary.

You might want to argue, that having it exposed, makes it more powerful. But you are wrong. Custom events in VB are possible, and MUCH easier to implement.

I wrote an entire GUI system for a 3d game in VB.Net, without even looking online, it was that simple, I had mouse overs, click events, etc,..

Trust me, you'll be reading tutorials about events, event handlers, and delegates, for far longer than it took me to write my whole gui system.

2. Minor Problems, cryptic errors.

VB.Net-> Something.ToString
vs.
C# -> Something.ToString;

Vb catches the problem right away, and fixes it.. It should be this..

Something.ToString()

C# however does not catch it, and gives you a cryptic error.. Error: Only assignment, call, increment, decrement, and new object expressions can be used in a statement..

How is that helpful? A better error message would have been, "Expected "("" Or just fixing it like VB does..

The same occurs here..

Something.Tostring();

VB will catch the lower case s, and fix it, not C#..

Again, these aren't major problems, but annoyances, I bang out code, and every now and then, these slips occur, and VB would correct them without even breaking my stride, C# forces me to stop, and waste time fixing piddly shit.

There are a lot more instances of this in C#..

3. Modules.

Even though you can create a public static class in C#, and use it like a module, the VB version is much easier, just click new module, and there it is, no wasting time redefining a class as public static, etc,.

----

There is more, but I'm in a hurry, so that will do for now..

#164. By AsiF. Posted on 8/29/2009 6:21:30 AM
I have only one thing to say about this article, u r NOT a programmer at all. Except for the Salary issue, almost all r pretty stupid and basically can not be used at all for a COMPARISN u c.... ! I have programmed in both C and VB6. and I can gurantee u that ur points r just ppl's preferences rather than Language performance Issues... GET A LIFE.

#165. By Giles Evans. Posted on 9/2/2009 9:02:12 PM
There is a VB alternate to Item 1 (using the line continuation character "_" (underscore) preceded by a space):
dim sql as string = "SELECT * _
FROM SomeSuchTable _
WHERE ID='WhatHaveYou' _
ORDER BY ThisAndThatField ASC "

Both C# and VB work equally well as the "Tools" they are. I personally use both. I'm a lazy bastard who seeks out template code and just modifies it to suit my task. Depending on what language that template came in, my task will be the same, why reinvent the wheel.

#166. By Yoster. Posted on 9/2/2009 9:09:40 PM
Regarding #165, I think the article author (in his pt. #1) wanted to be able to paste a SQL as-is from a query window into VB.NET code and just enclose it in quotes. Your alternate example might be prefable, but probably still presumably not acceptable to the author, I would expect.

I think the author is primarily motivated by his point #6.

Note that the line VB continuation character is going away in 2010, so I believe it'll work just like C#.

My biggest complaint is that in using VS2008, C# doesn't report as many compile time errors until you run the app. I thought C# was enhanced (in 2005?) to do background compilation. If so, I get the impression that it isn't as good.

#167. By Jorge. Posted on 9/10/2009 8:45:16 PM
I never comment on this but this is priceless. At first I thought it was a joke written by the author and laughed my head off. But then I started to read more and realized that the author was serious about what he was saying. That is when I was taken aback by the ignorance of this programmer and his knowledge of VB .NET.
The points pointed out are trivial at best, that many people still consider that C# is better than VB6 goes back to the Java versus VB6 good ol days. This is no longer an issue as the main argument in those days was that VB6 was not OO. C# was developed to bring the Java programmers on board the .NET world. And the funny thing is that the same argument continues by those same Java programmer even though both languages sit on top of the same platform and thus perform the same functions. All else is just nonsense.

#168. By Michael. Posted on 9/15/2009 12:31:35 PM
I develop code that other programmers give to me, I much prefer vb.net purely because when I go to try and understand what they were doing the colloquial language used in vb.net make it easier to read on a quick overview. People say the multiline thing with the semi colon is a plus but if you're forced to work in a team whose members are inept and can't write structured code it can be mind boggling trying to read some the code they write. If I was writing my own code it would be in c sharp mainly because it's easier to get reference information online for it. To be honest though after vb2005 I consider the two interchangeable, I guess it depends on personal preference and the preference of the people telling you to write the code.

#169. By Michael. Posted on 9/15/2009 12:32:22 PM
I develop code that other programmers give to me, I much prefer vb.net purely because when I go to try and understand what they were doing the colloquial language used in vb.net make it easier to read on a quick overview. People say the multiline thing with the semi colon is a plus but if you're forced to work in a team whose members are inept and can't write structured code it can be mind boggling trying to read some the code they write. If I was writing my own code it would be in c sharp mainly because it's easier to get reference information online for it. To be honest though after vb2005 I consider the two interchangeable, I guess it depends on personal preference and the preference of the people telling you to write the code.

#170. By griever. Posted on 10/7/2009 7:03:28 AM
I agree to what you had shared. number 5 is the best.. VB apps will never be better than any C# apps because they cannot maintain all error possibilities.. hail all C# programmers.. ^_^

#171. By griever. Posted on 10/7/2009 7:33:53 AM
oh michael, number 169, you said it. vb is easier to understand compared to c#.easy-to-understand enough to be understood by a baby, eh?that anybody can understand, even trash?

ur ryt, c# books are everywhere. but vb.net programmers are more than c# programmers because it's easier-to-understand,.

look in other view, if u were an author to-be of a programming language, would you rather choose to author an easier-to-understand language vb.net but not better than c#, than complex c# but better than vb.net?it's like choosing heaven or hell.well, I .. didn't say anything wrong.


in my opinion, Visual Basic.NET is a big cheat to all real programmers.just compare the way of studying c# and vb.net is too much discrimination that even ILLITERATE persons who studied VB.net became our standards?.then u, number 169 will defend ur language? VB.NET was born is enough!too unfair to c# programmers.!!!

#172. By John. Posted on 10/7/2009 7:41:30 PM
Is there anything of REAL substance in here. Also, I haven't seen many listings out there where C# programmers make any more than VB.

#173. By Tired. Posted on 10/7/2009 7:56:51 PM
No, there is nothing of substance to this post and I regret ever checking the option to be notified of replies. How the hell do you unsubscribe!?

#174. By rainabba. Posted on 10/14/2009 10:55:13 AM
After reading the same bad information over and over, I HAD to add my two cents.

Nearly everyone here speaking badly about VB (and many of those in support of it) are confusing the language, it's "features", and options with good/bad practice.

For example, someone early on mentioned using val() instead of int32.parse. The use of val() has NOTHING to do with VB other than the fact that it's an option. I think any decent developer would agree that the use of int32.parse IS the correct way to go for clarity and code stability.

The use of ; {} and the differences in language (dim, end ..., etc..) are as much preference as anything. To say that one language it better than the other because you prefer one over the other only serves to demonstrate that someone doesn't understand how to be objective. This is all the more true if you're bashing the one you haven't become accustomed to.

The reality today (.Net 3.5, VS2010 in beta) is that the differences between the two are functionally so minor, that it really is little more than preference or a matter of existing code and anybody fluent in one language should be able to become proficent in the other within a short period of time should they want to.

So get over it. Microsoft has; they've even said that they are doing everything they can to close the gap between the two.

#175. By pinoyz. Posted on 10/22/2009 3:13:24 AM
Hi,

I'm a VB.net programmer and now I'm moving to C#.NET because It needs in our company (I moved).
C# has no IsNumeric function. So we need to import a regex to determine if the input is Numeric or Not.
And I also noticed the formatnumber.
VB is more understandable because it is ENGLISH.

for example.

For Each Item As String In Datatable.Rows
' Your Code Here.
End For

VB is not case sensitive.

For C#.Net

Can determine the unused variable. which is great.
myString is way different to MyString.



They are all great, there's a pros and cons in every languages.

#176. By jeni. Posted on 10/28/2009 2:40:04 PM
whatta.. that's only a "comment-from-you".. there are PLENTY of ways to do things in VB.net to shorten its code.. besides, you can use stored procedures in execution of queries.. go with the server side and front end side programming equally.. you can also perform better regions and comments easily in vb.net, its hard to parse and pass a value in csharp.. there are plenty and long codes,ways and procedures for you to convert a value in csharp.. yeap? right? you have to enclose your classes and methods with such a plenty of curly braces semi colons.. and lastly debugging of errors its just the same VB.net.. you can use exception handling in catching errors.. and what-so-ever.. but JUST same programming language.. its just that there are variations and differences in their syntax.. utilization of code really matters.. it doesnt matter how you do it.. do shorter codes and better logic will be better.. is that enough? Robert Gelb? :D

#177. By Emmanuel. Posted on 10/29/2009 8:58:18 PM
i have been asked to oppose on the topic:farming is better than teaching,pls i need help,i need to get like 13 reasons toback up my topic:teaching is better than farming, thnks and good night see you tomorrow.i hope to get a reply.

#178. By AlexisGacia. Posted on 11/1/2009 7:28:29 AM
For me C# and VB.Net language is almost same. It depends how you handle the language and convenient as a computer programmer for the language you use.

#179. By Bun-oT. Posted on 11/3/2009 4:52:09 PM
hey you kid 171!

in developing systems, output really matters.. as long as the system is running 100% efficiently, with no flaws and failures, and as the developers meet the requirements of the company, i think it would be best..

its non sense to judge both programming language.. its just that microsoft had developed both programming languages with own strengths and weaknesses.. a TOOL to develop systems.. thats my opinion.. just stop those childish acts of arguements and comparing it..

just choose what do you prefer for.. huh?

^____________^

#180. By lee5i3. Posted on 11/14/2009 8:14:33 AM
I've had countless discussions about VB.NET vs C# with my co-workers for years, but I am still the only one at my work that even uses it on a regular basis, and I hate going back to VB on older projects, they always feel cluttered and messy trying to go through all the code.

I am quite happy with C#, I'm not saying C# is better, but for me, I seem to function a lot quicker with it, being able to put #regions inside of #regions is a huge help for me, not that my methods are huge, but I can organize a lot better.. example..

#region Constructors
public void Class()
{
#region Check for valid
#endregion
}
#endregion

Yeah I'm sure I could do the same with comments, but my classes get pretty large, I like the ability to collapse and not see an enormous scrollbar.

Few things as well..


VB.Net AFAIK does not have auto implemented properties, I believe this is new with C# 3.0
ex: public string PropertyName {get;set} .. no need for a variable

Implicitly Typed Local Variables ("var") - this has helped me a ton, especially when doing foreach on arrays that Im not sure of
ex: foreach (var e in stringArray) will automatically know e will be a string

Lambda expressions are nice to shorten code, haven't done much with them though

#181. By rainabba. Posted on 11/16/2009 8:26:51 PM
Another reason this article is a waste of webspace is the fact that Microsoft is making a point of closing the gap between the features in C# and VB.Net. Case in point (#180 might be interested here); VB10 (.Net 4) has implemented recursive #Regions with VB. Also, lambda expressions were brought over to VB.Net ages ago.

Eventually, there won't be a single feature in either language not available in the other. As it stands, you can always import from the other library anyway and use it's classes, not that I would do this, but it is an option: (http://www.codeproject.com/KB/cs/csharp-isnumeric.aspx). <-- For post #175

#182. By dandes. Posted on 11/20/2009 10:51:31 PM
VB "Hello" & system.text.environment.newline & "World"
C# "Hello\rWorld"

Arggggg - I'm a vb programmer and I HATE that they don't have escape codes in VB strings!

#183. By Kent Wallace. Posted on 12/9/2009 4:25:17 PM
You missed it.

VB is readable and C# is write only. What does this '}' point to???? All C languages are cryptic!
Endif and ENDWhile.

Why do you think C# programmers are paid more.
Kent

#184. By vbprog. Posted on 12/26/2009 7:36:43 AM
You're a typical snobby ahole, the fact is that the more you know and the more the diverse you are the more money you'll be worth. I'll take my VB.NET and SQL optimization skills over any C# cocky f*** like you - who probably is an ok coder but lacks database programming skill. And I believe most good programmers will agree that the is no substitute for having your greatest strength to be where the data lies, at the end of the days that's the only thing that matters. Good day sir..

#185. By Mark L.. Posted on 1/12/2010 6:22:37 PM
Ah, I understand the difference between C# and VB… writing in VB makes you an idiot, and writing in C# makes you a jerk that calls people idiots. :)

They are pretty much the same now, there's no huge difference that would make anyone write better or worse software if you are a good programmer. For those new to .Net, start with the one that is more familiar to you (if you have the luxury), and eventually pick up the other. It's mostly just another syntax with all the same classes. If you know both, you will be better off than anyone who knows just one. There are free converters out there if you want to write in one and convert to the other.

c# closing
{ml;}

vb closing
Best Regards _
Mark

#186. By Anonymous. Posted on 1/12/2010 7:25:10 PM
What a WASTE of web-space -- lets see, which shitty language is better...

crap == crap

#187. By Trevor. Posted on 1/12/2010 8:56:02 PM
@mark. What if you start in C++, gain about 4 years of experience, and then switch to Vb.net because you like it more.
Thats the case with me and i'm definitely not an idiot.

#188. By Trevor. Posted on 1/12/2010 9:01:02 PM
@dandes, are you dumb? Your jkust trying to make it look long as hell. When you can just do "Hey dandes." & vbcrlf & "I believe your trying to make the language look bad"

#189. By Anonymous. Posted on 1/19/2010 4:47:25 AM
Your # 10 doesn't make sense:
Isn't it better to break up the sections of a function into other functions?

A function should do as close to one logic based thing as possible.

#190. By AltVader. Posted on 1/26/2010 6:00:10 PM
Any developer worth his salt can build anything he wants in either language. That said, I've managed many development teams, have had about 200 programmers work for me over the years. The fact is if a guy comes to me with only VB skills and not C# skills, I consider him a weaker candidate. This, despite my personal preference to code in VB for my own personal work. I always do my company projects in C#.

#191. By Michael. Posted on 2/5/2010 12:21:56 AM
Some points just make no sence,
Like:

2. The characters count for this is equal, so why "nuff said"? a+=1 and a++; who cares.
3. I dont even look at that link, because its total bullshit, maybe its even the other way arround as there are more VB.NET developers, and thus cheaper.
5. *uhum..*
6. Well we C++'ers are snotty to C#'ers too. :D puhh.
9. who cares, commenting is for retards, document the code, Ghostdoc ftw.
10. There is no difference about regions in both C# and VB.NET AFAIK.

As you may have noticed i dont even program is that useless MS crap, but i think its wrong to be negative on VB.NET while C# is just as crappy.

My 2 cents,
Peace.

#192. By Tejraj. Posted on 2/5/2010 12:29:20 PM
Very good reasons

#193. By Tejraj. Posted on 2/5/2010 12:29:42 PM
Very good reasons

#194. By VB Guru. Posted on 2/16/2010 5:04:19 PM
c# developers are all about insecurity. They write code in a launguage that is very difficult to read and maintain giving themselve job security werever they write code. There is nothing easier in c#, its all easier in vb.net and thats why its so popular.

Not one of your points is valid.

1. Your lazy
2. Cryptic and still lazy
3. I make more than you, I promise
4. Borland c#. Opinionated preference
5. Nonsense
6. Enough Said
7. Just a theory kinda like Big Foot. Oh and who cares
8. VB does it better
9. Opinionated preference, Its a IDE issue not a language issue.
10. Opinionated preference. Its a IDE issue not a language issue.

#195. By griever. Posted on 2/16/2010 6:58:51 PM
well, for me, c# is still better... because it has the fundamentals of c and assembly language... so, a c# programmer will be familiar when they face c, java, c++ problems.. unlike vb.net where they'll be messed up facing other popular languages.. maybe i can compare vb.net familiar with COBOL..


laugh with me miss 176 :D


conclusion: C# is still better than vb.net ^_^

#196. By Shiv Narayan Bharawa. Posted on 2/20/2010 7:36:25 PM
Good Article By Robert

Actuly C# follows Consept of OOPs clearly. if we look the history of C, C++ now C# his improve itself.

#197. By Avinash. Posted on 2/24/2010 8:38:43 AM
dude Accept point 5,7 & 8 all other point have no sense

#198. By rob. Posted on 3/4/2010 7:03:07 PM
Most of these seem to be personal preferences as far as I can see. #3 I would tend to agree with but that's outside the scope of why one language is better than the other. All the articles I seem to find on this are from people who just dislike vb.

can anyone suggest if c# is more powerful and line for line, what type of apps is better suited for? I don't buy that c# makes better enterprise/business apps. Games maybe, third party components, sure- but most of the stuff most .net developers make- I remain skeptical.

#199. By Anonymous. Posted on 3/8/2010 5:09:01 AM
Nothing

#200. By dmambrose. Posted on 3/10/2010 6:22:00 AM
This is something that will be really hard in C#, the reverse case statement. It's were you will look for the first true statement.

Dim X As Integer = 5
Dim Y As Integer = 10
Dim Z As Integer = 15

Select Case True
Case X = 5 And Y > 10
Result = 1
Case X < 5 And Y = 10
Result = 2
Case X = 5 And Y = 10
Result = 3
Case X = 5 And Y = 10 And Z < 15
Result = 4
Case Y = 10 And Z = 15
Result = 5
End Select


The result will be 5 because the switch/case statement will find the first true statement. Try to do that in C#. I should really call it the dmambrose technique.


Case X = 5 And Y > 10

Case X = 5 And Y > 10

#201. By dmambrose. Posted on 3/10/2010 6:59:34 AM
This is something that will be really hard in C#, the reverse case statement. It's were you will look for the first true statement.

Dim X As Integer = 5
Dim Y As Integer = 10
Dim Z As Integer = 15

Select Case True
Case X = 5 And Y > 10
Result = 1
Case X < 5 And Y = 10
Result = 2
Case X = 5 And Y = 10
Result = 3
Case X = 5 And Y = 10 And Z < 15
Result = 4
Case Y = 10 And Z = 15
Result = 5
End Select


The result will be 5 because the switch/case statement will find the first true statement. Try to do that in C#. I should really call it the dmambrose technique.


Case X = 5 And Y > 10

Case X = 5 And Y > 10

#202. By griever. Posted on 3/10/2010 8:51:25 AM
drambrose

first of all, ur a loser..

second, ur still a loser..

let me decode ur so-so technique in c#


int X = 5;
int Y = 10;
int Z = 15;


if(X==5&&Y>10)
result = 1;
else if(X<5&&Y==10)
result = 2;
else if(X==5&&Y==10)
result = 3;
else if(X==5&&Y==10&&Z<15)
result = 4;
else if(Y==10&&Z==15)
result = 5;


hmm.. test it.. i challenge "ANY" of YOU... if you could find a bug inside this program. if you can

i don't call this griever technique - because this already had a name - dangling else , i guess.

#203. By Manesh Joseph. Posted on 3/16/2010 10:20:18 AM
Can anybody elaborate on the error catching mechanism available in VB.NET..

#204. By lovebirdman. Posted on 3/17/2010 12:57:49 PM
rubbishhhhhhhhhh!

pointers used in c== or c# are weak points...leads to memory corruption...in .net framework by default c# pointers are disabled...

#205. By Nige. Posted on 3/21/2010 5:48:21 PM
The IDE for C# seems poor compared to VB.

Why when typing the first line of a function/sub/try block/if statement/loops etc etc does the code not auto complete like it does in VB? What possible reason would you not want it to? - That is a genuine question.

Why when I have been a dumb ass and written in an error, then I go and correct it I have to rebuild the apps to get the IDE to remove the error message on a now perfectly valid code line.

You don't get to set (usings) in the project properties.

You don't got a nice line across the code to easily show you where subs/functions finish so I have to do a big long comment line so my eyes don't screw up.

all semi colons do my head in, I have maybe 5% of lines that I want to split (with a _) in VB as opposed to now 95% needing a ; after them to tell it I've finished the line.

I am just learning C# (so that I can earn more!) , the differences in code are very easy to pick and do force you to be a little or diligent up but the actual coding is made difficult by these IDE annoyances. The code is good but the IDE features suck!

#206. By damn it. Posted on 3/21/2010 6:42:36 PM
yeah.. c# IDE is poor specially for poor people

#207. By Nige. Posted on 3/21/2010 7:10:04 PM
My.Application.Info.Description in VB.Net, in C# is what? About 20 lines of System.Reflection code - joke!

#208. By John. Posted on 3/21/2010 8:49:57 PM
A funny fact as this is supposted to be a flaming post towards VB.NET,

A good friend of mine, who is a VB.NET programmer does actually earn more then all the C# programmers you could think of.
He just adopted the syntax and started working at NASA, so he is still a VB.NET programmer, Never learned C# and still could pull it off...
What does this say? Any VB.NET developer could easily write C# code, chances are they do even better then the people who started with it for years in just a second.

Probaly, this guy Robert Gelb started this article because he is, in the words they use, a "newb" who couldnt write anything hisself yet, but thought it was "cool" to flame an lang. that is more commonly used because his "friends" use it.

#209. By Robert. Posted on 3/25/2010 12:45:24 PM
I came here looking for real reasons that C# is better and I find nothing but these trivial 10 reasons.

Not a single one of these is a big deal. They are all programmer preference. Are there any reasons such as C# creates less buggy applications or it runs faster or something?

What is most important in programming is that outcome. The actual programs the language makes. So is C# really better or is it all just coding preference?

#210. By Emi. Posted on 4/1/2010 12:13:02 PM
No difference between VB or C#. Our programmers are just saber-rattling that we can check these things. So VB is better than C# :D :))

#211. By Kendall Frey. Posted on 4/7/2010 4:58:21 PM
} vs. End If, Wend, Next, End Sub, End Function, etc.
int val; vs. Dim val As Integer
text += i++; vs. text += i
i += 1


and many more...

#212. By Anonymous. Posted on 4/13/2010 11:11:53 PM
What an idiot - not only are all the points wrong. There is very little difference in the language support between C# and VB. Its all about personal preference.

#213. By Anonymous. Posted on 4/15/2010 12:21:32 AM
@John, comment #208:

Your friend is what people would call "the exception to the rule."

#214. By Sam. Posted on 4/15/2010 1:08:29 AM
C# programmers make more money as programmers but VB.NET developers make more money as porn stars.

That's because C# programmers ave little dicks.

#215. By Sam. Posted on 4/15/2010 1:10:24 AM
C# programmers make more money as programmers but VB.NET developers make more money as porn stars.

That's because C# programmers ave little dicks.

#216. By Sam. Posted on 4/15/2010 1:10:42 AM
C# programmers make more money as programmers but VB.NET developers make more money as porn stars.

That's because C# programmers ave little dicks.

#217. By Sam. Posted on 4/15/2010 1:11:31 AM
C# programmers make more money as programmers but VB.NET developers make more money as porn stars.

That's because C# programmers ave little dicks.

#218. By Sam. Posted on 4/15/2010 1:16:46 AM
C# programmers make more money as programmers but VB.NET developers make more money as porn stars.

That's because C# programmers ave little dicks.

#219. By HnD. Posted on 4/15/2010 2:41:01 AM
it doesn't matter about what programming language you use... as long as you know what your preference language can do, as long as what language you want, like this like that, to much to mention...


by the way, the article above is just an opinion from a person / group of persons.. it's just an opinion, not a standard.


if you want competing against other language on the language you prefer and you can't defend it, go make your own programming language!

#220. By Peter. Posted on 4/15/2010 7:31:44 PM
It's all irrelevant in the end, as the .NET compiler will compile C# and VB code into it's own language exactly the same. We are all idiots as we have allowed microsoft to lead us back into an interpretive language again. When I started programming a decade and a half ago, that was C programmers biggest problem with VB3, it was an interpretive language. Well guys, welcome home and now you C programmers can too enjoy interpretive code.

#221. By Peter. Posted on 4/15/2010 7:47:24 PM
Oh, and I almost forgot. Do you really believe that a C++ programmer would actually regress to C#?

#222. By Ted Whitton. Posted on 4/16/2010 12:40:00 AM
I love this thread. I can't believe it started in 2004 and is still going 6 years later. I got my last post in at #32, still using VB.NET but learning WPF which I love the power of. I still hold by my original point that you guys are all missing the point, this whole thread is misguided as writing GOOD, USABLE, FIT FOR PURPOSE apps is THE MOST IMPORTANT THING, not what you write it in.

#223. By Peter. Posted on 4/16/2010 7:59:40 PM
Oh, and I almost forgot. Do you really believe that a C++ programmer would actually regress to C#?

#224. By Mr. T. Posted on 4/25/2010 4:49:35 PM
Ok Listen!!!!!! It's His Opinion Not A Fact(it's What He Thinks)

#225. By Mr. T. Posted on 4/25/2010 5:35:41 PM
Ok Listen!!!!!! It's His Opinion Not A Fact(it's What He Thinks)

#226. By Jim. Posted on 4/26/2010 3:36:41 PM
I recently attended a Code Camp in Pittsburgh that was for VS in general, but focused almost 100% on C#. This was my 3rd year there and each year the VB coverage is less and less, and anytime you mention VB all the C# snobs snicker and seem to think VB is a toy language. Funny thing is I have been able to make a 6 figure income for the last 10 years using this toy language. I have professional applications written in this toy language that are running in several fortune 50 companies.

It really boils down to how good a programmer you are. How you solve problems and meet customer expectations. Use of the right tool for the right job. I've been at this for 20+ years and when I find a job that requires more speed than my normal tool provides, I optimize and if that doesn't work, I switch to something else.

While I was at this code camp, I was able to understand 100% everything the instructor was teaching in c#, even though I have never written 1 line of c# code. VB has all the same functionality, just different syntax. I even won a C# book for the .Net Framework 4. Maybe I'll learn the syntax so I can also be a c# Snob....lol

#227. By sebastian. Posted on 5/1/2010 6:41:32 PM
hay cosas que tiene VB que no tiene C#:
- el uso namespace
- el uso de with
- cuando viene el objeto e y sender, andan de una, no hay que inventar nada raro, cosa que C siempre se caracterizo por inventos absurdos
- si debo incrementar uso a+=1....no me voy a morir por escribir a++;
- si quiero hacer un comentario de varias lineas no me voy a morir por hacer:
' esto es
' un comentario
- EL case sensitive deriva a largas horas improductivas detectando un maldito error. VB no lo tiene
- El uso de punto y coma (;), o podriamos decir, el maldito uso del punto y coma
- con las llaves el codigo es menos intuitivo, nunca sabes que sentencia estas cerrando en ese momento, se produce un estado de desorden mental
- es mas facil que al copiar y pegar existen errores, en VB todo es mas estructurado
- el vb es parseable por el humano facilmente, el C# se penso para que parsee la maquina
- C# no desea incorporar nunca una evolucion en su sintaxis, se mantiene fiel a las antiguas versiones de C
- Se codifica mas rapido y sencillo, su forma de expresar es intuitiva, colorea bien y se orienta a que cuando hay un pequeño fallo ya lo estes depurando
- Si los programadores C# ganan mas porque los empleadores ven muchas peliculas de hackers, los programadores C se creen hackers y lastiman a los programadores VB antes de ver si el proyecto que hizo es productivo o no para el usuario
- Los programadores C tienden a pensar los beneficios que logre sacar el ordenador, los programadores VB tienden a pensar los beneficios del usuario final
- y asi puedo estar, detesto todas las sentencias de C#, siempre escribis algo en minuscula o mayuscula y te queres matar, las llaves nunca se que sentencia de mierda me estan cerrando, siempre debes hacer un paso mas, me olvido los punto y coma constantemente (son una mierda de desgracia), y nunca veo que los nuevos lenguages agreguen cosas interesantes. El programador C es una persona cerrada que cree que es inteligente solo porque programa en C y debe ganar mas dinero que otro programador que no elige estar herramienta.

#228. By sebastian. Posted on 5/1/2010 6:44:18 PM
hay cosas que tiene VB que no tiene C#:
- el uso namespace
- el uso de with
- cuando viene el objeto e y sender, andan de una, no hay que inventar nada raro, cosa que C siempre se caracterizo por inventos absurdos
- si debo incrementar uso a+=1....no me voy a morir por escribir a++;
- si quiero hacer un comentario de varias lineas no me voy a morir por hacer:
' esto es
' un comentario
- EL case sensitive deriva a largas horas improductivas detectando un maldito error. VB no lo tiene
- El uso de punto y coma (;), o podriamos decir, el maldito uso del punto y coma
- con las llaves el codigo es menos intuitivo, nunca sabes que sentencia estas cerrando en ese momento, se produce un estado de desorden mental
- es mas facil que al copiar y pegar existen errores, en VB todo es mas estructurado
- el vb es parseable por el humano facilmente, el C# se penso para que parsee la maquina
- C# no desea incorporar nunca una evolucion en su sintaxis, se mantiene fiel a las antiguas versiones de C
- Se codifica mas rapido y sencillo, su forma de expresar es intuitiva, colorea bien y se orienta a que cuando hay un pequeño fallo ya lo estes depurando
- Si los programadores C# ganan mas porque los empleadores ven muchas peliculas de hackers, los programadores C se creen hackers y lastiman a los programadores VB antes de ver si el proyecto que hizo es productivo o no para el usuario
- Los programadores C tienden a pensar los beneficios que logre sacar el ordenador, los programadores VB tienden a pensar los beneficios del usuario final
- y asi puedo estar, detesto todas las sentencias de C#, siempre escribis algo en minuscula o mayuscula y te queres matar, las llaves nunca se que sentencia de mierda me estan cerrando, siempre debes hacer un paso mas, me olvido los punto y coma constantemente (son una mierda de desgracia), y nunca veo que los nuevos lenguages agreguen cosas interesantes. El programador C es una persona cerrada que cree que es inteligente solo porque programa en C y debe ganar mas dinero que otro programador que no elige estar herramienta.

#229. By Morteza. Posted on 5/26/2010 5:51:53 PM
Hi,
i was googling comparison vb.net and csharp then came across your website.
great stuff but i have to mention
as a Csharp and Vb.net Developer i have to say most of the above aren't as u described. in some of, i agree.
VB.net has many advantageous over Csharp, i don't want to mention them here google them to find and vice versa.
but there a reason i still use Csharp:
C# support Unsafe methods and we can call un-managed code through it.
its the most and important reason I've employed C# in some of my projects ( specially when security is important ).
since I'd just used C families languages it was very hard to me to turn into vb.net but i did and I'm pretty sure i made right decision.

#230. By CodedoC. Posted on 5/28/2010 4:56:17 AM
VB == VerBose; /* Only C# programmers will understand this */

#231. By Arjun Singh. Posted on 6/4/2010 6:43:32 AM
VB.Net has background compiler, which help you to write correct code while you are in design mode rather than trapping code error at run time, but in C# you have to write correct code otherwise compiler will throw errors at the time of compilation. So now, you people can guess which one is faster in terms of writing code and developing application.

If am not wrong, VB.Net is verbose language, which is far easier to understand by third developer than understanding the C# code.
Simple example is 'AddHandeler' key word of VB.Net, which make sense that this line of code is adding event handler, but in C# + operator required.

#232. By Anonymous. Posted on 6/5/2010 8:44:49 AM
I am a C#/VB The reason why people think one laungage is more superior that the other is normally because they just do not know the other language that well. Your comments are very shallow.

There are so many languages out there and obviously their syntax is different ,thats why they are different languages. Its better to give difference of what the other can or can not do rather that silly examples like comparing c#'S A++; AND vb's A+=1;

If you are a good developer you will know that for vb you will have to have option strict on and you are sorted

#233. By String Escape Characters. Posted on 6/13/2010 7:31:22 AM
Here's another edge C# has over VB.NET. In C#, you can specify escape characters within a string, such as "Line 1\nLine 2". In VB.NET, you have to do "Line 1" & vbCrLf & "Line 2". Not only is the C# method cleaner and more efficient, it helps with localization where strings are stored externally and loaded based on the selected language.

#234. By Anonymous. Posted on 7/10/2010 8:18:40 PM
i think we can all agree that the author of the above is a total fool. Every point is nit-picking. There a++ vs a+=1, pleeease. How insignificant is that!!!? If programmers are going to sound off about this debate they should have some differences which have BIG, SOLID implications. The languages are so close that nobody can come forward with such an argument. Particularly in .NET 4.0 where they seem to have become even closer in syntax.

The ONLY valid point is the none-technical, Money issue. C# DOES pay more so it does make sense to learn it over VB.NET, having said that though, I think it's a good thing to know your way around both WELL. This author of this article clearly does not.

#235. By yezzbi. Posted on 7/31/2010 6:21:35 AM
The biggest advantage of c# is it is object oriented, using which powerful platforms can be build, another big advantage is that because of its C like syntax, it can reuse the vast code base of c (microsoft guessed correctly).

#236. By Hyvay. Posted on 8/24/2010 6:51:04 AM
Here is a tipical C# dumb ass mogo programmer response to the question "What is "VB.NET My" equivalent in C#?"
"Actually, the equivalent code is rarely longer. The benefit of "My" is that
it's an easier way for beginners to find certain functionality since they can
navigate via intellisense easier starting with "My" to find what they want."

Pay attention to this "it's an easier way for beginners to find certain functionality since they can
navigate via intellisense easier starting with My"
So what is this guy saying is that he is a professional programmer and willing to use assembly language to code 20 million lines to get the computer name. It is not acceptable for him to be in a beginner situation which means use the code that someone else had created before you. Isn't this one of the OOP concepts?

Long story short, VB is more productive than C# if you know how to program. I am trying to convert one of my websites to C# so that I can get used to the syntax. A class that took me 30min to write in VB.Net took me the entire day to convert. Too much brackets, poor IDE, wrong error messages, you name it. I don't see any advantages except the ability of having limited access to pointers. If pointers are involved than you may consider to write the application in C++ having full control to the pointers. Or have an assembly that provides the need functionality and reference it from your VB.Net project and use it.
All day I am typing (converting the class), I can defiantly say that C# is good for boss's eye, it kind of gives and impression that you are working but of course it is the language do less type more :)

#237. By Paul. Posted on 8/25/2010 8:20:28 PM
Yawn. Mop up and turn out the lights when you're done.

#238. By Meat. Posted on 9/1/2010 8:04:22 AM
I Love the Brackets {} in C# and in VB.Net is End Sub End If and so on which is so time consuming

C# Foeva

#239. By Ravi LVS. Posted on 9/8/2010 11:19:28 AM
You are all wrong. Language is always a matter of preference. Like one speaks English and other speaks Chinese. Chinese feel it difficult to speak English and English feel it difficult to speak Chinese. But these two languages can communicate what we want to say. Am I right?

Is there any specific task that can be done in C# and not in VB.Net?
Is there any specific task that can be done in VB.Net and not in C#?
Let's all forget typing few characters extra in one Language than other. Once you are acquainted with one Language, your fingers will automatically get much speed and few lines of additional code will not make any sense.

#240. By Programming. Posted on 9/21/2010 7:38:23 PM
1> Use this:
Dim sql as string = "SELECT *" & _
"WHERE ID ='WhatHaveYou'" & _
2> Real programmers know multiple languages; and use them for the purposes they where intended,
and don't ever believe one language is "better" then the other.
3> See above; people who know multiple languages will get paid more then the ones who only know one.
good game?
4> Programming is about code; not which compiler you use.
5> If you're a good programmer you can get by without any error catching because you can figure out whats wrong on your own; however if you are incapable of this, vb.net happens to have perfect error catching.
6> again; programmers who know multiple languages can be even more snotty; awesome!
7> Mono. .net has been made OS independent; in fact, look up a project called COSMOS; it's an OS written in the .net language; you can write it in vb.net or C#, or C++; take your pick.
8> as you've mentioned; vb.net now has this functionality
9> not really.
' I can
' Write anything I want
Dim bob as string ' Here =D
10> The only point you've got me on; I hope regions are added to vb.net; but even without them,
it's a good language comments are fine, how did people ever manage before regions?

#241. By Programming. Posted on 9/21/2010 7:43:43 PM
1> Use this:
Dim sql as string = "SELECT *" & _
"WHERE ID ='WhatHaveYou'" & _
2> Real programmers know multiple languages; and use them for the purposes they where intended,
and don't ever believe one language is "better" then the other.
3> See above; people who know multiple languages will get paid more then the ones who only know one.
good game?
4> Programming is about code; not which compiler you use.
5> If you're a good programmer you can get by without any error catching because you can figure out whats wrong on your own; however if you are incapable of this, vb.net happens to have perfect error catching.
6> again; programmers who know multiple languages can be even more snotty; awesome!
7> Mono. .net has been made OS independent; in fact, look up a project called COSMOS; it's an OS written in the .net language; you can write it in vb.net or C#, or C++; take your pick.
8> as you've mentioned; vb.net now has this functionality
9> not really.
' I can
' Write anything I want
Dim bob as string ' Here =D
10> The only point you've got me on; I hope regions are added to vb.net; but even without them,
it's a good language comments are fine, how did people ever manage before regions?

#242. By ruwan. Posted on 10/3/2010 4:39:26 AM
yes dont critisized vb.net, they will develop this language, because vb is a big turnpoint microsoft corparation.if i wrong pls do comment that.

#243. By Appyk. Posted on 10/4/2010 3:49:51 PM
Why C sharp programmers always wanna keep Vb small..?,and course i am also being a C Sharp developer ..

After all both of them are using the same CLR,FCL,JIT..?
There are n numbers of features in Vb which C Sharp doesn’t support


Can anyone tell me how to convert the following code snippet into C Sharp without errors..?
Dim TextBox1 As New TextBox
Dim obj = New Object
TextBox1.Text = "Here"
obj = TextBox1
MsgBox(obj.text)

#244. By Appyk. Posted on 10/4/2010 3:51:51 PM
Why C sharp programmers always wanna keep Vb small..?,and course i am also being a C Sharp developer ..

After all both of them are using the same CLR,FCL,JIT..?
There are n numbers of features in Vb which C Sharp doesn’t support


Can anyone tell me how to convert the following code snippet into C Sharp without errors..?
Dim TextBox1 As New TextBox
Dim obj = New Object
TextBox1.Text = "Here"
obj = TextBox1
MsgBox(obj.text)

#245. By bdh. Posted on 11/15/2010 2:11:58 PM
TextBox textBox1 = new TextBox();
textBox1.Text = "Here";
Object obj = textBox1;
MessageBox.Show(((TextBox)obj).Text);

#246. By David. Posted on 11/18/2010 10:33:44 AM
Wow, that is quite literally the worst comparison I have ever seen. You are obviously a very poor programmer who has no understanding of the concept of .NET let alone the differences between language syntax.

#247. By j. Posted on 11/24/2010 6:24:21 PM
vbRAD.com bashes vb.

#248. By Cairne. Posted on 12/1/2010 4:00:02 AM
VB is only for girls

#249. By Runtest. Posted on 12/13/2010 3:12:08 PM
This was retarded and the biggest waist of 2 minutes in my life.

#250. By anon. Posted on 12/15/2010 6:14:07 PM
Only shitty programmers put raw SQL in compiled code.

#251. By anon. Posted on 12/15/2010 6:16:52 PM
Only shitty programmers put raw SQL in compiled code.

#252. By sergiol. Posted on 12/21/2010 12:45:02 PM
It is logic that C# folks will earn more! Why?
Because of their provenience!
While VB.net people normally come from the old classic VB that was a "language for dummies" and not even deserving to be called obejct-oirnted, normally people of C# comes from the powerful and more difficult C and C++ worlds!
If you see some Joel on Software articles about hiring IT people, he states "Always look for hardcore." It makes all the sense, as people with hardcore habits can solve a problem both using hardcore and softcore languages, while the inverse is not necessarily true.
So if you need to decide between an Asperger geek with the skills for dealing with the hardcore problems and a not so freak guy that can only take softcore tasks, it is obvious what of them you should hire.

#253. By sergiol. Posted on 12/21/2010 12:45:31 PM
It is logic that C# folks will earn more! Why?
Because of their provenience!
While VB.net people normally come from the old classic VB that was a "language for dummies" and not even deserving to be called obejct-oirnted, normally people of C# comes from the powerful and more difficult C and C++ worlds!
If you see some Joel on Software articles about hiring IT people, he states "Always look for hardcore." It makes all the sense, as people with hardcore habits can solve a problem both using hardcore and softcore languages, while the inverse is not necessarily true.
So if you need to decide between an Asperger geek with the skills for dealing with the hardcore problems and a not so freak guy that can only take softcore tasks, it is obvious what of them you should hire.

#254. By sergiol. Posted on 12/21/2010 12:46:02 PM
It is logic that C# folks will earn more! Why?
Because of their provenience!
While VB.net people normally come from the old classic VB that was a "language for dummies" and not even deserving to be called object-oriented, normally people of C# comes from the powerful and more difficult C and C++ worlds!
If you see some Joel on Software articles about hiring IT people, he states "Always look for hardcore." It makes all the sense, as people with hardcore habits can solve a problem both using hardcore and softcore languages, while the inverse is not necessarily true.
So if you need to decide between an Asperger geek with the skills for dealing with the hardcore problems and a not so freak guy that can only take softcore tasks, it is obvious what of them you should hire.

#255. By sergiol. Posted on 12/21/2010 12:47:29 PM
It is logic that C# folks will earn more! Why?
Because of their provenience!
While VB.net people normally come from the old classic VB that was a "language for dummies" and not even deserving to be called object-oriented, normally people of C# comes from the powerful and more difficult C and C++ worlds!
If you see some Joel on Software articles about hiring IT people, he states "Always look for hardcore." It makes all the sense, as people with hardcore habits can solve a problem both using hardcore and softcore languages, while the inverse is not necessarily true.
So if you need to decide between an Asperger geek with the skills for dealing with the hardcore problems and a not so freak guy that can only take softcore tasks, it is obvious what of them you should hire.

#256. By sergiol. Posted on 12/22/2010 2:12:35 AM
It is logic that C# folks will earn more! Why?
Because of their provenience!
While VB.net people normally come from the old classic VB that was a "language for dummies" and not even deserving to be called object-oriented, normally people of C# comes from the powerful and more difficult C and C++ worlds!
If you see some Joel on Software articles about hiring IT people, he states "Always look for hardcore." It makes all the sense, as people with hardcore habits can solve a problem both using hardcore and softcore languages, while the inverse is not necessarily true.
So if you need to decide between an Asperger geek with the skills for dealing with the hardcore problems and a not so freak guy that can only take softcore tasks, it is obvious what of them you should hire.

#257. By Anonymous. Posted on 12/22/2010 2:20:47 AM
It is logic that C# folks will earn more! Why?
Because of their provenience!
While VB.net people normally come from the old classic VB that was a "language for dummies" and not even deserving to be called object-oriented, normally people of C# comes from the powerful and more difficult C and C++ worlds!
If you see some Joel on Software articles about hiring IT people, he states "Always look for hardcore." It makes all the sense, as people with hardcore habits can solve a problem both using hardcore and softcore languages, while the inverse is not necessarily true.
So if you need to decide between an Asperger geek with the skills for dealing with the hardcore problems and a not so freak guy that can only take softcore tasks, it is obvious what of them you should hire.

#258. By vb man. Posted on 1/4/2011 3:47:15 AM
Jim made more sense than any of you...

#259. By vb man. Posted on 1/4/2011 3:48:20 AM
Jim made more sense than any of you...

#260. By Jack. Posted on 4/7/2011 3:06:52 AM
I've programmed in C++ and both VB.Net and C#, and I must say, all languages have their quirks. My software engineer team uses all 3 languages and more (java, coldfusion, ruby, ect.) depending on their projects. But the author of this post is really doing C# a disservice by writing this article. The "Top 10 reasons VB.NET is better than C#" article gives better reasons.

1. Writing SQL statements in code? really? If I catch anyone of my programmers pull this, he'd be on coffee duty until my hot boss agrees to have sex with me in the company kitchen, which is highly unlikely.
2. What's said? a++; a--; isn't as important as a++; and ++a;, but sure, you end up typing one or two more lines of code, but big deal.
4. Biased and irrelevant.
5. Wow, the ignorance, VB.Net automatically initializes variables to the default of that type. Dead code? Do you really need to rely on a compiler for that?
6. Really? How irrelevant can one get?
7. Hats off to the Mono team for making .Net cross-platform. This is the only valid reason on the list.
8. Old issue, fixed now. But that shouldn't limit a developer from achieving similar functions (myObject.Add(myObject2), anyone?)
9. really?
10. Better? "Region/End Region", anyone?

Sure, VB.Net uses parentheses for both function calls and array indexing, but it's got .With

1. neither one has anything that the other one can't do, and as others have said, they both compile to bytecode anyway.
2. as a programmer gets more experienced, all this petty issues become less relevant. One cannot claim, "Oh shit, VB.Net doesn't support classes or function calls..."

#261. By Anonymous. Posted on 4/12/2011 11:17:05 AM
Well I guess your only valid (and appealing) point is 3. Money. All others are not so strong points and contradicts.

I just learnt that C# 's switch function is not as powerful as VB.NET's Select Case:

1. switch can only take constant case.
2. Select Case can take conditions, variables etc.
3. Select Case can do Case 1,3,4,5 whereas in C# you will have to split all those to Case 1, Case 3, Case 4, Case 5. Talk about code efficiency...

#262. By Arjun Singh. Posted on 4/25/2011 12:03:22 PM
I want to know which one is good.

#263. By nilesh bardiya. Posted on 6/6/2011 2:13:42 PM
oh thanks

#264. By Prabakaran and Dineshwaran. Posted on 6/24/2011 1:29:19 PM
Nice.............

#265. By DragonHunter. Posted on 6/25/2011 9:50:24 AM
1. C# is having unsafe code
2. Deconstructor
3. C syntax, Used by most languages
4. Pointers (unsafe code)
5. Multiple
6. C# is better
7. C# is better
8. C# is better
9. C# is better
10. C# is better

#266. By Stephen. Posted on 6/29/2011 10:05:02 AM
I think this is very childish to state such a list as fact, I feel the list could be named "10 reasons why I think C# is better than VB.NET for me". Its perspective, I personally use C# for game development and I use VB.NET for application development. I'm glad I can use both languages but I have to admit for me I feel VB.NET has a clear edge on C# in that it's just readable, why make the same (vb/c)code that compiles down to the same code CRL harder to read? To look at C# it does look more complicated than VB.NET but you don't get extra brownie points for making things look more complicated than need be. I can type out vb.net code out much quicker than C# even though at times C# has less to type and the reason for this as it's not as readable so you think a bit longer "Which thing does that curly brace belong to?".

"You get to act really snotty to VB.NET developers, yeah! That's priceless." I think that sums up the intelligence of this article. While I am a C# developer and make good money on my creations I wouldn't and I don't think that makes me better than a VB.NET developer, it's all quite pathetic when you think about it.

I hope anybody who reads this list won’t limit themselves to just one language or feel they need to avoid another language.

Please people allow your minds to be free, knowing C# and VB.net is more profitable than just C#.

#267. By Jarrod. Posted on 7/5/2011 7:40:02 PM
I have to say that scince I program in C# & VB.Net I find VB.Net is a much cleaner looking code. It is easier to follow the flow and if you put down a project you can come back to it and take right off. C# is Overly complicated. It is also hard to track unless you spen more time Commenting that programming. The Brackets make your code look like a disaster. C# and VB.Net have very few differences as far as programing functions. It Really comes down to what you prefer. Though I program in both I prefer VB.Net. In the end It is just a cleaner looking code.

#268. By Rishi. Posted on 7/7/2011 2:07:00 PM
I will give you 1 reason why VB is better than C#. It will settle the argument.
When I am programming or writing code I would like to concentrate on logic and how I want to get what I am writing right. Instead I don't want to concentrate on whether my variable name is correct or not, whether I typed in the capitals right or not. VB lets me do the programming rather than getting the variable names right, and other stupid things. And regarding type casting and other things just turn your Option Strict to ON.
Thats it. I feel VB is a lot better than C#

Rishi

#269. By John. Posted on 7/11/2011 9:19:08 PM
"Error Catching. C# catches a lot more errors than VB.NET, such as uninitialized variables, dead code, etc..."

Option Explicit On
Public Class Reasons
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim RobertGleb as Boolean = True
Dim Reas as Boolean = False
If RobertGleb = True And Reas = False Then
MsgBox("Robert Gleb you do not know VB.Net Well enuff to make this statement")
End If
End
End Sub
End Class

VB Has Spoken. Heres the proof: http://oi53.tinypic.com/sdo8ww.jpg

#270. By johnnyxp64. Posted on 7/26/2011 6:19:03 AM
well in VS2010 and the new VB.net compiler NONE reasone of the above is TRUE anymore!

besides one!, not money exactly but positions!
for some reason companies ask to hire more c# developers rather vb.net :(
while the projects they develop can be done exactly the same in both languages they belive that c# is "supirior" and its not!

#271. By Salak Herif. Posted on 8/15/2011 8:49:41 PM
Lan Amq mali Ona Bakarsan Ben Sana Vb'de olup Salak C#'da olmayan 1000 bin tane sey söylerim.

En basitinde On Error Resume Next Diyorum :) Anlayan Anladi ;) Si. Gidin Amq.

#272. By ron. Posted on 8/18/2011 11:09:13 AM
Potato Potato

#273. By The Inbetweeners Films. Posted on 8/27/2011 7:10:04 AM
Fantastic goods from you, man. Ive study your stuff ahead of and youre just as well amazing. I enjoy what youve got right here, adore what youre stating and the way you say it. You make it entertaining and you even now manage to help keep it wise. I cant wait to go through additional from you. That is really an incredible weblog.

#274. By ochocinco. Posted on 9/19/2011 6:02:18 PM
ruby kicks all your A S S E S any day !!

#275. By ochocinco. Posted on 9/19/2011 6:03:11 PM
ruby kicks all your A S S E S any day !!

#276. By ochocinco. Posted on 9/19/2011 6:06:12 PM
ruby kicks all your A S S E S any day !!

#277. By ochocinco. Posted on 9/19/2011 6:09:13 PM
ruby kicks all your A S S E S any day !!

#278. By ochocinco. Posted on 9/19/2011 6:12:15 PM
ruby kicks all your A S S E S any day !!

#279. By ochocinco. Posted on 9/19/2011 6:15:16 PM
ruby kicks all your A S S E S any day !!

#280. By ochocinco. Posted on 9/19/2011 6:18:17 PM
ruby kicks all your A S S E S any day !!

#281. By tanya. Posted on 10/6/2011 7:08:01 AM
when i've found your "top 10 reasons c# is better than vb.net" i thought it was worth reading it.
i did it.
and don't think it was worth reading it anymore.
Have a nice day.

#282. By hb. Posted on 10/9/2011 12:49:55 PM
If you need to break your method code to parts, it probably means your method is too long, which probably means you need to break your method to sub-methods and not use regions.

#283. By hb. Posted on 10/9/2011 12:50:12 PM
If you need to break your method code to parts, it probably means your method is too long, which probably means you need to break your method to sub-methods and not use regions.

#284. By hb. Posted on 10/9/2011 12:50:23 PM
If you need to break your method code to parts, it probably means your method is too long, which probably means you need to break your method to sub-methods and not use regions.

#285. By hb. Posted on 10/9/2011 12:50:29 PM
If you need to break your method code to parts, it probably means your method is too long, which probably means you need to break your method to sub-methods and not use regions.

#286. By cyrus. Posted on 10/11/2011 2:07:24 AM
No sir...C# is NOT better than VB.NET simply because of one thing - all .NET languages are compiled to MSIL (same assembly language under the hood), which means choices we make about programming languages in .NET are a matter of taste or psychological attachment, not efficiency and power. Code quality and efficiency really depends on the skill of the programmer using a particular .NET language. Language features are no longer a hindrance or disadvantage (doesn't give a language the edge over others).

C# programmers get paid more because Company Executives and some programmers have this myth that "C# is better than VB.NET" (like the one you embrace). But when you try to think W-H-Y .NET Framework exists to serve many languages (many languages, one framework model,one assembly language in the end)... you are humbled.

#287. By cyrus. Posted on 10/11/2011 2:10:03 AM
No sir...C# is NOT better than VB.NET simply because of one thing - all .NET languages are compiled to MSIL (same assembly language under the hood), which means choices we make about programming languages in .NET are a matter of taste or psychological attachment, not efficiency and power. Code quality and efficiency really depends on the skill of the programmer using a particular .NET language. Language features are no longer a hindrance or disadvantage (doesn't give a language the edge over others).

C# programmers get paid more because Company Executives and some programmers have this myth that "C# is better than VB.NET" (like the one you embrace). But when you try to think W-H-Y .NET Framework exists to serve many languages (many languages, one framework model,one assembly language in the end)... you are humbled.

#288. By URQuiteWrong. Posted on 10/12/2011 5:45:47 PM
U R QuiteWrong!U R QuiteWrong!U R QuiteWrong!U R QuiteWrong!U R QuiteWrong!U R QuiteWrong!U R QuiteWrong!U R QuiteWrong!U R QuiteWrong!
U R QuiteWrong!U R QuiteWrong!U R QuiteWrong!U R QuiteWrong!U R QuiteWrong!U R QuiteWrong!U R QuiteWrong!U R QuiteWrong!U R QuiteWrong!
U R QuiteWrong!U R QuiteWrong!U R QuiteWrong!U R QuiteWrong!U R QuiteWrong!U R QuiteWrong!U R QuiteWrong!U R QuiteWrong!U R QuiteWrong!
1) The comments R same, Just with selecting text part and use Ctrl+K & Ctrl+C for multiline, or Ctrl+K & Ctrl+U for Uncomment 4Both!
2) The Regions here and there!
3) Money! NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET NET
mean Money Not Every Thing.

just think about it, the .net framework is same for both except the syntax for each language and there R many features in VB.NET doesn't exist in c# "Such as the function IsNumeric(), and else" and vice versa. I don't underestimate C# but VB.NET has come strongly and more power than before.

#289. By Anonymous. Posted on 10/26/2011 2:05:17 PM
You are obviously a moron...do a little more research

#290. By me. Posted on 11/2/2011 12:04:08 AM
When I started to learn “Programming”, i used VB.NET with MSVS10. I think VB.NET is a good stepping-stone to C#.NET. I still think vb.net is better because it is very easy to use, but i still have not used C#.NET for all that long to give a clear preference. I guess you could say VB.NET is Mac and C#.NET is Windows; Mac is for Art and Windows is for Power.

#291. By Anonymous. Posted on 11/4/2011 10:34:58 AM
1. VS 2008 and up don't need the vbCrLf use the single _ for continuation
2. a++ and a-- are for lazy coders. a = +1 works really good
3. I earn just as much as a VB developer.
4. who cares?
5. Both have the same framework so error catching is equal
6. That's why I don't like self-righteous C# snots.
7. Who cares
8. Same now in VB
9. If you need multiline comments then your code is cryptic. VB code is always self explanatory. An XML comments are in VB as well as single line
10. Regions are exactly the same in VB.

now tell me again why C# is better....

#292. By amir. Posted on 11/6/2011 6:59:54 AM
great stuff

#293. By Victor. Posted on 11/15/2011 12:53:43 PM
Top 10 reasons C# is better than VB.NET


http://www.vbrad.com/article.aspx?id=65
Related Articles
Top 10 reasons VB.NET is better than C#


This two topics i can't understand pls give me clear answer.


Regs,
Victor

#294. By nocturnal YL. Posted on 11/25/2011 7:33:43 AM
/* Are you sure there
is no more advantages
of C# over VB.NET? */

#295. By Sharpe Punk. Posted on 12/4/2011 12:24:33 PM
lol, this is so old, do people still believe this rubbish now in 2011. Ps I code in both, priceless.

#296. By suj. Posted on 12/19/2011 5:51:18 AM
very nice

#297. By OrangeUser. Posted on 1/4/2012 5:19:33 AM
Firstly .NET languages are pampered, secondly, this article is clearly written by someone that is opinionated, though C# sounds better than VB.NET, they both have advantages over each other. For example VB.NET

Dim sqlconn as new sqlconnection
sqlconn.connectionstring="EFF NO THIS IS PRIVATE"
sqlconn.open()

'--------------------------------
C# is:

SqlConnection dbconnn = new SqlConnection();
dbconnn.ConnectionString="EFF NO THIS IS PRIVATE";
dbconnn.Open();

//-------------------------------

Either way .NET languages are all one family, C# and VB.NET developers are like brothers, constantly fighting. I prefer VB.NET for quick scripts on web applications but C# if I need to smash out something a little bit more powerful. I honestly like cpp most but choosing from these, I would have to vote vb.net since it is easier to work with, even though C# has more power(which I prefer).

Personal vote:
VB.NET = 7
C# = 8
C++ = 10
Python = 4(keh keh keh)

#298. By Paul Okeke. Posted on 1/6/2012 3:39:02 AM
C# is a language of future generations specifically designed to becomes the radix language for developers.

#299. By yudha. Posted on 1/16/2012 8:30:52 AM
It all depends on the language background programs you have.

I have a basic assembly programming, I like C# and so like to VB.NET. In VS2010, between C# and VB.NET have the same performance, only the sintax that distinguish it.

#300. By Mebtu Abebe. Posted on 1/27/2012 2:02:25 PM
Well, what you say is the difference between C++ and VB.Net, not the difference between C# and VB.Net. Why, let me put it right with a single statement: The Giant Redmond Guy, Microsoft, wants to baptize everyone in .Net. Yet, many of proposed individuals are on the islands of C++ (and Java). So Microsoft has to think something, making a C++ like language and call those guys for the festivity. With a reason of "no choice" or so, many of them yielded to the invitation. That is why you are here in the Microsoft's domain.

Technically, both the languages compile into the same Intermediate Language, which will be handed down to the Dot Net Runtime Libraries.

The mere idea of "Global Perception" is, I think, what you perceive the fact to be. If you like to write in a language that is more capable of "ordering the OS", better trade the C# for C++.

#301. By Mebtu Abebe. Posted on 1/27/2012 2:12:56 PM
Well, what you say is the difference between C++ and VB.Net, not the difference between C# and VB.Net. Why, let me put it right with a single statement: The Giant Redmond Guy, Microsoft, wants to baptize everyone in .Net. Yet, many of proposed individuals are on the islands of C++ (and Java). So Microsoft has to think something, making a C++ like language and call those guys for the festivity. With a reason of "no choice" or so, many of them yielded to the invitation. That is why you are here in the Microsoft's domain.

Technically, both the languages compile into the same Intermediate Language, which will be handed down to the Dot Net Runtime Libraries.

The mere idea of "Global Perception" is, I think, what you perceive the fact to be. If you like to write in a language that is more capable of "ordering the OS", better trade the C# for C++.

#302. By Minh. Posted on 2/22/2012 4:35:09 AM
You just did not know deeply in VB.NET
You are comparing what you knew C# which you are beginer in VB.NET
what Alpha Binary said was right.

#303. By Minh. Posted on 2/22/2012 4:40:18 AM
You just did not know deeply in VB.NET
You are comparing what you knew C# which you are beginer in VB.NET
Alpha Binary said was right.
I dont know who teach you C# but when you see a++ in you mind will be like this: a = a + 1;
so why you have to hide yourself ?

#304. By Costas. Posted on 2/24/2012 6:53:51 PM
Anybody who has coded extensively in both languages can tell you that none of your reasons are valid. None...

#305. By ignoramus. Posted on 2/28/2012 5:41:14 PM
it would be nice if C# supported the 'with' statement. folks talk like 'using' statement is same thing but it's not. 'using' is for object lifetime and disposal. 'with' is for clean looking code for me....

With someObject
.prop1=value
.prop2=value
.prop3=value
.prop4=value
End With

#306. By Ben. Posted on 3/11/2012 12:18:05 AM
I use both languages, and in fact starting to prefer c# myself, but I should point out a few things you have overlooked

example 1 in vb.net can be:
Dim sql As String = "SELECT *" & _
"FROM SomeSuchTable" & _
"WHERE ID='WhatHaveYou'" & _
"ORDER BY ThisAndThatField ASC "

example2:
a++ a--
almost a+=1 or a-=1

example3:
most companies use c# so you are correct there

example4:
I didn't bother reading the whole thing so not sure

example5:
c# is more fussy, but u can turn explicit on on vb.net

example6:
I know both c# and vb.net, and i know there is very little difference between the 2, (there is even online converters.) so I wouldnt even care to argue

example7:
source may be available but what are u gonna do with it?

example8:
I assume vb.net supports operator overloading haven't tried

example9:
c# comments are better, I'm sure future versions of vb.net will use same syntax there

example10
vb.net supports regions
#Region "Region Name"


so doesn't seem like much difference to me

#307. By Anonymous. Posted on 4/10/2012 5:20:13 PM
actually , VB NET is my favorite language, and its nice for creating huge applications.

#308. By bikit. Posted on 4/17/2012 6:19:42 AM
A few more comparison here :

http://csharp.net-informations.com/overview/csharp-vb.net.htm

bikit

#309. By bikit. Posted on 4/17/2012 6:21:37 AM
A few more comparison here :

http://csharp.net-informations.com/overview/csharp-vb.net.htm

bikit

#310. By Zabardast. Posted on 4/20/2012 8:08:35 PM
What king of language VB.NET or Visual Basic 2010 Express uses?

#311. By Steve. Posted on 6/6/2012 6:09:17 PM
"What king of language VB.NET or Visual Basic 2010 Express uses?"

Try learning ENGLISH first!

#312. By Anonymous. Posted on 10/24/2012 5:34:05 PM
Bost!

#313. By Richard. Posted on 11/11/2012 10:24:00 AM
if i am going to code in .net i may as well use vb.net as it looks beautiful, and performs exactly the same, performance comparisons are bullshit, they're all slower than a compiled language we don't use them to be fast.

if I go to all the trouble of using the messy C style, horrible braces everywhere, I would expect to get C++ performance :P I think a lot of people still ignore .net entirely



i'm not sure where you get the money idea, i think they're just paying you more because you're telling them C# is better, it's really not

#314. By antani. Posted on 12/13/2012 9:55:35 AM
povero imbecille

#315. By antani. Posted on 12/13/2012 9:56:59 AM
povero imbecille

#316. By antani. Posted on 12/13/2012 9:57:36 AM
povero imbecille

#317. By .net_Apprentice. Posted on 12/22/2012 4:11:05 AM
If you think C# is better than VB.net then you probably think than the united states is a better place than the rest of the world.
Time will prove you wrong

#318. By .net_Apprentice. Posted on 12/22/2012 4:25:26 AM
If you think C# is better than VB.net then you probably think than the united states is a better place than the rest of the world.
Time will prove you wrong

#319. By Brice Richard. Posted on 9/6/2013 6:25:19 PM
Interesting article but your comparisons are missing ONE HUGE practical comparison....if you are in need of having to write code in a Microsoft Office using VBA to automate some process or to generate a quick report....OR, if you need to use VBScript to hack some info out of Active Directory and all you know is C# you are going to struggle to figure out the code syntax....if you know VB.NET, - then VB-anything is a natural and organic learning curve that is quickly ascertained.....can't get that with C#....

It's a HUGE comparison difference, that, in my mind levels the playing field...you may be able to make more money knowing C#, but you are MORE F L E X I B L E using VB-centric languages....bet on it.

#320. By Brice Richard. Posted on 9/6/2013 6:27:41 PM
Interesting article but your comparisons are missing ONE HUGE practical comparison....if you are in need of having to write code in a Microsoft Office using VBA to automate some process or to generate a quick report....OR, if you need to use VBScript to hack some info out of Active Directory and all you know is C# you are going to struggle to figure out the code syntax....if you know VB.NET, - then VB-anything is a natural and organic learning curve that is quickly ascertained.....can't get that with C#....

It's a HUGE comparison difference, that, in my mind levels the playing field...you may be able to make more money knowing C#, but you are MORE F L E X I B L E using VB-centric languages....bet on it.

Try writing code in C# as fast as you can with VB.Net using the MY namespace...doesn't exist in C# - makes programming in VB.Net much easier....

#321. By Anonymous. Posted on 11/28/2013 3:57:01 PM
2. You gotta hunt for too many keys. You can't deny that a++; is better than a+=1


You have to be kidding me, they are the same amount of letters and the same amount of keys pressed.

Gods honest truth though is that hitting the semi colon (;) is not a natural thing to do as it is almost never used in everyday typing.

#322. By Shanio. Posted on 12/20/2013 8:35:33 AM
Im a VB developer and Im trying to see the difference. There technically is no difference you can do the same thing in VB that you do in C# but the thing people who are used to coding in SQL and javescript learn C# easier than VB. So really it depends on which one you under stand better and C# ers make more money because its a little more difficult to understand than vb. I totally can see that. I read about this in a microsoft article. http://social.msdn.microsoft.com/Forums/vstudio/en-US/f7d148ae-90a7-4990-954c-80d5e2400e04/what-makes-c-better-than-vb?forum=csharpgeneral

#323. By PP. Posted on 2/4/2014 5:28:41 PM
Hi to all. That's an old and very funny discussion to read.

Best part is about a++; vs. a+=1

Think about it. I would like to have a+=2. a++ does not cover this and was created primarily to use in cycles definitions. Yes, C# engineers can implement a+++; but what about a+=80? a+++++++++++++++++++++++++++++++;? Fuck that. ;-)

This is about my preferences, I love .NET coding. With appropriate tools, you can change your assembly language with 3rd party tools to C# - so tell to your boss, yo do work in c#, write faster in vb.net and use tool for translation. Both parties are OK. You have more money and manager has code in C#. And you saved to you much time, if you know VB better.

#324. By Mark. Posted on 2/25/2014 7:49:13 PM
Some of these comments are completely wrong. The only explanation is ignorance of VB.net... simple as that.

#325. By kiruthika. Posted on 4/22/2014 6:22:54 AM
need correct definition it's not better definition

#326. By Jeff. Posted on 7/7/2014 4:02:25 AM
My first programming language was VB.NET. I've been using it for over two years; however, I came to a point where I wanted to learn C# and to be able to program in both languages. I've learned a lot about C# even since I began a few months back. Although I'm still adjusting to it, I can now say that I'm pretty comfortable with C#. I can't say definitively which one is better than the other. Each language has its perks over the other -- I certainly like the feature in the C-based languages, including Javascript, with quick increments/decrements (a++, ++a, a--, and --a), but it's really not much different in VB (a += 1, a -=1). I will say, though, that with C# I surely do miss the "With/End With" statements in VB.

On a sidenote: you can theoretically program a VB.NET app on any platform as well as a C# app. iOS and Android have source compilers that support the basic MS.NET languages, C# and VB. Using Linux or Mac? Get MonoDevelop. MonoDevelop is a cross-platform MS.NET IDE that supports both VB and C#, and you can create Android, iOS, Linux, Mac, and even Windows apps with it (Desktop only, not Modern UI).

Also, C# programmers may make more money than VB programmers -- but they also might not. In fact, your best bet if you want to make more money is to pack on more languages in your head. Being "multilingual" means more career opportunities. C# and VB aren't hard at all to learn, but they can take a while to adjust to (of course, C# may take more getting used to than VB). It's not always enough to know *just* C# or *just* VB. It really depends on how experienced and comfortable you are with the science of software development.

#327. By Operator Overloading. Posted on 7/15/2014 8:19:04 AM
Comments in C# aren't just better.