The java programming language is becoming more and more popular each day. It is the language without which one can not even hope to a land a job these
days. But has someone even surprised how this language came about? There are many stories about, many books have been written. Here is my version (not approved by Sun Microsystems).
The java programming language originated in Indonesia. It was meant to be used
by the tourists that visit that country each year. Why would tourists want to use computer? Well, these are no ordinary tourists. They are rich tourists. Have
they were not rich, they would not travel half way around the world to visit this
place. Most people would be content to see just what is available near by. For
example, if you are a texan living in Dallas, you will visit the stockyards or may be the
trinity river park. If you live in New Orleans area, you would see st. mary's
bayou. Once in your lifetime, one will probably visit Hawaii or Niagara. But
going to Indonesia and its islands, Bali, Java, etc is not for the ordinary
people. Anyways, coming back to the question why these tourists need to use
computer programs. They go there not just to have fun and also get some work
done in a fun atmosphere as these people are very important people.
From the very start java was supposedly to be computer independent. That means if
you write a program in java in one computer, it should run in all computers.
This was necessary because tourists bring all kinds of computers with them.
Windows machine, some Apple mackintosh. Some of the affluent ones bring
Sun server workstations or even a super computer.
Before starting to create java they also saw to see if there have similar
stuff done already. Even though they could find none, they found they can use
lots of feature from some existing languages. One such language they found was C ++. C ++ was an advancement over the language called C. In fact, ideas of
C ++ was already hidden in C. In that language, one can increment a variable,
say i, by applying the ++ operator eg i ++. This would increase the value of
the variable i by one. If i had a value of 5, it would make it 6, etc.
What a vision!
Anyway, coming back to C ++, it made an important improvement over C by introducing the idea of a class. To understand class, one has to undestand
structure which was already used in C. The structure is a group of variables.
For example, you have a name, an address, age etc. for any person. In stead of
using them separately, in C one can group them together and call it a person.
The creator of C ++ said there is no need to expose these variables (name, address, etc) to the outside world. They said these details should be hidden
from the outside world. They called this concept encapsulation.
contribution of C ++ was the concept of inheritance. This concept can be best
explained by example. Let's go back to the example of the person. A person is
very general concept. There can be many different kinds of persons, eg doctors,
lawyers, teachers, or just a bum! But each of these people have a name, an address, age etc. Even a bum has all these. The creator of C ++ thought one can
define a base class call person and other classes can be derived from it. In
plain english, this would mean, a doctor is special kind of person, lawyer is
another special kind of person. Now the common attributes of all these kinds of people can be put in
the person class and special attributes can be put in the derived classes, eg
hospital for the doctor, court for the lawyer, and nothing for the bum.
But C ++ was still complex with things like pointers, memory leak and multiple
inheritance. The pointer
concept was taken from C and it was very messy! The pointer is special type of variable
that points to other variables. Since there was no guidelines as to how to use
these pointers, it was very easy loose track of them. In a typical two thousand lines program, one would frequently end up with hundred of points pointing
to thousands, some of them are pointers and some just plain variables. Needless
to say this made a large program extremely difficult to read and when the
programmer left for another company, they would have no other choice than
to just throw away his program! It was sometimes necessary to do this even
when the programmer was around and very much alive. This is because the points he created inside his program had taken a life of their own and defy
every attempt to predict how the program should be.
Memory management was also another weak point of C and C ++. The programmer was
responsible for cleaning up the memory their program would allocate and use.
Failure to do so will result in a crash of the whole computer.
Multiple inheritance, though sparingly used, was
another feature of C ++ which made a programmer's life miserable. It, however,
had its use, especially in job interviews. This one question, they thought,
helped them separate the wheat from the chaff.
But C ++ still had some nice and simple features, like inheritance, encapsulation, etc. They are something one can describe in plain english,
something one can explain to a layman. So the creator of java decided to take
the good features of inheritance, encapsulation, and polymorphism from C ++,
while discarding the bad features such as multiple inheritience, pointers etc.
The memory management was
improved in java where the programmer will not be held responsible for memory management. They
can clean up after them if they want to get extra credit, but they do not
need to. Needless to say all these was great news to the tourists in Indonesia!
Java introduced lot of clarity in notations too. For example, in C ++ them
would say class doctor: person to mean doctor is derived from person.
It is obviously very cryptic. The same situation can be expressed
in java as class doctor extends person , which is much easier to understand. But there are a few awkward things in java too especially when someone
says class bum extends person (my last bum joke)!
Java made an important contribution in the graphical user interface (GUI) area.
C ++ was really lacking in expertise here. They visual C ++, but worked only on
windows environment. But it did not work in UNIX systems or mackintheses. Just
like other features of java, this was also supposedly to be platform independent.
This was further necessary because one can put some little GUI on a web page which can be viewed over the internet. And one can not control what kind of computers other will have.
After a while, it was necessary to call programs from one computer to another
computer. To do this, they created J2EE . I am not sure how they came
up with the name J2EE. The 'J' of J2EE, of course, means "Java", and I can be
reasonably sure '2' stands for 'To'. But I do not know what the 'EE' part is all
about, probably some kind of extension.
Or at this point they ran out of names to think of. So they decided to
have one of those j ust a nother v ague a cronyms.
If you would like, you can also visit my home page .
Copyright © 2003 Gautam Dev. All rights reserved