JAVA - 'the' language

                The FirstPerson team should be proud of themselves in achieving something that was thought unattainable; a small, simple, robust, architecturally independent, and object oriented programming language; the now-famous JAVA. The original intention to enable the transfer of information over cheap infrared and packet-based networks has turned out to be an ultimate programming language that can run regardless of the specifications of any particular machine, and capture the world wide attention especially those whose lives are a part of the WWW or the Internet. Now, already a world wide phenomenon, JAVA boasts an environment rich enough to support entirely new kinds of applications which are safe enough to be transferred throughout the Web and powerful enough to replace native executable codes. In short, JAVA supplies us with a fast, portable, secure, and platform-independent software, hence opening the opportunity for intelligent applications that can roam the Net for us. Hurrah!

Introducing : JAVA

                As a curious mixture of C++ and Smalltalk, JAVA is easy to learn; it has the syntax of C++ , yet small and easy. It has, however, improved C++ in some important areas; especially in those features that make C++ unsafe and difficult to write/read. The platform - independency which C++ does not share a common feature with JAVA, and the automatic garbage collection are among the other modifications.

General feature of JAVA

Okay, let's breeze through the features of JAVA:

Advantages of JAVA

The special features of JAVA that give it quite an advantage over other languages are as follows:

Compiling JAVA programs

                JAVA avoids the complications to recompile a program on different machines and end up with multiple executable programs for multiple systems (which is expensive in time and compilers) by having the JAVA compiler and JAVA Virtual Machine. Unlike any traditional compiling techniques, JAVA compiler compiles the platform independent source codes into platform independent JAVA bytecodes (Note the platform - independency at both levels!). These bytecodes look a lot like native codes, only that they are not specific to any particular machine. The bytecodes are in turn interpreted and then run by the JAVA Virtual Machine or JAVA interpreter.

traditional programs

JAVA programs

                From this we can see, JAVA gives a compiled program that is not specific to any system, and therefore can be run by any processor, provided that the JAVA Virtual machine is installed in that system (together with a few native libraries). One of the advantages of performing this is that we'll end up with only one executable program that is platform-independent and thus economical and efficient in terms of compilers and program codes. However there is one major drawback of having the JAVA Virtual Machine. Interpreters are, by their very nature slow. System-specific programs run directly on the hardware they are compiled, so they run significantly faster than JAVA bytecodes which must be processed by the interpreter. To overcome this problem, a solution is to have a special tool (called just-in-time or JIT compilers) to convert our JAVA bytecodes into native code and speed up their execution. Yet, JIT does not really eliminate this problem. JIT may speed up any CPU-bound computations, especially in loops, but not the screen paints, because they are typically limited by the speed of the graphics adapter and not by anything happening in the computer's CPU. Nevertheless, by using JIT does generally overcome the speed problem of the JAVA Virtual Machine.

Portability of JAVA

                Being architecturally neutral enables JAVA to overcome the portability problem. This avoids the costly recompiling and the re-written of expensive softwares in order to accommodate programs to specific systems. In the present personal computer market, application writers have to produce versions of their application that are compatible with the IBM PC and with the Apple Macintosh. With the PC market (through Windows/NT) diversifying into many CPU architectures, and Apple moving off the 68000 towards the PowerPC, this makes the production of software that runs on all platforms almost impossible. This problem no longer exist thanks to JAVA, as the same version of the applications can now run on all machines.

JAVA in the WWW

                The World Wide Web is composed of networks, which in turn, are composed of a variety of systems with a variety of CPU and operating system architectures, with some servers. To enable an application to execute anywhere in the networks, we have to ensure that the applications is architecturely - neutral. JAVA is the perfect answer. Now programmers can rest at ease knowing any programs they write can be run without difficulties, free of any specific architecture. Even better, JAVA programs and applets, using bytecodes which is smaller than native codes, can be downloaded with even less times. Also being robust and secure, we can rely on JAVA to be safe against intentional or accidental attack on our systems by misbehaving applets. Not to mention the security JAVA provide to the servers; JAVA allows programs to run on the client system, rather than being dependent on the server, which resulted in prevention of the server from crashing in the case of error, as well as avoiding network congestion, giving a much faster result on applications.

JAVA development environment

                For developing in a JAVA environment, we need a platform-neutral, component architecture for JAVA; to develop or assemble network-aware solutions for heterogeneous hardware and operating system environments - within the enterprise or across the Internet (with reliable and efficient compiler, development and debugging tools). There are several choices in the present market :

LIMBO - an introduction
Back to Main Page