History of Java

The java programming language is becoming more and more popular each day. It is the language without which one cannot even hope to a land a job these days. But has somebody even wondered 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 not been 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. Anyway, 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 supposed 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. Some bring 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 sought 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 laguages. 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 e.g. 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 advancement 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.

Another important contribution of C++ was the concept of inheritence. 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, e.g 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, e.g. 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 inheritence. 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 hundredes of pointers 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 pointers he created inside his program had taken a life of their own and defy every attempt to predict how the program should behave. 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 inheritence, 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 inheritence, 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 inherience, encapsulation, and polymorphism from C++, while discarding the bad features such as multiple inherience, 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 themselves 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++ they 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 few awkward stuff 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 mackintoshes. Just like other features of java, this was also supposed to be platform independent. This was further necessary because one can put some little GUI on a web page which can be views over the internet. And one cannot 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 just another vague acronyms.

If you would like, you can also visit my home page.

Copyright ? 2003 Gautam Dev. All rights reserved

Riverside Chicago charter limousine .. Lockport Chicago limo O’Hare
In The News:

NASA's Ingenuity helicopter, which flew on Mars in April 2021, became the first aircraft to achieve powered, controlled flight on a planet other than Earth.
Stay up to date on the latest AI technology advancements and learn about the challenges and opportunities AI presents now and for the future.
Thieves who have iPhones can usually detect a hidden AirTag in vehicles they are attempting to steal, and an RFID wallet may not help you.
Genmoji, the latest addition to Apple's Apple Intelligence suite, uses artificial intelligence to generate customized emoji based on text descriptions.
It's easy to find yourself swamped in unread emails. Here are a few simple steps to archiving them and clearing out some of your digital clutter.
Keep your retirement plan safe from data brokers selling your personal information. Kurt the CyberGuy explains how to protect yourself and your retirement.
Turo faces scrutiny after tragic incidents involving rented vehicles, raising questions about security measures and regulatory frameworks.
A Chinese company has developed a spherical, 276-pound law enforcement robot that has been chasing down criminals at impressive speeds.
Here are some powerful online sleuthing tricks you can use to check the credibility of a website, see old pictures of places you've lived and even learn more about your neighbors.
Beware scam calls: Avoid unknown numbers and protect your personal information. Tech expert Kurt “CyberGuy" Knutsson talks about the increasingly common scam.
Tech expert Kurt “CyberGuy" Knutsson helps you crush your New Year's goals with these 12 apps to help you stay on track and succeed.
There are many untapped safeguards and tips you can learn to take your Wi-Fi knowledge to the next level, technology expert Kim Komando shares her tricks.
VPNs ensure privacy; antivirus stops malware. Tech expert Kurt “CyberGuy" Knutsson says both are essential for online security.
Tech expert Kurt “CyberGuy" Knutsson cites a new report that says many people still use weak passwords like "123456," risking their accounts.
Tech expert Kurt “CyberGuy" Knutsson says a tech support scam used a fake Windows Defender pop-up, tricking the victim to call and download software.
Tech expert Kurt “CyberGuy" Knutsson reveals ways to restore accidentally deleted text messages on your Android phone.
A new study says outdoor security camera apps are among the biggest collectors of user data, including phone numbers, payment details and precise location.
In iOS 18.2 and later, Apple's Mail app enhances email management by automatically sorting messages into distinct categories to help find emails faster.
A virtual private network (VPN) allows computer and smartphone users to mask an IP and create a secure, encrypted connection between a device and the internet.
Android 15's latest feature, Private Space, is like a private vault helping to keep your personal or sensitive apps away from prying eyes.
Cybercriminals have more ways than ever to target teenagers; here are some of the most widespread scams and tricks to watch in order to keep your loved ones safe.
Stay up to date on the latest AI technology advancements and learn about the challenges and opportunities AI presents now and for the future.
A humanoid robot named CUE6 has got game. The basketball-playing robot, produced by Toyota, claimed a Guinness World Record for longest shot.
With electronic signatures becoming more common, Kurt the CyberGuy explains how to produce your digital John Hancock for online documents.
Kurt the CyberGuy walks through steps he recommends immediately taking after getting new electronics — like phones or TVs — as gifts this holiday season.

Introduction To ISDN, Part II

In the previous ISDN article, we looked at how and... Read More

Understanding Document Management

The term "document management" and "paperless office" is the subject... Read More

Microsoft Great Plains in Metal Distribution: Implementation & Customization ? Consultant Overview

Microsoft Business Solutions Great Plains serves to the wide spectrum... Read More

EDI: Electronic Document Interchange for Microsoft Great Plains ? Overview for Software Developer/Pr

Microsoft Great Plains - Microsoft Business Solutions accounting and ERP... Read More

Microsoft Great Plains: Getting New Users Licenses ? Annual Service Plan FAQ

Microsoft Business Solutions Great Plains, Solomon, Navision, Axapta, Microsoft CRM... Read More

Microsoft Axapta, Navision or Great Plains: ERP Selection for Large Corporation

If you would like to pick something from Microsoft, or... Read More

Microsoft Great Plains, Navision, Axapta ? Selection Considerations

During the years of our consulting practice, which comes back... Read More

Popular Fleet Maintenance Programs

Some companies that are in need of fleet management may... Read More

Open Source Concepts: Dual Licensing Explained

We were recently faced with a decision: either to let... Read More

Partitioning, Formatting and Reinstalling in Windows 98

Formatting and reinstalling windows 98 is very easy if you... Read More

Reduce Pop-ups and Annoying Ads

There is many things more frustrating than surfing a website... Read More

Cisco Certification: Five Things To Do DURING Your CCNA Exam

There are plenty of articles out there about how to... Read More

A Case Study on Selecting Contract Management Software

Professional services firm cuts costs and improves productivity with integrated... Read More

Microsoft CRM Integration with IBM Lotus Notes Domino ? Machinery Dealership Example

IBM Lotus Notes with Domino email server is traditional document... Read More

About Microsoft Sysprep (System Preparation) Utility (Windows 2000)

The Microsoft system preparation utility for Windows 2000 is a... Read More

IT Department Skills to Support Microsoft Great Plains and Microsoft CRM

Microsoft Great Plains as ERP and Microsoft CRM as... Read More

Falling in Love With More Than One Screensaver: The Fun Part

Having from five to ten and more favorite screensavers is... Read More

eConnect: eCommerce Development for Microsoft Great Plains

Microsoft Business Solutions Great Plains has several options to enable... Read More

Accounts Payable: A Powerful Document Management and Workflow Solution

Accounts payable is just one area of office management where... Read More

PHP On-The-Fly!

IntroductionPHP can be used for a lot of different things,... Read More

Microsoft CRM: Data Conversion ? Import from Act!

Best Software Act! is very popular CRM for small and... Read More

Cisco Certification: Introduction To ISDN, Part IV

In part III of this ISDN primer, we learned that... Read More

Groupware: What Works the Way Businesses Do?

GroupwareThe internet is full of 1.5 million to 7 million... Read More

Does Microsoft have any real competition?

Does Microsoft Have any Real Competition? Copyright (c) 2003 Gregory... Read More

Getting Technical Support Help Online

Sometimes your PC will start acting strange for no apparent... Read More

Lincoln Stretch rentals Lake Villa ..