Most common programming language to date?

Started by
25 comments, last by Arild Fines 17 years, 12 months ago
Hi, I want to start learning a programming language but theres so many, I don't know where to begin. I know a little bit of Visual Basic and C++(pfft like a hello world program) and i'm not sure which I want to get serious about learning. And then there .net C++ and VB, I don't even know the difference between normal C++ and .net, if there is which is better to learn...? So I was wondering what the best programming language is now-a-days, and what kind of programming languages do the big game developers use, and what will they use in the future. Also if someone could explain what the difference .net C++ and normal C++ is? I know Visual C++ 6.0 is normal C++, and then that new 8.0 Express is .net or something... Sorry if this is the wrong section. Thanks
Advertisement
Quote:
I know Visual C++ 6.0 is normal C++

WRONG, Visual C++ 6.0 was released before the FIRST C++ standard and therefore is very non-standard. It has so many problems that you shouldn't count on having any standard code compile with Visual C++ 6.0. The .Net in the newer versions just refers to the ABILITY to use .Net, you can still use native (normal) C++. Nowadays most people use C++, but I think we will soon see a shift in which programming language we use. Languages like C++ weren't build for concurrency, and concurrency will be a very big thing in the next couple of decades. I say Microsoft will get some new language out which will become mainstream. They are already developing stuff like:
C#
Polyphonic C# (addresses concurrency issues)
Cω (Comega)
And I believe they are developing more, of course there is also languages like VB and VB.Net, but I doubt they will take over in the game industry. Of course no one knows what will happen, and we might all be switching back to ADA and start using computers with bytes of 3.5 bits.

What the big game developers use, what the future languages will be and what a beginner should start with is very different questions though. A beginner should start learning how to program, this can be done in any programming language, though some languages are better suited for beginners than other. I would suggest you to look into Python, maybe get the free e-book (it's legal) called Learning computer science with Python or something like that. The last thing you should do though is to get Visual C++ 6.0, it's about as outdated as Windows 3.1.
Whatever the compiler is, C++ usually codes more or less the same. While it's true that VC++ 6.0 is not 100% ANSI C++ compliant, a lot of common code exists. The adjustments to convert 6.0 code to .net code are minimal in my experience. Plus, learning 6.0 before or after .net will give you an understanding about how to write portable code. On numerous occasions, I've had to port between the two and each occasion was educational. :)

I would also recommend using .NET if you are able to, however, if like many other people, you only have access to 6.0, don't fret too much about it.
Well, I could use Visual C++ 2005 Express, as its free atm, in beta. But maybe it would be better to start with a basic compiler such as dev++, from bloodshed? Hmmm, or use python like suggested. Gah, why can't there be 1 programming language. ;-; Thanks for your input, would be nice to get some more.
"Best programming language" is a loaded term. Different languages are good at different things. The most common for game development is C++. Many tools (map editors and such) are starting to get written in C#,and I'd guess C# will start becoming common for games in 4-5 years.

