25 years ago today, Java 1.0 was released to the world. I’ve written up a piece at InfoQ which has more detail about it, but I wanted to add my flavour to it from a personal perspective.
I got involved with Java when it was released in alpha in 1995, probably at the start of my last year at University. Until then I’d been learning many new programming languages, having taught myself Prolog and ML ahead of the University course requirements, but until then I’d mainly done Objective-C on my NeXT station. This was at a time when my fellow University students were looking at Linux, probably 1.x releases (I think it was 1.3 at the time when I had my NeXTstep 3.3 software).
Anyway, a friend of mine was interested in learning Java, and as I’d had object oriented experience as well as familiarity with C, we started putting together a few dummy apps. One of the first we wrote was a crossword app, the kind you now see on newspaper websites. Of course as an Applet it would no longer run, but it was a great way of demonstrating the power of the Java language. (It was a step down from Objective-C and AppKit, but that’s a story for another time.)
After University I got a job at IBM working on Java applications, and shortly
afterwards helped kick off their training courses for Java, including OB-73,
OB-74, their Java training material. At the time, students were converting from
C and writing C-like Java code, including methods taking and returning
arguments in place of their
char* arguments. One such student
complained that “Java was crap” because “You could only have 65534 methods” and
that “he had to add a second class.” Yes, dear reader, he had translated an
entire C app into static methods in a pair of classes.
Off the back of that experience, and a contract for developing a Java GUI front end, I set up a Java and training consultancy with another of my ex-IBM friends. This would take me teaching Java around the world, from the Indian subcontinent to the American continent on the other side. I got involved in Java at conferences, teaching J2ME programming for the Sun roadshow, and even had some interaction with open-source projects (including the original Log4J release).
The Java GUI project dried up with the collapse of oil prices in the late ’90s, and the training and consultancy work dried up in 2001 after the airline industry collapsed and the dot-com bubble went with it. In retrospect, I should have focussed more on open-source development at the time, but the world was a different place and there were even concerns that programming would be off-shored to cheaper places.
Instead I shut down the company and went to work for as a Java team lead, followed by moving into the investment banking industry where I was known for both my Java nous and my ties. Sadly, I no longer wear ties (though I still have them) but Java keeps on going.
My work in investment banking involved a variety of different languages and architectures, but when Swift was released, I saw the future of macOS/iOS. I wrote a book on Swift the year it was released, and updated it for the open-source release the following year. I ended up working at Apple for a while, using both my Swift and Objective-C skills for internal use only. The only visible output of what I’ve worked on was the Xcode protobuf colouring support, the first Swift CVE vulnerability, as well as a variety of commits to the Swift Foundation library for Linux.
Today, I work in the cloud but I still keep my hand in with Java, and specifically with Eclipse. I was exposed to Eclipse in the early stages with my IBM Java training courses – at the time, I was teaching WebSphere courses, and at the time web development was a combination of VisualAge for Java, and HTML code was edited in different editors. IBM sponsored Eclipse to be the basis of WebSphere Studio 1.0, which had initially HTML editing but then took over the Java compilation for the applications. I helped do a lot of testing on macOS, and then as time went on, got more involved with the project. Today I’m a platform committer on Eclipse, a Java Champion, and I’ve written books on Eclipse and Swift, with a Java one in the works.
Java has been a key part of my career and my technical life, and will likely to continue be through to my retirement. Thanks Java!