What is Java? 
by Ray Lopez

Java is:
    a. another word for coffee
    b. that fat worm guy in "Star Wars"
    c. an object-oriented programming language that has caught the Internet by storm.

If you answered "a" to the question above, you are normal. An answer of "b" means that you have fried your brain with too much late-night television.

 It is the thrid answer to the question that we are going to be focusing on in this article. Java is indeed a new programming language that has captured a lot of attention in the Internet community. The two primary issues I wish to address here are: 1) what exactly is Java, and; 2) why has it attracted so much attention. The bottom line to Java is that it is a programming language that allows you to write applications that will execute across networks on systems that you don't even know about. This sort of portability is of obvious importance to people interested in writing applications for use on the Internet.


Java is just a programming language, nothing more. This answer often surprises some, simply because of the fact that Java has gained so much noteriety on the Internet. As a progrmming language, Java is similar to C and C++. So, if you know how to do object-oriented programming in C and C++, then you already have a pretty good idea as to how to do things in Java. Java was invented at Sun Microsystems. Their information paper on Java starts off with this definition of the programming language:  Java: A simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high- performance, multithreaded, and dynamic language. Java is pretty simple to learn. The only problem comes with the object- oriented part. Object oriented programming languages like Java, C++, or Delphi, rely on the use of (you guessed it) objects. Objects are chunks of code that have built within them procedures for carrying out tasks and the data storage constructs used to hold the data that the procedures are working on. 

This is in contrast to the traditional, non-object-oriented way of programming, in which a programmer builds and uses procedures and data structures as separate entities. Objects are organized in a heirarchy of classes, and can spawn "children" and have "parents." The biggest challenge to learning Java (IMHO) isovercoming the learning curve associated with object-oriented programming concepts. Aside from thatlearning Java is not all that difficult.

 Java is also a distributed programming language, meaning that it can operate across networks. Telling a Java program to transmit itself to another machine on a network and to then work with data sitting on yet a third machine on a network is no problem at all, even across a network of networks such as the Internet. The distributed nature of Java also means that it is architecture neutral. This simply means that the programming language is designed to execute on most any modern day computing platform. 

One of the more important aspects of the Java language is that it was designed from the ground up as a secure programming language. What does "secure" mean? Think for a moment about what happens when you are surfing the net, and a Java applet loads itself into your web browser, and starts running: you have just allowed some foreign program to install itself to your system and execute! Imagine the sorts of problems that could arise if some malicious programmer wrote a hostile Java applet that, say, reformatted your hard drive. Fortunately, this possibility is remote at best. 

Java was designed with many safeguards that essentially allow it to run within some very tightly controlled confines. For example, Java does not have many of the fundamental tools for manipulating a computer's memory that you would find in a language like C. Also, Java is an interpreted language, meaning that the Java code that runs on your system is read, checked, then verified as authentic Java code before it is allowed to run on your system.


Probably the quickest way to dive into the guts of Java programming is to go to the web site (http://www.javasoft.com) that Sun Microsystems has set up as the home of the Java Developer's Kit (JDK). You can actually download the latest version of the JDK and all supporting documentation and you will have a complete Java development system. Keep in mind that the JDK is not quite the easiest way to start programming in Java. If you decide to go this route (or even if you don't), I would recommend an excellent book called Java In A Nutshell, by David Flanagan. 

There are a number of more user-friendly, visual development tools available from third-party developers that make using Java a whole lot easier. Microsoft has produces one such tool called Visual J++. One of the nice things about Visual J++ is that it also integrates with ActiveX, another development tool that is in competition with Java. Symantec produces a Java development tool called Café, my personal favorite, since it let's you easily tinker with the Java code you are building, if you so desire. Another excellent tool that I use for quick little Java applets is called Jamba, put out by Aimtech. Jamba comes with a nifty little theme song that plays while the software installs, and reverberates through your brain for about a week afterwards.

 Most of what people are hearing about Java revolves around web pages, Indeed, the third party development tools I described above are aimed primarily at web page authors who are looking to use Java to spice up their web sites. However, you can use Java to write full blown applications. There are already a lot of start-up companies out there producing word-processors, spreadsheet software, and even web servers, all written entirely in Java. 

I personally use an excellent web site analysis tool called the Bazaar Analyzer (Aquas, Inc.) that is written in Java. It will run on any platform and analyze the output of any web server, and allow you to view that analysis on any Java-capable web browser. Applications are to be distinguished from applets, which are the cute little programs that you see on web pages, and need to run in a web browser environment. If you want to write Java applications, then you would probably do best to obtain the JDK from Sun, and learn that well. 

To sum up, Java is just another programming language, but it has many features that allow it to run on networks. Since the Internet has grown to be so popular over the last couple of years, so too has Java. Getting started with Java is not at all difficult. No matter which development tool you choose, it shouldn't take you too long to produce your first Java applet, and not too long after that before you are spicing up your web pages with Java!

 Dr. Ray Lopez is very obviously a computer nerd and really should get a life. Originally trained as a psychologist, he now owns his own software consulting firm in San Antonio, L Comm, Inc.