# Java

> Language for server and enterprise software, compiled to bytecode that runs on the Java virtual machine.

- **Appeared:** 1995
- **Creators:** James Gosling
- **Maintained by:** Oracle
- **Type:** backend
- **Status:** alive
- **Born from:** James Gosling started Oak at Sun Microsystems in April 1991 for the Green Project, which was looking for a use for smart consumer electronics such as cable set-top boxes. The devices used different processors and had very little memory. The team began with C++ with some fixes, and Gosling later said the way they addressed programming was causing cost issues for many of the manufacturers.
- **Reacts to:** cpp
- **Trade-offs:** garbage collected; static types; runs on a virtual machine; concurrency: threads, green. Cost: The JVM adds startup time and memory overhead to every program, and the verbose syntax makes small scripts slow to write.
- **Slots:** server ●●● strong (Netflix runs about 2,800 Java applications, mostly microservices.); data ●●○ ok (Apache Hadoop is implemented in Java, though jobs can be written in other languages.); mobile ●○○ weak (Android still supports Java, but Google calls Kotlin the first choice.); embedded ●○○ weak; browser ○○○ none (Applets ran as browser plugins, and no major browser runs them now.)
- **Alternatives:** kotlin, csharp, go, python
- **Won where:** Netflix, which runs about 2,800 Java applications, mostly microservices [source](https://www.infoq.com/presentations/netflix-java/); Apache Hadoop, whose framework is implemented in Java [source](https://hadoop.apache.org/docs/stable/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html); Elasticsearch, which bundles its own OpenJDK in each distribution [source](https://www.elastic.co/docs/deploy-manage/deploy/self-managed/installing-elasticsearch); Android, whose platform SDK still supports Java next to Kotlin [source](https://developer.android.com/kotlin/first)
- **Timeline:** 1991: Gosling starts Oak at Sun in April, first aimed at consumer electronics [source](https://ibiblio.org/java/slides/hope/02.html); 1995: Java is made public on May 23, 1995 [source](https://www.azul.com/?p=72322); 1996: JavaSoft ships Java 1.0 as a free programming environment for developers [source](https://diswww.mit.edu/charon.mit.edu/java-interest/5056); 2006: Sun releases Java under the GPL through the OpenJDK project [source](https://www.theregister.com/2006/11/13/sun_opensources_java/); 2010: Oracle closes its $7.4 billion purchase of Sun, which owned Java [source](https://www.eweek.com/news/oracle-completes-sun-acquisition/)
- **Links:** [website](https://www.java.com), [repo](https://github.com/openjdk/jdk), [docs](https://docs.oracle.com/en/java/)
- **PLDB:** https://pldb.io/concepts/java.html
- **Sources:** https://ibiblio.org/java/slides/hope/02.html, https://sdtimes.com/twenty-years-of-java-through-its-creators-eyes/, https://www.azul.com/?p=72322, https://diswww.mit.edu/charon.mit.edu/java-interest/5056, https://www.theregister.com/2006/11/13/sun_opensources_java/, https://www.eweek.com/news/oracle-completes-sun-acquisition/, https://www.infoq.com/presentations/netflix-java/, https://hadoop.apache.org/docs/stable/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html, https://www.elastic.co/docs/deploy-manage/deploy/self-managed/installing-elasticsearch, https://developer.android.com/kotlin/first
- **Verified:** no, draft of 2026-10-30
- **Canonical:** https://langwhy.dev/lang/java/

## Why it exists

James Gosling started Oak at Sun Microsystems in 1991 for the Green Project, which was looking for a purpose for smart consumer electronics such as cable set-top boxes ([ibiblio timeline](https://ibiblio.org/java/slides/hope/02.html)). The devices used different processors and had very little memory, and the goal was code that did not depend on any single processor. Gosling later said the programming approach was causing cost issues for many of the manufacturers ([SD Times](https://sdtimes.com/twenty-years-of-java-through-its-creators-eyes/)). Sun made Java public on May 23, 1995 ([Azul](https://www.azul.com/?p=72322)).

## What it trades away

Java trades startup speed and memory for portability. Each program runs on a virtual machine, so every program pays for that layer before it does any work. Gosling admitted the language "tried too hard to be compatible with C++", including operator overloading, which shows how much of the C++ inheritance came along for the ride ([SD Times](https://sdtimes.com/twenty-years-of-java-through-its-creators-eyes/)). Large deployments accept the cost. Netflix runs about 2,800 Java applications on a standard OpenJDK build from Azul ([InfoQ talk](https://www.infoq.com/presentations/netflix-java/)), but a team that needs a tiny binary or a fast start should look elsewhere.

## Where it won

Java won on the server. Netflix runs about 2,800 Java applications, mostly microservices ([InfoQ talk](https://www.infoq.com/presentations/netflix-java/)). Apache Hadoop, the distributed data framework, is implemented in Java, although its jobs can be written in other languages ([Apache Hadoop docs](https://hadoop.apache.org/docs/stable/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html)). Elasticsearch ships its own OpenJDK inside each distribution ([Elastic docs](https://www.elastic.co/docs/deploy-manage/deploy/self-managed/installing-elasticsearch)). On Android, Google's platform SDK still supports Java next to Kotlin, though Google now recommends Kotlin for new apps ([Android developers](https://developer.android.com/kotlin/first)).

---
Data: CC0, https://github.com/langwhy/langwhy/blob/main/data/languages/java.yaml
