Java at 25 years !! — and how it helped millions like me become “(better) software developers, get great jobs, earn money and, and, and .. ”

Mani
14 min readJul 28, 2020

Wow, time flies, Java is now 25 years old — https://en.wikipedia.org/wiki/Java_(programming_language) it was first launched on May 23rd, 1995 !!

The creation and rise of Java also coincides with my IT/Software career, as I too started working in the Information Tech (IT) industry after graduation in July 1995. I could say, as Java grew with the addition of new APIs and features, I too grew as an software engineer and learnt the different aspects of programming including things like Object oriented programming, Distributed computing concepts, Server side programming, Java frameworks & design patterns and so on ..

This long blog (based on my very own biased and personal experiences), is my tribute to Java and how it has helped thousands/millions of folks like me to get into software.

Java, I believe, has been a great leveler, it democratized coding and made software development a a level playing field ;-)

Java’s 10 year anniversary — Sun Microsystems days — A Polaroid pic with the Java Duke, at Java One in 2005, Moscone convention center, San Francisco !!

In 1995, the year I passed out from UVCE, Bangalore — as a freshly minted engineering graduate in electronics and communication engineering. I joined a company called BFL software as a campus recruitee. When I started my career, I knew C, Pascal, Fortran, Basic and bunch of other eminently forgettable programming languages ..

I had dabbled in other object oriented programming language like C++ also. I tried my best, including reading from the best C++ books like Stanley Lippman’s book on C++, but I did not feel really confident of programming in C++ on real world projects. At work, I was comfortable in C, Visual Basic, Windows SDK and Unix scripting but not so much in other languages. When Java was created by Dr James Gosling and released to the open world, it opened my eyes to the intuitive way of writing apps, without getting caught in complex syntax, OOAD jargon that seemed to create an artificial wall for engineers like me. I loved Java from Day one right from JDK (Java Development Kit)1.0 to its different versions, until probably around JDK 7/8 .. when I stopped active programming. Java has helped me to be extremely productive, I could debug stuff and most importantly, know where to look for issues and fix them irrespective of the operating systems — Windows, Unix/Solaris or Linux.

Getting Sun Java certified in 2000 !!

When I wanted to put down my journey of learning Java over the years, the experiences came pouring out as an avalanche of thoughts and I thought what better than map the growth of Java over the years in terms of “Yugas”. I have tried to map the evolution of Java over the years in terms of “Yugas”, where each one of these pivotal moments has contributed to Java’s growth.

Note: This is a very opinionated blog — my personal opinions, your mileage and recollection can vary. Please don't take it personally ;-)

First Wave - Applet yuga ..

I was just getting introduced to the internet and one of my colleagues showed a graphical way of checking the internet from a company called Netscape and the browser was called Netscape Navigator. Java introduced something called Applets (a client side way of running apps from web pages within the browser) and the first commercial browser to support Java was Netscape Navigator. Netscape Navigator soon acted as an catalyst to to popularize applets, as it could run these Java applets from within the browser.

Writing and running applets was all the rage those days, I myself created and ran all kinds of applets — even stuff like an online crossword in our company’s intranet magazine. Some were awesome productivity apps, some were games and so on ..

The Java duke .. immortalized in the countless Java applets

Very soon, as the browsers started introducing newer versions, we started getting browser compatibility issues, huge applet sizes which took forever to download, security issues and so on and so forth .. The craze for Applets soon died down.

One crazy memory is of a Java applet that I grappled at work while working at Sun Microsystems (which will definitely bring back memories to old timers at Sun across the world !!), was an applet for Travel expense and authorization called SunTea, that we had to use internally for submitting expense requests, expense reports and approvals. The main issue with SunTEA, was to get the damn applet to run — it had browser compatibility issues, JDK versioning issues and so on .. I always had to keep an older version of a browser to run SunTea applet, some times even had to come to office just to run the applet on an old Sun Ray (which had an older antiquated version of Netscape browser), and get the applet to run and submit my expense claims. When you search the internet, you can still find some of the JDK issues related to the great Sun TEA applet ;-)

The infamous SunTEA applet issue ;-) https://bugs.java.com/bugdatabase/view_bug.do?bug_id=6380332

So, finally the era of thick clients ended .. with the advent of AJAX and modern browsers like Chrome and Firefox. I don’t think too many people will miss Java Applets ..

Second wave - Distributed computing yuga

This was a pivotal moment in my learning and bringing distributed computing to the masses. In the Unix world, which had C/C++, they had to use CORBA while the Windows folks introduced a competing thing called DCOM .. I never learnt either of the two, but Java introduced something called RMI (Remote Method Invocation) which made creating Client/Server application so easy to build and run .. Just imagine the beauty of calling Java functions across the internet/wire all running on different servers and sometimes across the world !!

Third wave - Servlet/JSP (Java Server Pages) yuga ..

I would say, this was a big, big hit which really made Java extremely popular, the ability to write server side web applications using Java. I also dabbled in my first production quality code using Java Servlets and JSP, while at Honeywell India, for building a content/document management system using Java Servlets/JSP which were running on an Netscape web server on Solaris. The ability to write awesome server side apps in Java, probably led to the birth of a number of internet dot-coms around circa 1999/2000, where folks created simple to complex apps, from the frivolous to real complex stuff. In my consulting gigs, I churned out several Servlet/JSP based web based apps in the US…

