quote:
Originally posted by Nadaka:
<STRONG>Not really... Java, Windows, Linux, OSX, FreeBSD can be and are all virtualized so that their "machine code" can work on a variety of hardware implementations and even run simultaneously on the same cpu. Besides that, there are machines (mostly thesis projects for EE or CS, few/none mass produced) that run java bytecodes as native binary. Take a look at the bytecode specification, its definition is pretty much identical to any other machine language.
An interpreted language combines tokenization, lexan, interpetation and execution all at the same time for each line of code. Java tokenizes, lexans, and interperets the entire class at once during compilation.</STRONG>
Java is virtualised in that the bytecode runs on a 'virtual machine' which interpreted java bytecode into native machine instructions. Windows, Linux, OSX, FreeBSD can be virtualised with programs like VMWare, Qemu, etc.
Also most modern dynamic languages (perl, python, ruby) will compile thier scripts into their own bytecode (perl6 and python will share the same VM called Parrot), and hell Common Lisp can compile code at run time and include it in the running process. Old BASIC interpreters would do all the lexing etc. at run-time, but modern programming languages are considerably more avanced than QBASIC.
Seconding the recommendation for Bloodshed's Dev-C++, which also comes with considerable module support, including an SDL module. You'll need a good STL reference, and of all the C++ books I would recommend Stroustrup because he designed the language, also "Bjarne Stroustrup" is fun to say.
If you go with Java, NetBeans is good for big applications, and Eclipse is a nice IDE for getting Java code up and running quickly.