Java is one of the most popular programming languages. it is object oriented, it was released by Sun Micro-systems in 1996, with the “write once, run anywhere” feature. Java, is currently in version 9, the latest in Java. java has the JDK (Java Development Kit), which contains the compiler, and the SDK. Java ensures encapsulation, and full OOP.
A brief history of Java
In 1996, the internet and the World Wide Web were just starting to emerge. At that time, Microsoft’s flagship Windows 95 operating system wasn’t even packaged with an internet browser. Java wasn’t actually designed with the internet in mind. Instead, Sun Microsystems engineers like James Gosling envisioned a world of small, appliance-sized, interconnected devices that could communicate with each other
As a result, the Java programming language paid more attention to the complicated task of network programming than any competing language. Network programming is always a challenge, but the Java programming language, through the java.net APIs, took great strides to simplify the traditionally onerous task of programming across a network.
The Java Programming language is a general purpose computer programming language, that is concurrent, classed-based, object oriented, and specifically designed to have as few implementation dependencies as possible. Java was written in Java, and C++, it supports 32 bit Intel and X86 (64 Bit) Intel Architecture.
Elements and principles of Java
It is difficult to provide a single reason as to why the Java programming language has become so ubiquitous. However, the language’s major characteristics have all played a part in its success, including the following components:
- Programs created in Java offer portability in a network. The source code is compiled into what Java calls bytecode, which can be run anywhere in a network on a server or client that has a Java virtual machine (JVM). The JVM interprets the bytecode into code that will run on computer hardware. In contrast, most programming languages, such as COBOL, C++, Visual Basic or Smalltalk, compile code into a binary file. Binary files are platform-specific, so a program written for an Intel-based Windows machine cannot on run a Mac, a Linux-based machine or an IBM mainframe. The JVM includes an optional just-in-time (JIT) compiler that dynamically compiles bytecode into executable code as an alternative to interpreting one bytecode instruction at a time. In many cases, the dynamic JIT compilation is faster than the virtual machine interpretation.
- The code is robust. Unlike programs written in C++ and some other languages, Java objects contain no references to data external to themselves or other known objects. This ensures that an instruction cannot contain the address of data storage in another application or in the operating system itself, either of which would cause the program and perhaps the operating system itself to terminate or crash. The JVM makes a number of checks on each object to ensure integrity.
- Java is object-oriented. An object can take advantage of being part of a class of objects and inherit code that is common to the class. Objects are thought of as “nouns” that a user might relate to rather than the traditional procedural “verbs.” A method can be thought of as one of the object’s capabilities or behaviors. Being object-oriented is relatively common in today’s programming landscape, but back in 1996, only a handful of languages were implementing object-oriented concepts and design patterns effectively. The ability to develop with a language created from the ground up with object-orientation as its explicit purpose made Java an exciting platform upon which to program.
- Applet offers flexibility. In addition to being executed on the client rather than the server, a Java applet has other characteristics designed to make it run fast.
- Developers can learn Java quickly. With syntax similar to C++, Java is relatively easy to learn, especially for those with a background in C.
There are three key platforms upon which programmers develop Java applications:
- Java SE. Simple, stand-alone applications are developed using Java Standard Edition. Formerly known as J2SE, Java SE provides all of the APIs needed to develop traditional desktop applications.
- Java EE. The Java Enterprise Edition, formerly known as J2EE, provides the ability to create server-side components that can respond to a web-based request-response cycle. This arrangement allows the creation of Java programs that can interact with internet-based clients, including web browsers, CORBA-based clients and even REST– and SOAP-based web services.
- Java ME. Java also provides a lightweight platform for mobile development known as Java Micro Edition, formerly known as J2ME. Java ME has proved a very popular platform for embedded device development, but it struggled to gain traction in the smartphone development arena. In terms of smartphone development, Android has become the mobile development platform of choice.
Examples of Java in use
Using the various components provided by Java EE, it is easy for developers to write programs that employ popular software design patterns and universally agreed upon best practices.
For example, Struts, Spring and JavaServer Faces frameworks all use a Java servlet to implement the front controller design pattern for centralizing requests.
Meanwhile, a big part of the Java ecosystem is the large variety of open source projects, software platforms and APIs that the community has built using the language. For example, the Apache Foundation hosts a variety of projects written using Java, including:
- Simple logging frameworks for Java (SLF4J).
- Big data processing frameworks, such as Yarn and Hadoop.
- Integration platforms like Apache Camel, Apache Axis and CXF for RESTful web service development.
- Microservices development platforms.
More enterprises will attempt to transition Java EE environments into the cloud. As Java developers are creating Java cloud services, the ability to scale up those services quickly is a key concern, as is the ability to collaborate in the cloud.
Criticisms of Java
Java programs can run just about anywhere, although nuances sometimes poked holes in that theory. In the early years of the Java programming language, WORA was a common Java rallying cry, standing for “Write Once, Run Anywhere,” although some developers, with their tongues in cheeks, whispered “WODE: Write Once, Debug Everywhere.”
Java syntax is often decried for being too verbose. Superfluous setters and getters and strong typing tend to make Java programs look bloated. In response, several peripheral languages have emerged to address these issues, including Groovy, which was quickly embraced by the Java community.
Another common criticism is that Java programs fail to scale linearly in the world of high-performance computing. Due to the way Java references objects internally, complex and concurrent list-based operations can bring the JVM to a crawl. The Scala language addresses many of the shortcomings of the Java language that reduce its ability to scale.