Alrighty, time for a "megaburnistic" post. As you all know i originally planned for Openlancer to be programmed primarily in VB.net and simply use any other .net language as an add-on. Because of the recent reforms to the project, the question of "which programming language do we use?" is up for grabs once again. In this post i will outline the pros and cons of both languages and give you 4 possible programming scenarios.
VB.net
PROS: Visual Basic is by far one of the easiest languages to learn, and is also rather powerful for a BASIC-based language. It allows for a lot of advanced functions in an easy-to-learn environment. Its also easier to work with, is more forgiving, has better intelli-sense than any other language, and is generally easy and quick to program in. VB.net applications or programs are usually made almost twice as fast as a C++ program is made, with the same functionality. If we are going to get any new programmers, this is the language they will be learning. Also, a recent "VB Express 2005" development environment is availible for FREE! This goes for all .net languages and the day is ripe for new learners! I highly reccomend this series of development environments for professionals as well.
CONS: Lets face it: VB.net is not that fastest thing on earth. C++ is marginally faster, although the .net framework evens out the differences a bit. Visual Basic is also not quite as powerful as C++ and C++ is much better suited to graphics and games in general. Visual Basic was never really meant for making games, although many people have set out, and succeeded, in proving that it can be used in games. OVerall the main disadvantage that we will be looking at is the speed deficit.
C++
PROS: C++ is the fastest language out there and the most powerful language (excluding assembly code, which shouldn't even be classified as human-readable). Its main advantage over Vb is speed. C++ is faster than visual basic and is able to better interface with DirectX. It usually has better graphics engines as well. Um, thats it really. More powerful and Speedier.
CONS: C++ has one big disadvantage: Its difficult to use. It has an enormous learning curve, is confusing, and is a pain in the but to use. It may be faster but it is hindered by its extremely low, or even nonexistant ease-of-use. A large amount of the general community would be cut off from this part. Visual basic is simple enough that you can usually use a bit of common sense to change a few variables. C++ is gibberish.
Possible Setups
1. VB.net engine/C++ combo: With this, the main game engine is programmed in VB.net, although a large majority of modules are written in C++ or VB.net. The advantage to this setup is that normal people or people with little programming experience should be able to edit the main game engine without too much trouble. the disadvantage is, of course, speed.
2. C++ engine/VB.net combo: This setup is a core engine run by C++ with various VB.net modules, although a large portion would probably still be coded in C++. Advantage: Speed and adaptability. With a C++ core we can have very high speeds and a large amount of adaptability while still having modules written in VB. Unfortunatly, this pretty much puts the core of our game off-limits to the casual modder. Plus i'd have to learn C++, and that sucks

3. Total VB.net: This stipulates that the entire game, including modules and add-ons, should be written in VB.net and no other language. This is stupid, becuase we are bound to need a lot of C++ support. Not reccommended
4. Total C++: While this is the most "professional" and speedy of the options, it is also the most limiting. The casual modder would stand no chance of editing the game engine or any of this modules. And i don't want to learn C++

Over all, my prefence for these would be 1, 2, 4, 3, in order of how much i like them.
C# Examination
C# is another language thats entering the playfield and i consider it to be another iteration of C that leans more toward Visual Basic. I have learned the basics of it and i believe it is a nice language, one that takes the best from both C++ and Vb.net, although its still very new. The possibility of C# modules should be considered and i see nothing wrong with having some C# modules in out game. A C# game engine, however, is strongly discouraged for the fact that not too many people know C# and i'm not sure of its capabilities.
We should be sure to keep C# on the drawing board, however.
Conclusion
Well, i hope you liked my overview of the programming languages and i hope that we can figure out which one we are going to use.