vb or c#?

Miscellaneous Forums/General Discussion/vb or c#?

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

The best advice I can give is to not get hung up on syntax.

Design is syntactically agnostic.

Once you understand what you want the application you're writing to do, you'll find that it's not that difficult to move it from VB to C# to Java to Python to BlitzMax to Delphi and back again.

At that point, the considerations are a matter of personal preference and portability.

If you want to make a career out of software development, being able to move from one language to another is an important skill. For example, if you know VB6 and one of the .Net languages, you'll be in a position to assist a company in migrating their legacy system to a new one in the .Net architecture. The more languages you expose yourself to, the more you'll learn that this part really is the minor worry of software development.

Where I work, there are components written in both C# and VB.Net. While I and most of the people on my team tend to favor C#, there's really not a whole lot of difference in performance that we've seen from the components written in VB.Net.

In fact, if you really want to, you can use VB.Net's runtime functions from within C# (and vice-versa). You just have to import the appropriate name spaces.

As of VS 2005, you can mix projects (aka .dll's) within your solution that are written in either VB.Net or C#.

Vista is going to be based quite a lot around the .Net architecture, so I imagine the game-specific bits have had some focus by the folks at Microsoft. Going the .Net route in that regard will not be steering the wrong way. (incidentally, Delphi 8 will be .Net compliant, and IronPython is being actively developed at Microsoft)

As someone eluded to earlier, the C# runtime name-spaces will be finding it's way to XBox 360, so that option might be attractive to some people.

BlitzMax, Java, Python... are all highly portable languages that provide for some game-development applications. Sun is aggressively trying to get the JVM on the consoles to make Java an attractive game-development platform. The JVM, BlitzMax and Python are already available on all the major computer platforms if PC gaming is your target market.

Someone also mentioned above that Native code generation is an advantage some languages have. .Net certainly has the option to "N-Gen", and has for quite a long time.

Personally, I don't believe that's a strength anymore. JIT compliation's overhead is far lighter than what you lose by distributing native-code. With N-Gen, you restrain your application to a particular CPU (or number of CPU's) and in the case of Linux and OS-X, the o.s.'s kernal.