Getting a leg up on the Java APIs was very important to me — I bought so many books with my little salary, used to scour the internet for pieces of code, articles, anything that could help me get a leg-up.. The hunger for knowledge and solving problems, they gave me so much pleasure.

Definitely a big hit !!

Fourth wave or J2EE (Java 2 Enterprise edition) yuga

Eventually, some one thought why just Servlets and JSP for the middle-tier, why not use Java for complex business logic, for things which need enterprise grade features like support for transactions, caching, re-usability, talking to back-end systems like relational databases, message queues and other systems. The gold standard at the time were workhorses like Tuxedo, IBM mainframe systems and others. Sun introduced J2EE (Java 2 enterprise edition) with much fanfare in response to this need.

I was working at a dot-com/new-age consulting company in Boston/Cambridge at that time, and our team decided to use J2EE for a customer project. This was post the Y2K crash, and J2EE was new to all of us. We learnt new J2EE concepts like session beans, entity beans on the job, probably at the expense of the client ;-) Most of the learning was from the Java Pet Store sample code that Sun had shipped. Just when the project was getting into a good shape with an MVP, the dot-com that I was working on ended up belly-up post Y2K, into the annals of history and closed shop .. before our J2EE based application went live. But the lessons I learnt in this project, helped me get a job at my dream company, Netscape and then later on at Sun Microsystems, for which I am forever grateful to J2EE and Java.

J2EE was a mixed bag, while some aspects were great, but some features caused more pain [I am looking at you, Entity beans ;-) ] and complexity to developers like me and to customers. J2EE grew to different releases over the years, adding features .. Things like J2EE design patterns definitely helped developers to reuse common patterns, rather than re-invent stuff for every project.

Definitely became a hit in later years, after an initial slow start !!

Application Servers yuga — side story

You needed something to run your server-side Java apps, right? and as the inventor of Java, you would have thought that Sun Microsystems will have a leg-up and be the leader? Well, that did not turn out that way .. The competition, during my time was a two horse race between Weblogic (from BEA systems, which was later bought by Oracle) and IBM WebSphere, and everyone else was kind of relegated down below ..

Imagine my plight, as an Sun Microsystems employee, trying to push our iPlanet appserver out there to the customers and it was a very difficult job for folks like me who were part of the iPlanet practice within Sun Professional services ;-) The constant tinkering of the brand name also kind of tripped off a lot of customers. Initially, there was an app server called Kiva, then Netscape bought Kiva and it became part of the Netscape portfolio, so it was newly branded as iPlanet application server (as a joint venture between Netscape and Sun), then it was rebranded as Sun ONE (when the joint venture ended, and Sun acquired the assets), then as a final attempt to get more mind-share, they started rebranding everything with Java and it became Sun Java System App server ... Finally, they created an open source version of the app server which was called — Glassfish ;-)

In this era of “Make in India”, one honorable mention is Pramati, based in Hyderabad, India who created India’s own J2EE compatible application server !!

Glassfish was great and it was completely unlike what was built before, but by then the era of open source had fully taken root with Tomcat and JBoss, and who would in their right mind would pay money to buy application servers ? Anyway, the advent of open source app servers like Apache Tomcat and JBoss, made it even more difficult for commercial vendors and they kind of became the de-facto standard for deploying your apps ..

Fifth wave or Open source frameworks yuga

Java gave birth to a whole lot of frameworks like Spring, Hibernate, Struts, Log4J .. so many choices, that it helped developers to write good apps using these frameworks. I could say, to a great extent, it was these nameless/faceless open source community which has kept the Java flame alive after all these years. Over the years, the need for app servers diminished when we could use these frameworks on top of a simple and lightweight open source app server like Apache Tomcat. Several companies have built their entire businesses in building, consulting and maintaining these Java frameworks.

Definitely a big hit !!

Offshoots of Java

The success of Java prompted so many other side Java projects, this list is definitely not exhaustive as I did not follow everything. Some became popular, while some died a still birth ..

J2ME — Java 2 Micro edition — For embedded and mobile devices, seemed to be promising at some point of time, not sure where they stand now .. the project still seems to be alive as per this website.

Java Card — Used Java for things like Smart Card .. I think it was popular at some point of time, not sure where it stands now .. the project seems to be alive as per wikipedia

Java Ring — Definitely a bomb !! Not sure, what the use-case ever was ;-) But, I still own a Java Ring that I got at one of the Java One conferences ;-)

My proud Java Ring ;-)

Tools

Several players cropped up building IDE’s (Integrated Development Environments) to develop code using Java, there were so many vendors.. Too many to name, but in the end it was a battle royale between Sun Microsystems backed Netbeans and IBM backed Eclipse .. I have used both, but I liked Netbeans more (maybe, because I am ex-Sun guy and old habits die hard), as it seemed solid compared to Eclipse. But in the end, I think, Eclipse kind of eclipsed everyone else ;-)

