James Gosling

James A. Gosling, O.C., Ph.D. (born May 19, 1955 near Calgary, Alberta, Canada) is a well-known software developer, best known as the father of the Java programming language.

In 1977, James Gosling received a bachelor's degree in computer science from the University of Calgary. In 1983, he received his PhD in Computer Science from Carnegie Mellon University. During his Ph.D., he wrote a version of emacs (gosmacs), and before joining Sun Microsystems, he built a multiprocessor version of Unix at Carnegie Mellon University, as well as several compilers and mail systems ( Weber, 2019).

Gosling is often credited with the inventor of the Java programming language in 1991. He did the original design of Java and implemented its original compiler and virtual machine. For this achievement, he was elected to the National Academy of Engineering. Gosling started and led a project called Green in the early 1990s, so they believed that C++ required too much memory and that its complexity would lead to developer error. The language's lack of garbage collection meant that programmers had to manually manage system memory, a challenging and error-prone task. The team is also concerned that the C++ language lacks portable facilities for safety, distributed programming, and threading. Finally, they wanted a platform that could be easily ported to all types of devices, and this project eventually morphed into Java (PHIPPS, 2021). Gosling believes that the Java language is more convenient than C and C++, simple, object-oriented, distributed, interpreted, safe, architecture-neutral, portable, high-performance, multi-threaded, and dynamic (Prechelt, 2005). Java is an object-oriented language, and object-oriented means that the design of Java language focuses on objects and their interfaces, which provides a simple class mechanism and a dynamic interface model. The object encapsulates its state variables and corresponding methods, realizing modularization and information hiding; while the class provides the prototype of a class of objects, and through the inheritance mechanism, subclasses can use the methods provided by the parent class to achieve Code reuse. The basic idea of ​​Java is to create a program that can be executed on various computing devices without modification. For example, a mobile game software equipped with a Java virtual machine should also work on other mobile phones.

The technology has been battle-hardened over the past decade. An early partner, Microsoft, found that the platform-independent nature of Java programs was bad for Windows, so it made a slight modification to create another version of Java for Windows, which led to a seven-year lawsuit. Since consumer devices, PCs, and servers require different versions of Java, Sun has struggled to find a way to share control of Java with other parties. So far, many companies, including IBM, have been calling on Sun to open the source code of the main part of Java.

Oral History of James Gosling, part 1 of 2 Interviewed by: Hansen Hsu Marc Weber Recorded March 15, 2019 Mountain View, CA

Comparing Observed Bug and Productivity Rates for Java and C++ GEOFFREY PHIPPS Spirus, P.O. Box 280, Paddington NSW 2021, Australia (email: gphipps@spirus.com.au