May 23rd, 2020, marked 25 years since the first public alpha release of the Java programming language and platform.
The world has changed a great deal since that initial release, which occasioned Network World to opine "Some analysts believe that the Java programming language has the potential to transform the web" (May 22nd, 1995). At that time, Microsoft was gearing up for the August release of Windows 95. That operating system would famously launch without any form of web browser. The Internet was not yet really a part of the mainstream of public consciousness.
Java would become a key player in the years following its initial release - as the Internet transitioned to become a mainstream phenomenon. This would show itself in some unexpected ways, such as the renaming of a mostly-unrelated scripting language to "JavaScript". There was never anything other than the flimsiest of technical reasons for this decision - it was merely to cash in on the expanding public profile of the Java ecosystem.
Hindsight is 20-20, but it is also true that long term bets in software are always difficult. Java has certainly benefited from some design decisions that could be seen either as prescient or very lucky.
In particular, Java has been a particularly fortunate beneficiary of Moore's Law. Several of Java's most important features are only really feasible because of the incredible growth in the computation ability of processors in the last 25 years. The early years of Java were plagued with poor performance, which led to a folk memory among programmers that "Java is slow" that occasionally persists even today, despite it not having been true for over 15 years.
Java may also have benefited from a coherent design philosophy - as it has always had a number of design goals that favour the developer:
- Backwards Compatibility
- Language stability
- Code should be easy to read
- Features should be implemented as libraries if possible
- Provide an extensive standard library out of the box
These principles may have combined with a certain amount of luck to produce a language and platform that was "in the right place at the right time". Very few programming languages become successful, and of those that do, most fall from favour after a few years.
In the modern world, only JavaScript, Python and C / C++ have had the same level of sustained, truly mainstream success that Java has enjoyed. Java takes its role as the stable underpinnings of production software very seriously, and it shows in the health and longevity of the platform.
So, as Java turns 25 and looks to the future, here's a quick (but by no means exhaustive) roundup of events that are being held to commemorate the occasion:
- Java 25 celebration home page
- On Twitter, the hashtag #MovedbyJava is being used by Java developers to share their memories
- A celebration from Oracle's Java Platform Group
- Oracle's new Inside Java website
- 25 Things We Love About Java by Trisha Gee
- A 25-hour Java live stream with recordings
- A panel discussion on Tuesday from the London Java Community
It's impossible to say whether Java will still be around in a recognizable form for its 30th (or 40th) birthday. However, on the current evidence and health of the community, it seems entirely possible that it might.