If Java was a human being, it would be old enough this year, at the age of 21, to go and get itself shit-faced in a bar.
I first came across it while working at a financial tech company run by some former colleagues of mine from a previous financial tech company. We wrote an applet which pulled exchange rates from Telerate and showed them on a map. It looked pretty, but took forever to build, took ages to download over a dialup modem, and ran like a one-legged dog in Netscape. I wasn’t impressed.
I kind of ignored it through the late 90s, sticking instead with Delphi. I tried working with Java in Eclipse, briefly, around the early 2000s, and I still wasn’t very impressed. So I made Delphi keep doing things it wasn’t really cut out for, like an elderly horse forced to run steeplechases, and then I abandoned it in a field somewhere, metaphorically speaking, around 2007.
I knocked around with a dodgy crowd (PHP, Python, Perl, mainly) until 2013, when chance took me back to Java again.
And what a difference. JIT technology combined with processor speedups had made it almost as fast as compiled C in many cases. And the compiler itself was impressively speedy, too. A whole ecosystem of cool things had sprung up around Java itself and the JVM — a whole host of domain-specific languages like Groovy and Scala, for example.
I’ve spent the last three years catching up. I’m finishing up a project which uses Vaadin for the front end, talks to a mySQL DB through Hibernate, calls into a bunch of REST APIs to manage some jobs in the cloud, and generally uses some nice Java features that I was more or less ignorant of three years ago. It’s not finished yet, but I’m really pleased that I’ve been able to make as much progress as I have over the last couple of weeks. I mean, the thing has the feel of a proper product. I’m happy with it.
And I’m happy with myself for being able to learn some fun new stuff. My relationship with writing software hasn’t always been a great one — it’s always been a means to an end for me. But the tools that come as standard now — intelligent IDEs, fast compilers, source control, issue management, continuous integration — make it so easy to get up to speed.
Back in the day, we had to do all that stuff ourselves (and I’ve been doing this for money for 30 years now). And it uniformly sucked, with as much time being spent on maintaining the toolbase as we spent on writing the code itself. Having that support really makes a difference. I’ve actually enjoyed doing this project.
Living in the future doesn’t suck some times.