Java enables a programmer to include dynamic images, sound, animation and interactivity with three-dimensional graphics.
Java is a compiled and interpreted language. A Java compiler generates bytecodes that are completely portable. The programmer can run the bytecodes on another machine, providing the Java interpreter exists for that machine. The Java interpreter on the target machine interprets the bytecode. Sure, it makes applications written in Java slower than those compiled into native code by compilers, but Just in Time (JIT) compilers are available at a low cost. JIT compiles the Java bytecode into native code before executing it, making it faster. Among the many attractive characteristics of Java is the simplicity of the language due to the automatic garbage collection. A Java programmer does not need to keep track of memory allocations and memory leakage.
There are two types of Java programs that can be developed. A Java program can be a stand-alone application or an applet, which can be embedded into hypertext markup language (HTML) and viewed through a Java-enabled browser such as Netscape 2.0 or higher. It is the latter that makes Java a very popular programming language. A Java-enabled browser downloads bytecodes from the Web page server and runs them on the client's machines. Because Java bytecodes are completely portable, the applet programmers do not have to include their source code in their Web pages.
But the distributed use of Java applets also raises security issues. If Java applets were allowed unrestricted access to client machines, it would be possible for someone to write an applet that reads files from a client's local disk, and sends the content back to its host, or even deletes files on the client's local disk. This potential security problem with Java is addressed by the Java security manager, which restricts an applet's access to the local disk and permits the applet to open a connection only with the originating machine. But the flaws have been detected in this security manager, which allow the development of hostile applets that are able to cheat the security manager and do harm to a client's machine. The site http://www.cs.princeton.edu/sip may be visited for further details on the most recent Java security flaw. However, as such flaws are uncovered, Sun Corporation works to remedy concerns related to security.
The World Wide Web is a good source of information. This information in most cases is in the form of static text and still images. Java enables a programmer to include dynamic images, sound, animation and interactivity with three-dimensional graphics. Since the release of the first Java Development Kit in the fall of 1995, Java has become useful in many areas. For example, in the area of education, many applets have been developed; the following URL may be visited for further details: http://www.developer.com/directories/pages/dir.java.educational.html. International Business Machines (http://www.ibm.com/java) has adapted a very well organized Java strategy and their visual tool named Visual Age for Java is one of the best tools for developers.
If you would like to learn more about the strengths and weaknesses of Java or get started on Java programming, the Visualization Group conducts a series of Java seminars each semester. To learn more and register for these seminars, visit http://cac.psu.edu/training. Another valuable resource at The Pennsylvania State University is the Java User Group (JUG). JUG was founded to help the community at The Pennsylvania State University learn more about Java and share ideas. Meetings are scheduled every eight weeks during semesters. If you are interested in joining the JUG, you may send e-mail to firstname.lastname@example.org.
There are many visual tools to assist a Java programmer and cut down on development time. The following five Java visual tools are widely used in the Java industry and educational community:
If you would like to know more details about these different tools and their pros and cons then you may register in the CAC seminar entitled Java Visual Tools that can be found unde http://cac.psu.edu/training.
An exciting area of interest for C programmers is the combination of Java and C programming languages. This combination is possible through the use of the javah command. The command javah generates the C header files, as well as a .c file that gets compiled with the C source code and helps the two languages connect in the call stack. The C methods that Java will use in the program must be declared in such a way that the Java runtime knows these methods are implemented in C language. This combination of Java and C is very useful to C programmers who have developed sophisticated math or graphics. However, many of the powerful advantages of Java such as platform independence, garbage collection and verifiable code are lost. Obviously this combination applies only to stand-alone applications. Java and C are different worlds. Java expects classes; C wants structures. Java also expects to load code dynamically and resolves references at runtime.
A new and exciting area which is under investigation in the Visualization Group is the combination of Java and Virtual Reality Markup Language (VRML). Although three dimensional graphics classes are emerging from the Java research team at Sun Microsystems http://www.sun.com/desktop/java3d/ , Java is very immature in comparison with the well-established VRML in the field of computer graphics. If you would like more information about this field, then you are encouraged to send e-mail to email@example.com.
Java's future is cautiously optimistic. The original intention of James Gosling and his research team was to design a computer language that would save time for the system administrator/programmer, who could write once and run everywhere. Others found that there is a good future in importing Java into other fields of computer applications (computer graphics, numerical techniques, database design and many other areas). There is currently a large-scale debate taking place in the technical and scientific community regarding using Java for high performance computing (HPC). Gosling did not have this area in mind when he and his associates at Sun Microsystems started designing the language of the next millennium.
The National Institute of Standards and Technology (NIST) and the Math Works have released six Java classes combined into a package named Java Matrix Package (JAMA). JAMA provides the fundamental manipulation of real, dense matrices. In the opinion of the author, before any serious numerical work is to be done in Java, Sun Micro Systems should finish their work on improving/modifying the floating-point operations, complex numbers and arrays.
There is no wasted time in learning the Java language: language that is simple, secure, multithreaded, dynamic, small, standard, and most importantly, platform independent. Java has truly transformed the web for the better. One would do well to listen to these words of wisdom from the sixteenth century, "No one can understand the truth until he/she drinks of coffee's (Java's) frothy goodness."
Abdul H. Aziz,