Hi Hayden, Well, your confusion is do in large part to the fact you are comparing two different meanings of the word runtime. In general the word runtime simply means a dependency or compiled library or executable rrequired by a certain program. This meaning of runtime has absolutely nothing to do with if a programming language is a native programming language or a runtime programming language. As I'm certain what I'm saying has royally confused you let me explain in more detail.
When we talk about programming languages they are generally divided up into three basic catagories: low level, intermediate level, and high level. Each of these have advantages and disadvantages and are used for different applications of programming. First, we have the low level programming languages like Assembly which can be compiled into what we call a native application. What that means is the Assembly code you typed into Notepad is converted to machine language, also called binary, which is simply a huge string of ones and zeros. These ones and zeros, binary, work by sending on/off pulses to the CPU. Every time the state is 1 it is on and every time a 0 is sent that is off. If you string enough of these ones and zeros together you can form words, graphics, music, etc. I'm not going to explain the ins and outs of binary theory, but its enough to say that anything you write in Assembly can be converted directly into machine language your CPU can understand. Therefore it is a native application and is usually very specific to the type of platform and hardware it was designed for. Second, we have the intermediate languages such as C and C++. This is what most developers use today because you can still compile programs into machine language, but the language is a lot easier to understand than Assembly code. It allows for some more abstract ideas such as classes, structures, unions, pointers, etc all that helps the programmer communicate with the computer in something he/she can understand. However, unlike Assembly a C++ compiler breaks the compilation process down into two steps. First it converts C++ into assembly, and then links the Assembly objects into a binary file the CPU can understand. Finally, we have the high level languages where Python, Java, Perl, and the .Net languages come in. These languages are often very readable, very easy to understand, look the most like human speech, but they usually get compiled to what we call an intermediate language. In other words instead of getting a binary file compiled into machine code it is still mostly human readable, and it requires a seperate program, usually written in C++, to execute the code. For example, python.exe, java.exe, perl.exe, etc are native C/C++ applications that simply executes the instructions stored in your Java, Python, or Perl application. These runtime languages are simply that. They require a third-party runtime program like Java, Python, Perl, .Net, etc to be installed to run were a true native C/C++ application can run without any third-party applications. To clarify the point. The Linux kernel, vmlinuz, is written in C. It boots the operating system as well as handles all the low level drivers. It can do that because C doesn't need anything else but itself to run. You couldn't do that with Python, Java, Perl, whatever because you can't convert the code in to machine language. They still require a specific C or C++ application to be installed to run. Now, I am able to answer your question more directly. In the case of something like the Microsoft Visual C++ Runtime they aren't talking about an actual Runtime environment like Java, Python, Perl, etc but a set of dependencies required by apps compiled by Visual C++. The difference here is that if I wanted too I could take my code and compile it with MinGW or some other C++ compiler and never use the MSVC Runtime libraries at all. Those MSVC++ Runtime libraries are just libraries most Windows developers use to access various things when programming Windows apps. That has nothing to do with weather C++ can be compiled to machine language or compiled to an intermediate language the way Java, Python, .Net, etc are. You were quite litterally mixing apples and oranges here from a programming/technical point of view. HTH On 4/25/11, Hayden Presley <hdpres...@hotmail.com> wrote: > HI Thomas, > Something that has confused me is this: obviously I am not following what > "native binary" means but if C++ is not a runtime language then why do you > end up needing to have C++ runtime libraries on your system to run an > application written in C++? > > Best Regards, > Hayden --- Gamers mailing list __ Gamers@audyssey.org If you want to leave the list, send E-mail to gamers-unsubscr...@audyssey.org. You can make changes or update your subscription via the web, at http://audyssey.org/mailman/listinfo/gamers_audyssey.org. All messages are archived and can be searched and read at http://www.mail-archive.com/gamers@audyssey.org. If you have any questions or concerns regarding the management of the list, please send E-mail to gamers-ow...@audyssey.org.