What is Java? Is it a product?
When Java first appeared on the public radar in 1995, it was heralded as the second coming. To that end the message conveyed by the marketers was at times mixed, and more often than not, wrong. Java was not the answer to everything, it was merely a new computer language that attempted to address some of the problems that previous languages failed to answer or found difficult to solve. It was not a product. It was not something you could buy from your local computer retailer. Java was not the solution, merely a tool.
Never before in the history of languages has one language captured the imagination of the press the way Java has. The reason for this is a little unclear but, as a result, more confusion has built up around Java than any other language. Before long board rooms wanted "a Java solution" before really understanding what it was. When Java first came out, it was previewed within the Netscape (and then IE) browser. It became known as the "little gray rectangle" and, due to early implementations, had to fight the backlash that it was apparently slow. Since 1995, Java has been doing a lot of growing up and this early criticism of speed is no longer applicable.
Who invented Java and why? What was wrong with the other languages available?
You could write a book about the history of Java, but the short-short version is as follows. Around 1990, James Gosling, Patrick Naughton, and Mike Sheridan got together to work on a project - to come up with an alternative to C++ that would address some of the issues associated with this language. At that time all three were working at Sun and, after an initial demonstration of their project to Bill Joy and Scott McNealy, it was decided to spin off a separate company to see if this "Oak" language could be successful in providing Time-Warner with a set-top box operating system. Fortunately, as history dictates, it failed. The project was brought back under the wing of Sun, where after a weekend of legendary coding by Naughton and later additional development by Jonathon Payne, HotJava was born, the first Java-based Web browser.
From there on in the popularity of Java simply grew, capturing the imagination of the development community. The main reason it was an instant hit was its "WORA" claim - Write Once, Run Anywhere. This allowed a developer to develop a single application once and deploy it to many platforms without recompiling/redeveloping a single line of code.
What is this "JVM" acronym I keep seeing around?
Following the answer from the previous question, Java's ability to run anywhere is a result of the way it's designed. When you develop a program in Java, you don't compile to the native platform but to a virtual computer. This virtual computer is where your program will run. When you compile your Java program it's converted to bytecode. It's this bytecode that you can run within the virtual computer. The virtual computer, of course, is so called because it doesn't physically exist. Therefore, a piece of software plays the role of the virtual computer, which is more commonly known as the Java Virtual Machine (JVM). The JVM is a native, specific piece of software that runs on top of a given platform. The Java code then runs on top of that. For example, the JVM for a Solaris machine is different than the JVM for the MS-Windows architecture, but the functionality they provide is the same. This is the key to providing a WORA environment.
What's all the fuss about with respect to Microsoft and Sun?
'Tis a complicated story, but in layman's terms: when Sun licensed the Java source code to Microsoft to allow them to build a JVM for the Windows platform, Microsoft modified it a little to have greater access to some of the Windows-specific components. This modification broke the WORA philosophy and to that end, Sun felt it was no longer Java and wanted Microsoft to restore their JVM to be 100% compliant. Microsoft didn't feel the same. Hence the court case.