The answer is yes and no. It really depends on what specific feature you are referring to. Likewise, there are areas where VB executes faster. I can give an example of each.
This code in VB...
For i As Integer = 0 To Convert.ToInt32(Math.Pow(10, 8))
Next
...is about 100x faster than this code in C#.
for (int i = 0; i <= Convert.ToInt32(Math.Pow(10, 8)); i++)
{
}
It is not that the VB compiler is better at generating code that executes for
loops faster though. It is that VB computes the loop bound once while C# computes the loop condition on each iteration. It is just a fundamental difference in the way the languages were intended to be used.
This code is C#...
int value = 0;
for (int i = 0; i <= NUM_ITERATIONS; i++)
{
value += 1;
}
...is slightly faster than the equivalent in VB.
Dim value As Integer = 0
For i As Integer = 0 To NUM_ITERATIONS
value += 1
Next
The reason in this case is that the default behavior for VB is to perform overflow checking while C# does not.
I am sure there are other difference in the languages that demonstrate similiar performance biases. But, both languages are built on top of the CLR and both compile to the same IL. So making blanket statements like "Language X is faster than language Y" without adding the important qualifying "in situation Z" clause are simply incorrect.