Below are some notes on Java which help us to decipher how it has evolved over time since 1995. This is part 1 of the series. This acts as a mini caselet to understand how a successful ecosystem related to an application programming language has evolved over decades.
- Origins: Bytecode, compile once, run anywhere concept via Java Virtual Machine – 1995
- Object oriented origins, largely focussed on application programming
- Steadily in one of the top choices for programming since origin
- Liberal license & forks under TCK/JCK & OpenJava along with paid, enterprise options of Oracle / IBM and more as of 2022
- Large open standards, open collaboration & open source influence since the beginning
- Automatic memory management
- Top languages built on top of JVM: Java, Kotlin, Groovy, Scala, Clojure as of 2022
- Associated top products, frameworks, libraries and platforms built on top of Java: Spring, Activiti, jBPM, Drools, Log4j, Kafka, Tomcat, Spark, ElasticSearch and more as of 2022
- Multi-threaded
- Platform independent & Just in time
- Influenced by C/C++
- Over time, both Java Spring & Jakarta EE have evolved for enterprise Java
- Has developed coding standards
- Has a well defined specification ecosystem
- Spring ecosystem has support for microservices, reactive programming, cloud, webapps, serverless, events, batch, security and more
- JNI is an option to run native code
- Thousands of tutorials, blogs, websites, news, videos & technology articles cover Java on routine basis
- Functional programming concepts recently introduced
References:
- https://en.wikipedia.org/wiki/Java_(programming_language)
- https://en.wikipedia.org/wiki/List_of_JVM_languages
- https://en.wikipedia.org/wiki/List_of_Java_frameworks
- https://en.wikipedia.org/wiki/Spring_Framework
- https://docs.oracle.com/en/java/
- https://openjdk.org/
- https://google.github.io/styleguide/javaguide.html
- https://docs.oracle.com/javase/specs/
- https://cr.openjdk.java.net/~iris/se/11/latestSpec/java-se-11-jls-draft-diffs.pdf
- https://en.wikipedia.org/wiki/Java_Native_Interface
- https://www.baeldung.com/jni
- https://www.baeldung.com/java-functional-programming
- https://jakarta.ee/