If you are a VB developer before, you may select vb.net.
They are comparable. If there is a difference in your learning curve it will be negligible in my opinion. On the order of maybe a couple of days difference in the time it will take you to learn one over the other. If you can only learn one of them, if it was me I would try to learn the most popular one. That way there are more people around that know it and can give you help and advice along the way.
First of all I think it is better to tell you that VB.Net & C# both uses same .net framework class library. Therefore, either C# or VB.Net does not matter very much to you. In either way you will have to use the .net framework class libraries. Now, you may ask what is the syntax of calling and using .net framework class libraries. Here, the question comes what is the syntax, VB.Net or C#. You can answer this question to yourself. Just think about your past coding experience and command over the programming languages you used in past. In my case, I started with BASIC->GW-BASIC->FOXPRO->C and VB6->C++->PHP->VB.Net and C#. I know both of them and I use both of them. If you are familier with VB or FoxPro or dBase etc. then it is better to start with VB.Net because syntax is almost same. Otherwise, I advice you to start with C#. C# is almost same as C/C++ and Java. The advantage of learning C# is not only bound within .net you can learn Java also with very little effort.
Regards,
My opinion - If you already know earlier versions of VB then do not learn VB.NET first.
This might seem an odd statement to make, however I come from being an experienced VB6 programmer, trying to program in VB.NET, then switching to C# so I have some idea what I am talking about. The reasoning is that if you know VB6 you will think you know what you're doing in VB.NET but here's the deal: You don't. You won't have a clue.
People who do this will do what I did, and try to keep doing things the old way. Using the VB keywords such as InStr, MsgBox, and using the On Error method for error handling rather than SEH. .NET is such a vast departure from VB6 in many ways, such as being object oriented (rather than object based), having an extensive class library, and just introducing whole new design patterns and ways of doing things.
At least if you switch to C# you accept you know nothing because it's a new language, and are free to learn how to do things properly.
That said - to answer the original one quicker - which one can you learn faster Neither. It will take you months to become proficient and years to be brilliant. Sorry. There aren't any shortcuts.
Greg is totally bang on right there about still referring to the old syntax and methods. Good point indeed and you see it in the VB forums many many times like Get/Put statements and what not - defeats the purpose of the .NET Framework and its classes really, being made available but not using them as they are designed specifically for a purpose.
very good point, glad you shared it