Skip to main content

Command Palette

Search for a command to run...

Java: Then and now

Updated
•4 min read•View as Markdown
Java: Then and now
L

Hi, I’m Lilavati Mhaske — a tech enthusiast, Java learner, and aspiring full stack developer. I created this blog to document and share my journey through Full Stack Java development, from the fundamentals to frameworks like Spring Boot, REST APIs, databases, and frontend integration. I believe in learning by doing—and explaining! Whether you're just starting out or brushing up your Java skills, I hope my posts make your learning smoother and more enjoyable. Let’s grow together, one line of code at a time. ☕💻

"Write Once, Run Anywhere" — this was the vision behind Java, and even decades later, it remains a cornerstone in software development.

Welcome to the first post of my Full Stack Java learning series! I’m diving deep into Full Stack Java, and to truly appreciate where we’re heading, it’s important to understand where it all started. So here’s a look at the history, purpose, and power of Java.

The Beginning of Java

Java was officially introduced by Sun Microsystems on January 23, 1996. But the story begins back in 1991, when a team of 30 engineers led by James Gosling and Patrick Naughton started working on a project called Green.

Their aim?
To create a platform-independent, simple, and reliable programming language for smart devices and embedded systems.

The language was originally named Oak, but due to trademark issues, it was later renamed Java, inspired by Java coffee.

Java's Journey & Versions

Over the years, Java evolved rapidly:

  • Versions 1 to 6 were developed under Sun Microsystems.

  • From version 7 onwards, Oracle took over after acquiring Sun Microsystems.

VersionRelease YearHighlights
Java 1.01996First official release
Java 2 (1.2)1998Swing, Collections Framework
Java 52004Generics, Enums, Annotations
Java 82014Lambdas, Streams API
Java 92017Modular system (Project Jigsaw)
Java 112018LTS; New HTTP Client, local-variable syntax
Java 142020Switch expressions, Records (preview)
Java 172021LTS; Sealed classes, Pattern matching (preview)
Java 212023LTS; Virtual threads, Sequenced collections
Java 222024String templates, Unnamed patterns (preview)
Java 232024 (Expected)Non-LTS release
Java 242025 (March)Latest non-LTS version (as of April 2025)

Core Goals Behind Java

When the team designed Java, they had three main objectives:

Simple Programming Language

  • Less execution time → More performance

  • Less memory usage → Reduced cost

  • Less power consumption → Lower maintenance

It removes complexity like manual memory management and pointers, offering automatic Garbage Collection and a clean, readable syntax.

Tightly Coded Programming Language

Java lets you write fewer lines of code while maintaining clarity and structure. Let’s compare how a simple stack is implemented across C++, Java, and Python.

Stack Implementation Comparison

Use Case: push(), pop(), and peek() operations

In C++:

#include <stack>
#include <iostream>
using namespace std;

int main() {
    stack<string> s;
    s.push("AAA");
    s.pop();
    cout << s.top() << endl;
}

Why not C++?

  • Needs extra boilerplate like #include, using namespace std

  • Manual memory handling in many cases

  • STL is powerful but less beginner-friendly

In Java:

import java.util.Stack;

public class Main {
    public static void main(String[] args) {
        Stack<String> s = new Stack<>();
        s.push("AAA");
        s.pop();
        System.out.println(s.peek());
    }
}

Why Java?

  • Clean and readable syntax

  • Strong type safety using generics (Stack<String>)

  • Automatic garbage collection

  • Built-in robust libraries and consistent method naming

In Python:

stack = []

stack.append("AAA")
stack.pop()

print(stack[-1] if stack else "Empty")

Why not Python for everything?

  • Very concise and beginner-friendly

  • But dynamically typed, which can cause runtime bugs

  • Less structure compared to Java for large-scale systems

Summary: Why Java is a Good Balance

LanguageProsCons
C++Performance, controlVerbose, manual memory handling
PythonConcise, simpleDynamic typing, less strict
JavaStrongly typed, readable, scalableSlightly more verbose than Python, but ideal for real-world projects

Java offers a powerful balance between performance, safety, and readability—perfect for building enterprise-grade, maintainable systems.

Architecturally Neutral

Java is designed to be platform-independent.

Java code is compiled into bytecode, which runs on the Java Virtual Machine (JVM). This means you can write code on Windows and run it on Linux, macOS, or any device that has a JVM.

Hence the famous phrase:
“Write Once, Run Anywhere.”

Why Java Still Matters in 2025

  • Used heavily in enterprise applications

  • Powers Android apps

  • Essential for cloud-native apps

  • Robust ecosystems: Spring, Hibernate, Maven, etc.

  • Massive community and long-term stability

Conclusion

From a lab project at Sun Microsystems to one of the most used programming languages in the world, Java has had a remarkable journey.

This was just the start of my Full Stack Java journey. In the next post, I’ll explore Core Java concepts — variables, data types, operators, and control flow.

Let me know in the comments — when did you first encounter Java? What’s your favorite Java feature?

Stay tuned for more posts as I dive deeper into backend, Spring Boot, databases, and frontend integration!

P

Fantastic blog! It's not only well-written but also thoughtfully structured to cater to both beginners just starting with Java and experienced developers looking to refresh or deepen their understanding. The comparison of 'then and now' really highlights Java’s evolution over the years. A great resource for anyone looking to enhance their Java knowledge!

Also looking forward for a SpringBoot blog!!

1

More from this blog

Full Stack Java Journey

5 posts

Exploring Java’s journey from its origins to modern Full Stack development. Follow along as I share insights, tutorials, and lessons from my Java learning experience. ☕💻