Java Programming Language
Java is a general multi-paradigm computer programming language supporting the following:
- object oriented
- imperative programming
- functional programming
- Reflection
- Concurrency
Java is created on the philosophy on Write once Run anywhere.
- Java is a simple, statically typed, interpreted, robust, architecture-neutral language and supports portability, high performance, and concurrent execution.
- Java supports creation of Web applications, Desktop UI applications, Mobile applications, Batch processing applications and Distributed applications.
- Embedded Java is used in smart cards, TV applications, TV applications with internet content, digital watches, digital cameras, GPS receivers, USB devices, SIM cards, Utility meters, sensors, printers, Games, Video-on-demand devices, Bluray Disc players and Set top boxes, ATM, time clocks, slot machines, industrial Robotics and so on.
- Embedded java is gearing up to be used for Internet of Things (IoT).
Java History
- James Gosling and his team initiated the Java project in 1991 and first version released in 1995.
- Java was developed with the C/C++ syntax
- Originally developed so that it can be used in embedded systems.
- Initially named Oak after the Oak tree outside James Gosling's office.
- Later renamed as Java after the famous Java coffee in James Gosling's area.
Java Evolution | Evolution of Java over C++
C >>> C++ >>> Java
- Java was influenced by C and C++.
- Java was written from scratch to overcome the security and memory issues in C++.
- C had issues in structuring and maintaining the code.
- C++ came to the rescue with the option of structuring the code with Objects - Object Oriented Programming.
- C and C++ had complete control over the low level system. This caused issues as programmers had the option of carelessly using the memory and accidently corrupting the data or causing other system level issues.
- Java was carefully written such that programmers can not cause so many memory issues accidentally.
Java vs Other Programming Languages
Java is an object oriented language and compiled code is highly portable across Operating systems and Platform architectures which no other language could compare itself to.
Java is statically typed like C and C++ in contrast to dynamic typing in Python, Ruby and Javascript.
Java is a general purpose language usable for many type of application - desktop, web, mobile, embedded systems, smart cards and more
- While C and C++ are primary suitable for process based applications, desktop applications and batch processing
- Ruby more suitable for web applications
- Python suitable for desktop and web applications but not for mobile applications
- Android suitable for only mobiles
Java - different editions
- JDK 1.0 (1996)
- JDK 1.1 (1997)
- J2SE 1.2 (1998)
- J2SE 1.3 (2000)
- J2SE 1.4 (2002)
- J2SE 5.0 (2004)
- Java SE 6 (2006)
- Java SE 7 (2011)
- Java SE 8 (LTS) (2014)
- Java SE 9 (2017)
- Java SE 10 (2018)
- Java SE 11 (LTS)(2018)
- Java SE 12 (2019)
- Java SE 13 (2019)
- Java SE 14 (2020)
- Java SE 15 (2020)
- Java SE 16 (2021)
- Java SE 17 (LTS)(2021)
- Java SE 18 (2022)
Java 8 still remains the most popular Java version and has the most market share. Java versions 8,11 and 17 are long time support versions. Popular Framework for Java - Spring Framework supports Java 8 and above
Java as a Motivator
Java is a motivation for many other languages like C#, Android and JRE languages like Groovy, Scala, Clojure, Jython, JRuby and Kotlin