Environmentfriendly
While scripting and object-oriented programming represent significant new trends, the biggest shift in the past decade has been in the definition of what a programming language actually is. The success of Java and the high hopes that Microsoft is pinning onC# have little to do with the languages themselves (both are really just variations of C++, an object-oriented version of C). What matters most for the success of these languages is that they are embedded in an Internet-friendly software environment.
One of the attractions of Java's environment is a program called the Java Virtual Machine (JVM). Java programs are first compiled into Java byte code, an intermediate language which, unlike machine code, is not computer specific. Applets, which are a type of application written in Java, can be run in their byte code form by the JVM, which works on any computer that has a small piece of software called a “run-time environment” loaded to act as an interpreter. This two-step translation process—first compiling locally for the JVM, and then interpreting on a remote computer—is what has made Java so popular on an Internet that is home to a multitude of “platforms”, ranging from Windows PCs and Macintoshes to Linux and Unix boxes of every type and description.
| “The battle between Java andC# for the hearts and minds of programmers is just the beginning. ”
| Nifty as it is, however, Java does not always live up to its promise of being computer agnostic. “Write once, debug everywhere” is how cynics describe it. Lately, a number of new twists have been added to the Java environment to make it more effective. For example, “just-in-time” compilers ensure that an applet, once translated into machine code, can bypass the byte code on subsequent occasions. This is why features on a web page often respond slowly to the first click, but faster thereafter. The effect of such developments is that the boundary between “Java-the-language” and “Java-the-environment” is slowly but surely being blurred.
|