Java Top

Get started with Spring 5 and Spring Boot 2, through the Learn Spring course:


1. Overview

Java is one of the most popular programming languages worldwide. It was created by James Gosling and Patrick Naughton, employees of Sun Microsystems, with support from Bill Joy, co-founder of Sun Microsystems.

Sun officially presented the Java language at SunWorld on May 23, 1995. Then, in 2009, the Oracle company bought the Sun company, which explains why the language now belongs to Oracle.

In this article, we'll explore the history of the Java programming language.

2. What Is Java?

Java is described as being a multi-purpose, strongly typed, and Object-Oriented Programming (OOP) language. By design, it has as few implementation dependencies as possible.

With this programming language, we can create applications on multiple devices. Its scope is very wide, allowing us to create software for mobile devices, point of sale terminals, ATMs, IoT (Internet of Things), as well as web pages.

Although Kotlin is the preferred language for Android development in 2021, Java is still the default language for developing apps for Android. The big reason for that is Android's tight integration with Java. In fact, parts of that OS, like the UI and specific core libraries, are written in Java.

3. Brief History

Let's dive in to take a look at how the Java project started and evolved through time.

3.1. The Beginning

The project was born in 1991, behind the scenes of a Sun Microsystems team, when three engineers, James Gosling, Mike Sheridan, and Patrick Naughton sought to design a language applicable to small electrical devices.

Soon after, they launched the Green Project to study the impact of convergence between digitally controlled home appliances and computers.

Using a syntax similar to that of C++, they made a digital remote control, equipped with a graphic and animated touch screen. The fruit of several months of intense research, this remote control had the fantastic feature of controlling a whole living room equipment. It was programmed in a new language, completely independent of the processor it was running on, making the remote one-of-a-kind.

Ultimately, it was James Gosling, one of the members of the Green Project, who originated this new language, which he called Oak.

Afterward, the project gained ground when American cable operators joined the project. Oak then became FirstPerson. Unfortunately, the FirstPerson project had no commercial success, as it was certainly too far ahead of the industry, whose priority was, above all, profitability.

3.2. The Arrival of the HTTP Protocol and the Mosaic Browser

In 1993, the HTTP protocol and the Mosaic browser arrived, which was a crucial event for the project. During this time, the team realized that the Internet would be the ideal network to position their product.

Then, in 1995, James Gosling unveiled a browser called WebRunner that was capable of showing HTML content mixed with Applets. Things took off from there. First, WebRunner became HotJava, then officially opened to the public.

Eventually, the name of this technology would become “Java” (meaning “coffee” in American slang), in honor of the programmer's favorite drink, namely coffee, part of the production of which comes from the island of Java.

It was then that Sun and Netscape announced their desire to integrate this new technology into their browsers, which definitively launched the language. The versions would then follow one another from version 1 in 1996 to version 17 in 2021.

4. Features

Thanks to its excellent features, Java has become a popular and useful programming language. Sun characterized it as being:

  • Simple and Familiar
  • Compiled and Interpreted
  • Platform Independent and Portable
  • Object-Oriented
  • Robust and Secure
  • Distributed
  • Multi-threaded
  • High Performance
  • Dynamic and Extensible

Next, we'll detail each of these features.

4.1. Simple and Familiar

First, Java is simple thanks to its coding style, which is very clean and easy to understand. Also, it doesn’t use complex and difficult features of other languages, such as the concept of explicit pointers.

Since it's based on familiar languages like C++ and contains many features of these languages, Java is considered familiar.

4.2. Compiled and Interpreted

Java integrates the power of compiled languages with the flexibility of interpreted languages.

The compiler (javac) compiles the source code into the bytecode, then the Virtual Machine (JVM) executes this bytecode, which is executable on many operating systems.

4.3. Platform Independent and Portable

The most significant feature of Java is that it provides platform independence, which leads to a facility of portability.

Being platform-independent means a program compiled on one machine can be executed on any machine in the world, without any changes. A Java program can run on any operating system and any hardware configuration. It achieves platform independence by using the concept of bytecode.

The portability feature refers to the ability to run a program on different machines. In fact, the same code will run identically on different platforms, regardless of hardware compatibility or operating systems, with no changes such as recompilation or tweaks to the source code.

4.4. Object-Oriented

Java strongly supports Object-Oriented Programming concepts, such as encapsulation, abstraction, and inheritance. Almost everything in Java is treated as an object. All programs and data live within objects and classes.

4.5. Robust and Secure

Java has a strong memory management system, which helps in eliminating errors as it checks the code during both compile-time and runtime. Also, it provides many robust concepts such as:

  • exception handling that identifies runtime errors and eliminates them
  • automatic garbage collection, which runs on the JVM to get rid of objects that aren't being used anymore.

Furthermore, programs in Java run in a virtual machine sandbox. Thus, users can execute their applications without affecting the underlying system.

4.6. Distributed

This feature is helpful when we develop large projects. We can split a program into many parts and store these parts on different computers. As a result, we can easily create distributed and scalable applications that run on multiple nodes.

We can achieve this using the concept of RMI (Remote Method Invocation) and EJB (Enterprise JavaBeans).

4.7. Multi-Threaded

Also known as Thread-based Multitasking, multithreading is a feature that allows executing multiple threads simultaneously. In short, we can write Java programs that deal with many tasks at once by defining multiple threads. The advantage of multithreading is that it doesn't occupy memory for each thread – all threads share a common memory area.

4.8. High Performance

Bytecodes that the compiler generates are highly optimized, so the Virtual Machine can execute them much faster. This is why Java is faster than other traditional interpreted programming languages.

4.9. Dynamic and Extensible

This feature gives the facility of dynamically linking new class libraries, methods, and objects. Java is highly dynamic as it can adapt to its evolving environment.

5. Usefulness of Java Runtime Environment

To be able to run a software application, it must have an environment that allows it to function – typically, an operating system such as Linux, Unix, Microsoft Windows, or macOS. In the absence of other supporting environments, programs are limited by the capabilities of the operating system and its resources.

The Java Runtime Environment (JRE) acts as a translator and facilitator between the program and the operating system. It runs on top of the operating system to provide additional Java-specific resources.

6. Conclusion

Through all its specificities, the Java language synthesizes a large part of other existing languages' possibilities while erasing some of their main faults.

It is, therefore, a language commonly recognized as being relatively modern, and whose potential is well established.

Java bottom

Get started with Spring 5 and Spring Boot 2, through the Learn Spring course:

Generic footer banner
1 Comment
Inline Feedbacks
View all comments