Java™ is a programming language and computing environment that simplifies cross-platform software implementation. Java software can run on any system that is equipped with the Java virtual machine, a software environment that emulates a theoretical computer processor. Prior to the development of Java, most software applications had to be modified (either recompiled or completely rewritten) before they could be run on a new platform. This made cross-platform software more costly, limited the availability of software for unconventional platforms and prevented standardized integration of software within web sites. Java revolutionized cross-platform software development by bridging the gap between devices that would otherwise be incompatible. Instead of customizing each new software program to run on various different platforms, only the Java virtual machine had to be customized to the underlying platform. In the early 1990s, Sun Microsystems began developing a new software framework that the company hoped would support the next generation of smart appliances. James Gosling, a software engineer from Calgary, was selected to lead the project. He had received his undergraduate degree in computer science from the University of Calgary in 1977 and later completed a PhD at Carnegie Mellon University. Gosling quickly decided that the new software would have to be platform-independent in order to support the diverse range of embedded hardware on which the framework was expected to run. Gosling derived the idea for the Java virtual machine framework from UCSD Pascal, a programming language he had worked with during his graduate studies. Instead of compiling directly to machine code (instructions that are specific to a particular computing platform), UCSD Pascal source code was compiled to an intermediate language know as p-code. The p-code was then executed by an interpreter (software that converted the p-code to machine code on the fly), so that the software could be run on various different platforms without modification, so long as a suitable interpreter existed. Gosling’s university computer didn’t have a UCSD Pascal interpreter, so he created one. The team originally considered using the C++ language for the new framework. However, many of the engineers had become frustrated with that language’s complexity and inadequate security provisions. Gosling was also concerned that the language would be too inefficient for the limited resources available to the embedded systems the project was targeting. He initially attempted to modify the C++ language to address these deficiencies, eventually abandoning this approach in favour of creating a new language with a familiar C/C++ style of notation. Significant portions of the framework were running by 1993 (including the programming language) and the team began to shift focus. After several attempts to introduce the technology into interactive set-top TV boxes, it became apparent that Java’s future was in the Internet. Recently introduced graphical web browsers were changing the Internet from a text-based resource to an interactive user environment, and Java’s platform independence made it the ideal framework to host the new content. The refocused Java framework was officially released in 1995 after several months of online testing. Within a year, Netscape had incorporated the Java framework into its Navigator web browser (the dominant web browser of the time), exposing millions of users all over the world to the system. Java has gone through several revisions since then, but its use has continued to grow with the Internet. Over 10 million developers are reported to use the Java programming language, making it one of the most popular programming languages in use. The Java Runtime Environment (the software that includes the Java virtual machine) is installed on over 850 million PCs, despite not being bundled with the Microsoft Windows operating system. Java has also recently found wide acceptance for its intended function, being incorporated in modern mobile phone and other interactive embedded systems. Summary by: Richard Murphy

E-TIPS® ISSUE

12 03 07

Disclaimer: This Newsletter is intended to provide readers with general information on legal developments in the areas of e-commerce, information technology and intellectual property. It is not intended to be a complete statement of the law, nor is it intended to provide legal advice. No person should act or rely upon the information contained in this newsletter without seeking legal advice.

E-TIPS is a registered trade-mark of Deeth Williams Wall LLP.