Over a million developers have joined DZone.

20 Years Of Java: Share Your Own Java Story

DZone 's Guide to

20 Years Of Java: Share Your Own Java Story

· Java Zone ·
Free Resource

This weekend, May 23rd to be exact, Java celebrates its 20th birthday. For me, and many others, the introduction of Java was a landmark event in the programming world. Oracle created a really nice timeline showing the history of Java that will jog your memory on some key milestones in the history of the language. 

It's great to use occasions like this to reflect on the language; it's successes and failures. A number of people throughout the community have already weighed in with their opions. 

You'll find many more impressions on Twitter, under #java20  tag, and throughout countless blogs. Today I'm just going to share some of my own highlights and observations.  

Learning Java

I started university back in 1997, and at the time, the languages used in that first year of Computer Science were Pascal and C. They were the old days though, and most courses kick off with real object oriented programming, usually with Java. Still, it wasn't until second year that we got a Java module; and almost every other programming related class relied on Java knowledge. The first graphical programs we wrote used AWT; Swing was an additional (overcomplicated for us at the time!) download. Looking back, those UIs were as clunky as hell, but it seemed like magic at the time. Once I got started with Java, I was hooked. 

Speeding Up 

The first company I worked with used Java for almost all their applications on the desktop. One of the most frequent taunts that the language got was it's performance, and that was justified to an extent. Startup times for desktop apps was an issue. We were using Swing at the time, but in an industry where C++ applications were still the norm, we seemed slow. 

One of the guys in the company was trying out Eclipse at the time (this is around 2004), and noticed that the IDE used something called SWT (Standard Widget Toolkit) which promised "near native startup times". It broke from the typical Java pattern by having different distributions for each platform, as it used JNI to access the native UI libraries. It gave us the edge we needed to make more responsive applications. 

The Difficult Road

One of the big promises in the Java language was that it was "Write One, Run Anywhere". Back in the late 90's that selling point must have been the main thing that attracted people to the language. While it's true that it runs in many places, there were many difficult points along the road. 

The Mobile Experience

JavaME allowed you get Java running on phones, but it was dealing with a bloated mobile phone market at the time. The rise of the smartphone and Android, despite it's fragmentation issues, have laid those demons to rest for most of us. 

The Web Experience

Java WebStart helped move the web experience beyond the awkward applet experience, but not quite enough. Server side developers were spoilt by JavaEE, the hero of the Java stack, along with the emergence of the Spring framework and great web containers like Tomcat. For those of us writing client applications on the web, Java wasn't helping us provide excellent experiences for customers on the web. It wasn't until the second coming of JavaScript, along with AJAX and the expansive number of client side MVC frameworks that we finally had the killer combination. 


Java has been a huge part of my professional career. I spent the first 12 years using Java day in, day out, to deliver my products and projects. I work with a number of different languages now, and often find myself thinking of how Java does something as the best example. Is this because Java is so well architected? Or is it because it was my first language? 

Either way, whatever you think about Java, it changed the development landscape 20 years ago, where C++ and Visual Basic were dominating. It's an excellent entry level language for developers, and is enough for you to build an entire career around. 


Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}