Java

Java

“Java is simple, object oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high performance, multithreaded, dynamic language” – Gosling, “Java: An Overview” (1995)

It is a general-purpose, computer programming language that is specifically designed to run on all platforms that was intended to serve as a new way to manage software complexity.

The ubiquity of the Java platform is not an accident. It occupies a middle ground in which you have nearly the performance of native code and the safety of high-level scripting languages. Over the years, it has gained an unparalleled ecosystem of libraries and tools, becoming the foundation for a large portion of the technical plumbing we rely on every day.

Java refers to a number of computer software products and specifications from Sun Microsystems (later acquired by Oracle) that together provide a system for developing application software and deploying it in a cross-platform environment.

Java is used in a variety of computing platforms from embedded devices and mobile phones on the low end, to enterprise servers and supercomputers on the high end.

Java is nearly everywhere, in mobile phones (all applications running on Android devices are written in Java), web servers and enterprise applications (Twitter, LinkedIn, Last.fm, Facebook, Ebay are using java on the back end), and desktop computers.

Java is mature language, it was first released in 1995, and it is still under active development, the current official Java reference implementation being developed under the terms of the GNU General Public License (GPL). In very short terms, this means that users do not have to struggle with heavy license fees each year

Since it’s inception it became one of the most popular programming languages out there, so it is highly unlikely to have a shortage of skilled java programmers in the near future.


TiobeRank

One of the most significant advantages of Java is its ability to move easily from one  computer system to another. The source code is compiled only once into Java Virtual Machine code called bytecode which is machine independent and is able to run on any
machine/platform that has a Java interpreter.

Other advantantages that java offers:

  • Java is object-oriented: Java is object-oriented because programming in Java is centered on creating objects, manipulating objects, and making objects work together. This allows you to create modular programs and reusable code.
  • Java is Dynamic: The Java programming language was designed to adapt to an evolving environment. New methods and properties can be added freely in a class without affecting their clients. Also, Java is able to load classes as needed at runtime.
  • Java is distributed: Distributed computing involves several computers on a network working together. Java is designed to make distributed computing easy with the networking capability that is inherently integrated into it.
  • Java is secure: Java is one of the first programming languages to consider security as part of its design. The Java language, compiler, interpreter, and runtime environment were each developed with security in mind.
  •  Java is robust: Java puts a lot of emphasis on early checking for possible errors, as Java compilers are able to detect many problems that would first show up during execution time in other languages.
  • Java is multithreaded: In Java, multithreaded programming (to perform several tasks simultaneously) has been smoothly integrated into it, while in other languages, operating system-specific procedures have to be called in order to enable multithreading.
  • Garbage collection: Java perform supports garbage collection, so memory management is automatic, leaving less room for human errors.
  • Java API’s can easily be accessed by developers: Java has a huge set of core libraries that are coming straight from the official release, plus there are also a large number of 3rd party modules and frameworks available most of the time under a permissive license

List of popular software written in java:

  • Libre Office:  free office suite similar to Microsoft Office
  • Eclipse: IDE (integrated development environment)
  • Minecraft: popular computer game
  • Azureus: BitTorent client