In these tutorials, we are going to know about a Little bit history of Java and the Advantages of Java Programming.

History of Java :

Java is a distributed technology developed by  James Gosling, Patric Naughton and etc., Sun  Micro System has released a lot of rules for  Java and those rules were implemented by JavaSoft  Inc, the USA in the year 1990.

The original name of Java was OAK  (which is a  tree name).  In the year 1995, OAK was revised and developed software called Java (which is a coffee seed name).

Java was released to the market in three categories J2SE (Java 2 Standard Edition), J2EE (Java 2 Enterprise Edition) and J2ME (Java 2 Micro/Mobile Edition).

  • J2SE is basically used for developing client-side applications/programs.
  • J2EE is used for developing server-side applications/programs.
  • J2ME is used for developing server-side applications/programs.

Advantages of Java Programming:

Below are the typical top advantages of Java,

  • Simple
  • Platform independent
  • Architectural neutral
  • Portable
  • Multithreading
  • Distributed
  • Networked
  • Robust
  • Object-Oriented Programming Language

1. Java is Simple:

Java is simple because of the following factors:

  • Java is free from pointers hence we can achieve less development time and less execution time [whenever we write a JAVA program we write without pointers and internally it is converted into the equivalent pointer program].
  • A rich set of API (application protocol interfaces) is available to develop any complex application.
  • The software Java contains a program called garbage collector which is always used to collect unreferenced (unused) memory locations for improving the performance of a Java program. [Garbage collector is a Java program that runs in the background along with regular programs to collect unreferenced memory locations by running at periodical intervals of times for improving the performance of JAVA applications.
  • Java offers user-friendly syntaxes for developing Java applications.

2. Java is Platform Independent:

A program or technology is said to be platform-independent if and only if that can run on all available operating systems.

The languages like C, C++ have treated as platform-dependent languages since these languages are taking various amount of memory spaces on various operating systems [the operating system dos understands everything in the form of its native format called Mozart (MZ) whereas the operating system Unix understands everything in its negative format called embedded linking format (elf).

When we write a C or C++ program on DOS operating system and if we try to transfer that program to Unix operating system, that never executes because the format of these both operating systems are different and moreover the C, C++ software does not contain any special programs which convert one format of one operating system to another format of other operating systems].

A language like Java will have common data types and common memory spaces on all operating systems and the Java software contains special programs which converts the
format of one operating system to another format of another operating system. Hence Java language is treated as a platform-independent language.

3. Java is Architectural Neutral:

A language or technology is said to be architectural neutral which can run on any available processors in the real world. The languages like C, C++ are treated as an architectural dependent.

A language like JAVA can run on any of the processors irrespective of their architecture and vendor.

4. Java is Portable :

A portable language is one that can run on all operating systems and on all processors irrespective of their architectures and providers. The languages like C, C++ are treated as non-portable languages whereas the language Java is called portable language.

5. Java is Multi-Threaded :

  • Java is a Multithreaded language.
  • A multi-threaded program is one in which there exist multiple flows of controls i.e., threads.
  • A program is said to be a multi-threaded program if and only if there exists n number of subprograms.
  • For each and every sub-program there exists a separate flow of control, all such flow of controls are executing concurrently. Such flow of controls is known as threads. Such type of application is known as multi-threading applications.
  • The languages like C, C++ are treated as threads as single-threaded modelling languages (STML). SMTL are those in which there exists a single flow of control.
  • The languages like Java and Dot Net are treated as multi-threaded modelling languages (MTML). MTML are those in which there exist multiple flows of controls.
  • Whenever we write a Java program there exists by default two threads, those are foreground/child thread and background/main/parent thread.
  • A foreground thread is the one that always executes user-defined sub-programs.

6. Java is Distributed:

A service is said to be a distributed service that runs on multiple servers and that service can be accessed by n number of clients across the globe.

In order to develop distributed applications, we must require an architecture called trusted network architecture. To develop these applications we require a technology called J2EE. Distributed applications are preferred to prefer by large scale organizations.

7. Java is Network enabled:

In the real world, we have two types of networks. They are un-trusted networks and trusted networks.

7.1 Un-trusted networks:

A network is said to be an un-trusted network in which there exists n number of interconnected non-autonomous architecture.
An untrusted network is also known as LAN, we use this network architecture for centralized applications.

A centralized application is one that runs on a single server and can be accessed in limited graces. In order to develop centralized applications we may use a technology called J2SE and these kinds of applications are preferred by small scale organizations.

7.2 Trusted network:

A network is said to be a trusted network in which there exists n number of interconnected autonomous architectures. A trusted network is also known as WAN. Using this network, we can develop distributed applications.

A distributed application is one that runs on multiple servers and can be accessed in unlimited graces. In order to develop distributed applications we may use a technology called J2EE and these kinds of applications are preferred by large scale organizations.

8. Java is Robust :

Java is a robust language. Here robust means reliability. Since Java is both the compiler and interpreter language, Java puts a lot of emphasis on early checking for all possible errors and exceptions. As part of the exception handling in Java, the compiler can get to confirm all possibilities in runtime situations, which gives a lot of reliability to customers.

9. Java is Object Oriented Programming language :

Basically, we have two types of programming models (paradigms) are available. They are procedure-oriented and object-oriented programming languages.

If we represent the data using procedural oriented programming languages then there is no much security for the data which we represent. For example, when we represent the data of a student in the C language using the structures concept, the student data can be accessed by all the functions which we write as a part of the C program.

If one of the functions manipulates or damages the data then we lose the integrity of data.

Examples of procedure-oriented programming languages are FORTRON, COBOL, PASCAL, BASIC, C, etc.

When we represent the data in an object-oriented programming language we get security, through the principles of OOPS.

Examples of object-oriented programming languages are LISP, ADA, ALGOL, SMALLTALK, OBJECT COBOL, OBJECT PASCAL, Cpp, JAVA, DOT NET, etc.

In order to say any language is an object-oriented programming language, it has to satisfy 8 principles of OOPs.

Happy Learning 🙂