Java has had issues related to things like garbage collection, over the years. This of course, enriched consultants like me who did Java consulting, but it also led to some degree of complexity and stability issues, if folks did not follow good practices. These have improved over the years, but ask any decent Java programmer, they will know their Java garbage collection settings by heart, it was like a rite of passage ;-)

Other tools which cropped up, in other areas like application performance management (APM), to debug Java applications. Some of them have been winners, as they have pivoted themselves with not just Java but adding other features related to Containers, Web services and others .. During my Java development days, I was more than happy with the tools that Java shipped with — like jprofile, jstat and others and did not really need other commercial tools.

Conferences and user groups

The Java ONE conferences in SFO at Moscone convention center were huge, and they kept getting bigger every year. I was fortunate to have attended 3 to 4 events (don't remember the exact count) as an employee of Sun Microsystems, and I was blown away by the sheer fervor and passion amongst Java developers. The compering by John Gage was an out of the world experience. Other eagerly awaited key notes were from Dr. James Gosling and the CEO, Scott McNealy ..

Another yearly ritual at Java One was a geeky way of throwing T-shirts at the audience !!

Java One T-short launches — https://www.youtube.com/watch?v=BBQoRDT9NII

Smaller Java conferences were held across the world, like Sun Tech Days in India and other places across the world.

God, I miss the buzz, the sheer energy and the round the clock meetings (from morning till midnight) at Java One. The energy and passion at the AWS Summit’s are similar and of course, much bigger in scale compared to Java One. But SFO and Moscone center was definitely an awesome venue for a developer conference.

Magazines and Books:

OReilly was the my de facto go-to publisher for so many amazing books on Java, they were amazing and I would wait with bated breadth for new books to get published .. The fact that we could buy lower priced Indian editions also helped the developers in India.

Some great OReilly books on Java ..

Sun & Java themselves published several official books on Java, which were also pretty good. The “Effective Java” book helped me ace several interviews ..

Java series books

the core J2EE patterns book introduced design patterns which struck deep roots inside my mind forever ..

Core J2EE patterns

then, came Wrox publishing with their Red colored books .. My mentor, buddy and colleague (we met at Sun Microsystems and now at AWS), Ramesh Nagappan was a prolific author and churned out books like anything ;-)

wrox ..

Another dear friend and colleague (again at Sun and then at AWS), Arun Gupta was an awesome, awesome Java evangelist and a prolific author of books on Java and churned out so many blogs !!

Dr Dobbs Journal was my magazine of choice in those days. The only place to get these magazines in Bangalore in those days (pre-2000), was at a library called “Eloor library” near Infantry road.

Twitter, GitHub, Blogs and Safari Online (from OReilly) are my go-to places for information these days ..

Some more stuff :

  1. Java Magazine has published a list of “The 25 greatest Java apps”https://blogs.oracle.com/javamagazine/the-top-25-greatest-java-apps-ever-written
  2. MUST WATCH — an awesome collage of videos from young and old, famous and no-so famous people -including from Dr James Gosling, “Moved by Java Video Series — Keynote”, https://www.youtube.com/watch?v=wJ3xxFwncFk

Java at AWS & Amazon ..

Apart from the fact that Dr James Gosling is now a Distinguished Engineer at AWS ;-), Java is present in many shapes and forms across various AWS services including AWS Lambda, AWS Elastic BeanStalk, and others. of course, running Java based applications on AWS Container Services like Amazon ECS, EKS is a breeze. AWS services like Amazon CodeGuru have made the job of doing code reviews and profiling Java apps easier by using Machine Learning !!

I am also very excited by Amazon Corretto launched by Amazon — a no-cost, multi-platform, production-ready distribution of the Open Java Development Kit (OpenJDK). Corretto comes with long-term support that includes performance enhancements and security fixes and is available across Linux, Windows and MacOS operating systems. This quote from Dr. James Gosling at the launch of Amazon Corretto sums up — “Amazon has a long and deep history with Java. I’m thrilled to see the work of our internal mission-critical Java team being made available to the rest of the world” — James Gosling”

Finally.

Java paved the way to a new wave of developers, who started their first journey into software with Java. With the promise of “Write Once, Run anywhere” , it made sure that the code bloat associated with writing operating specific stuff was reduced. And with the introduction of the Java Community Process (JCP), it also made sure the community had a say into the future direction of how Java went .. Alas, it did not help, Sun Microsystems to survive, but it ensured that its legacy of creating Java will live for many years. Java has created an ecosystems of millions of developers across the world, open source projects built on Java, great products built on Java and much more. It stills ranks as #2 as the top programming languages in the year 2020, how great is that !!

That, I could recollect most of the stuff which happened over the period of 25 years with an occasional google search, is testimony of the power of Java and its effect on developers like me !!

Thank you - Dr James Gosling, the folks at Java Soft/Sun Microsystems, the Java community, Java developers and everyone associated with Java across the world !!

Hoping to see the Java programming language survive and thrive for the next 25 years.

--

--

Mani

Principal Solutions Architect at AWS India, and I blog/post about interesting stuff that I am curious about and which is relevant to developers & customers.