.net isn't a programming language it's (please correct any mistakes here, I'm not well versed in .net) more of a bunch of librarys and a virtual machine (much like the Java VM). Many languages work on it, but C# was designed for it.

Most games are written in two languages an engine language (handles resources, input, rendering, etc) and a scripting language (which handles game logic). The most common 2 scripting languages (as far as I know) are LUA and Python.

By .net C++ I assume you mean managed C++. This wikipedia article explains the differences better than I can. Basically the executable runs off of the .net virtual machine and has garbage collection. From what I've heard it's generally better just to use C# over managed C++.

Visual C++ 6.0 is prestandard C++, so it's a bad choice for a compiler (It has the wrong includes and has numerous template problems). 8.0 can handle standard C++ just fine (and managed C++ and C#, among others, depending on which edition you get).

In my opinion you should start with another language (python is a popular choice), before wrestling with C++'s syntax (Some of the most common problems I see in the beginners section are people not understanding C++'s rather complicated syntax). So I would suggesting going with python (and pygame) for a while to get comfortable with how to design games. Then move on to something like C++, and then you can use python as your scripting language (so you don't like learning python was a waste). But any half decent programmer can pick up a new language with out too much trouble and learning multiple languages can be extremely helpful in thinking of different solutions to problems.
Get VS 2005 Standard Edition for free (not a beta). The IDE is the best in the business, as is the compiler. Porting between VS2005 (VS8) and gcc, etc., is much easier than it used to be (VC6 had limited template support, for example). Learn C++ and C#. Since you are just starting out, start with C#, then move to C++ (harder to learn, more error prone, but generates the fastest code possible* (including inline assembler, etc., which you can't do in C#).

Another reason I recommend C# is the (amazingly) fast compiler and the ability to make code changes while debugging. While python and other scripting languages have their uses, I would not recommend them (slower, primitive tools compared to C# with MS's IDE, unusual syntax/formating).

Add Whole Tomato's Visual Assist X (VAX), and you have an excellent, fast, and easy to use development environment. When using VAX (not the old mainframe), you'll rarely have an uncorrected typo before compiling, and it's much easier to reverse engineer/learn unknown code (global symbol searching, header/cpp swapping, much more. See their website).

See The Great Language Shootout for more languages (compare design philosophy, simplicity-vs-speed, etc.).


*In the past, Intel C and VectorWorks C could produce faster code for some cases (may still be true).
Quote:Original post by John Schultz
Get VS 2005 Standard Edition for free (not a beta). The IDE is the best in the business, as is the compiler. Porting between VS2005 (VS8) and gcc, etc., is much easier than it used to be (VC6 had limited template support, for example). Learn C++ and C#. Since you are just starting out, start with C#, then move to C++ (harder to learn, more error prone, but results in the fastest code possible (including inline assembler, etc., which you can't do in C#).

Another reason I recommend C# is the (amazingly) fast compiler and the ability to make code chanes while debugging. While python and other scripting languages have their uses, I would not recommend them (slower, primitive tools compared to C# with MS's IDE, unusual syntax/formating).

Add Whole Tomato's Visual Assist X (VAX), and you have an excellent, fast, and easy to use development environment. When using VAX (not the old mainframe), you'll rarely have an uncorrected typo before compiling, and it's much easier to reverse engineer/learn unknown code (global symbol searching, header/cpp swapping, much more. See their website).


Cool, I can't quite find the download url for the standard edition, rather this, then some beta. I'll have to look into python as well.

Someone said that C# was going to be used more later in the future, but i thought C++ had everything C# does and more... can anyone clarify?

(This is the opener... to lazy to login)
Quote:Original post by Anonymous Poster
Cool, I can't quite find the download url for the standard edition, rather this, then some beta. I'll have to look into python as well.

Someone said that C# was going to be used more later in the future, but i thought C++ had everything C# does and more... can anyone clarify?

(This is the opener... to lazy to login)


Don't use python to start out; C# is a far better language for application development.

C# is "brand new" compared to C++ and python (python is interpreted; is a scripting language, not in the same class as C++ and C# (in same class as Lua, Perl, etc., see the Language Shootout page for performance comparisons).

C# is basically an improved version of C++ and Java (written/led by the same developer who created Delphi (also used to create C++ Builder), two of the best RAD development environments ever made (VB was also a pretty good RAD tool)).

The only reason you'd want to use C++ is for legacy code support, portability (C# is becoming more portable through Mono, etc.), speed, and team language familiarity (though moving from C++ to C# is pretty easy (moving from C# to C++ will be much harder).

From the link above, you'll find that you will get the free version of Visual Studio Standard in the mail (see the thread for more info).
Quote:Original post by John Schultz
Quote:Original post by Anonymous Poster
Cool, I can't quite find the download url for the standard edition, rather this, then some beta. I'll have to look into python as well.

Someone said that C# was going to be used more later in the future, but i thought C++ had everything C# does and more... can anyone clarify?

(This is the opener... to lazy to login)


Don't use python to start out; C# is a far better language for application development.

C# is "brand new" compared to C++ and python (python is interpreted; is a scripting language, not in the same class as C++ and C# (in same class as Lua, Perl, etc., see the Language Shootout page for performance comparisons).

C# is basically an improved version of C++ and Java (IIRC written/led by the same developer who created Delphi (and perhaps C++ builder), two of the best RAD development environments ever made (VB was also a pretty good RAD tool)).

From the link above, you'll find that you will get the free version of Visual Studio Standard in the mail (see the thread for more info).



So, C# is better for applications, and python and lua for game part like DirectX? Or is C# the better choice in both cases.

thx
Quote:Original post by Anonymous Poster
Quote:Original post by John Schultz
Quote:Original post by Anonymous Poster
Cool, I can't quite find the download url for the standard edition, rather this, then some beta. I'll have to look into python as well.

Someone said that C# was going to be used more later in the future, but i thought C++ had everything C# does and more... can anyone clarify?

(This is the opener... to lazy to login)


Don't use python to start out; C# is a far better language for application development.

C# is "brand new" compared to C++ and python (python is interpreted; is a scripting language, not in the same class as C++ and C# (in same class as Lua, Perl, etc., see the Language Shootout page for performance comparisons).

C# is basically an improved version of C++ and Java (IIRC written/led by the same developer who created Delphi (and perhaps C++ builder), two of the best RAD development environments ever made (VB was also a pretty good RAD tool)).

From the link above, you'll find that you will get the free version of Visual Studio Standard in the mail (see the thread for more info).



So, C# is better for applications, and python and lua for game part like DirectX? Or is C# the better choice in both cases.

thx


If you can use C#, there's probably no reason to use python or lua (you can dynamically compile C# (there is even a DirectX example showing how to do this).

If I had to choose between python and lua for a scripting language, I'd chose Squirrel with SqPlus (similar to lua, but improved design+syntax).

Using C# directly with DirectX is about as fast+easy to develop+debug as is currently possible. The only potential drawback is runtime speed (could put speed critical code in .dlls interfaced with Managed C++ (not for beginners; must known both C# and C++ reasonably well)). For learning game programming, C# should be plenty fast (the benefits outweigh any performance issues).

This topic is closed to new replies.

Advertisement