VB.NET or C# as first language

Started by
6 comments, last by slowmike 16 years, 10 months ago
Which one should I choose? Ive tried learning with books, Ruby and Python. But where I live there are no courses for them. The books did increase my knowledge on them and I am very capable of reading code, but not making it. I am only 15, and I am quite preoccupied with school. My local technological college provides VB.NET and C# courses. Any comments or recommendations are well appreciated.
Advertisement
If you can't get Ruby or Python, why do you think you'll get VB or C#? I'm not saying give up, quite the opposite. Go back to python and try making programs. If you get stuck, ask for help with it. You can't just keep switching languages. It takes awhile to become proficient. At least, that's my opinion.

That said, if you choose to ignore the above I'd suggest C# because if you learn that then you can use XNA to make games.

C++: A Dialog | C++0x Features: Part1 (lambdas, auto, static_assert) , Part 2 (rvalue references) , Part 3 (decltype) | Write Games | Fix Your Timestep!

The choice of which language to learn first or second is ultimately up to you. However, if you'd like assistance in learning C#, and be a part of a community of people learning C# together, you may follow the workshop located right here on GDNet which will be beginning in July.

Look at C# Workshop - Introduction thread for more info.

Cheers!
Jeromy Walsh
Sr. Tools & Engine Programmer | Software Engineer
Microsoft Windows Phone Team
Chronicles of Elyria (An In-development MMORPG)
GameDevelopedia.com - Blog & Tutorials
GDNet Mentoring: XNA Workshop | C# Workshop | C++ Workshop
"The question is not how far, the question is do you possess the constitution, the depth of faith, to go as far as is needed?" - Il Duche, Boondock Saints
Also be aware that the two languages are basically identical except for syntax. You can even use assemblies written in one inside of the other. Almost every bit of code is translated line for line, so once you know one you can learn the other very quickly once you have a handle on the syntax.

XNA will be available on vb.net, hopefully sooner than later, rumors are this summer sometime.
-----------------------------------------------“The best, most affordable way to save the most lives and improve overall health is to increase the number of trained local, primary healthcare workers.”Learn how you can help at www.ghets.org
vb.net versus c# is just personal taste. The two work exactly the same, and share 99% of their capabilities. Basically one is more verbose than the other, but that's about it. Try both and see which you like.

I personally have an appreciation for vb.net's automagical formatting (though technically that's a feature of the IDE, and not the language), but prefer c#'s more concise code.

Quote:Original post by ItsDan
XNA will be available on vb.net, hopefully sooner than later, rumors are this summer sometime.


I'm personally not betting money on this one way or the other. It may happen, or it may not. The problem is that the xbox 360's compact framework doesn't have the vb.net runtime. So, either they'll have to include the runtime, or they'll have to make the vb.net version of game studio express only allow code that doesn't include legacy vb6 code (since as far as I know, that's what the runtime does).

I really hope it happens, but I'm not holding my breath.
It's not the 'vb runtimes' it's just a specific namespace in the framework. It's not all that difficult for them to make the XNA project not reference/import that namespace. After all, that's all C# projects do.. The Microsoft.VisualBasic namespace is available in C# if you want it as far as I know. Obviously adding that to a C# XNA project would break the XNA functionality. No reason it couldn't be the same for VB.NET projects.
-----------------------------------------------“The best, most affordable way to save the most lives and improve overall health is to increase the number of trained local, primary healthcare workers.”Learn how you can help at www.ghets.org
The Microsoft.VisualBasic namespace contains types that support the Visual Basic Runtime in Visual Basic.

Specifically, it provides features that are needed for vb.net, but that aren't supported by the clr. c# doesn't have an equivalent, because it's designed to use the clr alone, and doesn't need to be backwards compatible to anything. It is the flagship .net language after all. Iron python is another language that uses features not supported by the clr, and hence will be difficult to use on the xbox 360.

edit-

Refer to this blog entry.

Quote:
Q: Can I use this call-a-DLL approach to write Xbox 360 XNA Game Studio Express games for other non-C# CLR languages like Iron Python or Visual Basic?

A: Unfortunately no, not for those two specific languages. (Sorry!) The reason is that the Xbox 360 version of the XNA GSE CLR is based on the .NET Compact Framework 2.0. This is a problem for Iron Python and Visual Basic because those particular languages rely on CLR features that are not present in the .NET Compact Framework 2.0. Therefore you will get a runtime error when you try and run your Iron Python or Visual Basic code on the 360. It's possible that future versions of either the languages or the Xbox 360 GSE runtime will fix this problem. (But don't hold your breath -- nobody has promised anything in these areas. Only C# is officially supported for XNA GSE games.)

Note that this limitation to run on top of the .NET Compact Framework only applies to the Xbox 360 version of your game. Although I have not tried it, I believe that it should be possible to use a variation of the techniques in Part 2 to run Iron Python and/or Visual Basic XNA GSE games on Windows.


To my knowledge that's the most recent news regarding this issue. And it doesn't sound promising. Maybe MS will surprise us and make the changes necessary, but given their lack-lustre library support for vb.net these days, I'm not holding my breath.

[Edited by - gharen2 on June 3, 2007 2:28:43 PM]
Since you didn't mention anything about games, I'd say VB is a great first language. It was my first, and I have to say that it's quite easy to learn. However, I've never tried C#. I moved to C++.

Making your own code is essential to learning any language. Code your own example programs as you progress through your readings.

This topic is closed to new replies.

Advertisement