In this tutorials we are going to know about Little bit of History of Java and Advantages of Java Programming.

History of Java :

JAVA  is  a distributed  technology developed by  James Gosling, Patric Naugton and etc., Sun  Micro System has  released  lot of  rules  for  JAVA and  those  rules are  implemented by  JavaSoft  Inc,  USA (which is the software division of Sun Micro System) in the year 1990.

The original name of JAVA is 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 released to the market in three categories J2SE (JAVA 2 Standard Edition), J2EE (JAVA 2 Enterprise Edition) and J2ME (JAVA 2 Micro/Mobile Edition).

[tie_list type=”checklist”]

  • 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.

[/tie_list]

Advantages of Java Programming:

Below are the typical top advantages of Java ,

[tie_list type=”checklist”]

  • Simple
  • Platform independent
  • Architectural neutral
  • Portable
  • Multi threading
  • Distributed
  • Networked
  • Robust
  • Object Oriented Programming Language

[/tie_list]

Java is Simple:

JAVA is simple because of the following factors:

[tie_list type=”checklist”]

  • 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].
  • Rich set of API (application protocol interface) 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 location for improving performance of a JAVA program. [Garbage collector is the system JAVA program which runs in the background along with regular JAVA program to collect unreferenced memory locations by running at periodical interval of times for improving performance of JAVA applications.
  • JAVA contains user friendly syntax’s for developing JAVA applications.

[/tie_list]

Java is Platform Independent:

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

The languages like C, C++ are 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 and if we try to transfer that program to Unix operating system, we are unable to execute since the format of these operating systems are different and more over the C, C++ software does not contain any special programs which converts one format of one operating system to another format of other operating system].

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

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 architectural dependent.

The language like JAVA can run on any of the processor irrespective of their architecture and
vendor.

Java is Portable :

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

Java is Multi Threading :

[tie_list type=”checklist”]

  • Java is a Multi threaded language.
  • A multi threaded program is one in which there exists multiple flow of controls i.e., threads.
  • A program is said to be multi threaded program if and only of there exists n number of sub programs.
  • 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 applications is known as multi threading applications.
  • The languages like C, Cpp are treated as threads as single threaded modelling languages (STML). SMTL are those in which there exists 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 They are foreground/child thread and background/main/parent thread.
  • A foreground thread is one which always executes user defined sub-programs.
  • In a JAVA program there is a possibility of existing n number of foreground threads.

[/tie_list]

Java is Distributed:

A service is a said to be a distributed service which runs in 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 architecture called trusted network architecture. To develop these applications we require a technology called J2EE. Distributed applications are preferred prefer by large scale organizations.

Java is Networked:

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

Un-trusted networks:

A network is said to be un-trusted network in which there exists n number of inter connected non-autonomous autonomous architecture.
Un-trusted network is also known as LAN. Using this network architecture, we develop centralized applications.

A centralized application is one which runs on single server and it can be access 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 organization.

Trusted network:

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

A distributed application is one which runs on multiple servers and it can be access 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.

Java is Robust :

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

Java is Object Oriented Programming language :

In an IT we have two types of programming models (paradigms) are available. They are procedure oriented programming language and object oriented programming language.

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

If one of the functions manipulates or damages the data then we are loosing correction-less
(integrity) of the data. Examples of procedure oriented programming languages are FORTRON, COBOL, PASCAL, BASIC, C, etc.

When we represent the data in object oriented programming language we get the security.
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 🙂