Java is a computer programming language developed by Sun Microsystems. The intent of Java's developers was to create a full featured language that created compact code, could run on a variety of platforms, had powerful built-in networking functions, and would be fully object-oriented.
An object-oriented language, for those of you who are not programmers, is based on code divided into functional objects rather than organized procedurally. In a procedural language, such as C, we tell the computer "first do this, then do this, then do that." The object-oriented approach says "here is an object; it has such-and-so properties and it can interact with other objects in these ways." By creating groups of objects that interact, we can build a program.
There are several advantages to the object-oriented approach. Objects, once created, are portable. That is, they can be lifted out of a program and used in another program. This reusability cuts down on development time. Also, using objects creates "encapsulation." This means that code associated with a particular function within a program is all contained within one object. Other objects in the program know nothing about how this function is performed. If there is a problem with the function, the programmer knows that the problem is in that one object and doesn't have to search though the entire program for bits of code which are contributing to the problem. Also, if the programmer wishes to change the way that the function is carried out, he need only work with the one object. The rest of the program will require no modification.
Most programming languages are compiled into machine code, which is interpreted directly by the CPU. The program must be written for a specific CPU, and may require extensive modification to run on a different CPU. In contrast, Java is compiled into "bytecode" which is interpreted by a Java Virtual Machine. A Java virtual machine is a program which acts as a middleman between the Java code and the CPU. This allows Java code to execute on any CPU for which there is a virtual machine.
Theoretically, the use of the virtual machine allows Java programmers, in the words of Java's creators, to "write once, run anywhere." In practice, the various virtual machines (VMs) are in different stages of development, and each has its own set of bugs. A program which executes properly on one VM, may have problems on another VM. This requires that Java developers must test their code on all the VMs they want their program to be able to run on. As one wry programmer put it, they must "write once, debug everywhere." As Java develops and stabilizes as a language, these problems should disappear, but currently this does create problems.
Java has a lot of built-in networking savvy, making it a very good language for use on the world wide web. One very useful aspect of this is the Java "Applet." An Applet is a small program which runs inside a web browser. The Applet code is downloaded like any other web page, and runs on the client machine. Applets have a built-in security feature known as the "sandbox." This means that the Applet is contained as to what it can do on the host computer. It cannot read or write files on the host, and any new windows opened by the applet are clearly labeled as applet windows. Applets can also be signed to verify there origin. These features protect the user of the applet from having data on their computer corrupted by a hostle applet, or being scammed by one.
Because of these, and other features, Java is one of the fastest growing programming languages in the world today. To find out more about Java, you should visit Sun Microsystem's Java site.
Sun and Java are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.