Marcus and I have known each other for some years now, and I am very very pleased to see that we finally could make it happen to have him speaking at JavaLand as a Keynoter. And what could be better than having a JVM veteran talking about this year’s anniversary: Happy Birthday Java! Thank you Marcus for taking the time – I am looking forward to a beer or two at JavaLand. I follow his rumblings about dynamic languages on the JVM and surgeries on Twitter (@lagergren), but it’s obviously best to see him live on stage at JavaLand! So, if you haven’t go ahead and register.
Marcus has worked with Java since 1995 and with runtimes since 1999. He started out with JVMs as one of the founders of Appeal Virtual Machines, the company that created the JRockit JVM. His JavaLand keynote will be a historical trip down memory lane – going through 20 years of Java and JVM implementations. This interview will be partially from Marcus’s own perspective as one of the architects behind JRockit, with plenty of stories from the trenches, like the benchmarking competitions between BEA/Oracle, Sun and IBM.
We will see how Java and the JVM turned into the robust high performance server side platform that it is today, partly through personal observations and partly through a more objective “what a long strange trip this has been”. He will take you back to 1995 in a time machine and slowly bring you to 2014, going over the major Java releases and the runtime innovations made in the JVM side to get us here. Finally, we will do a short trip into the future, even though the future is always fuzzy, to explore what might be coming next. With Java 8, the biggest release in Java history, Java is more vibrant and alive than ever before. This is an evolution that won’t be stopped.
Eisele: 20 Years of Java. Wow! How long have you known Java? And I know you’ve been writing the JRockit JVM since back in the day…does writing a JVM actually mean knowing the language it is written for? The JVM is written in C/C++, correct?
Lagergren: I first started working with Java when I was a research intern at Ericsson Medialab in 1995-1996. This was Java 1.0 and its betas. Back in those days the JDK fit on one floppy. Yes. Floppy. We had those then.
Java is also a bit different from, say, C, because it has such a large API library in the JDK. I need an IDE when I program Java to remember what all the library functions are called, and get auto completion and so on. Otherwise, I’m an Emacs dude. So, I wouldn’t call myself a Java expert, at least not on the libraries, but I get stuff done. Especially these last three years when the majority of my programming time has been in Java for the first time in my life. Usually, when I have a Java question in my job, I ask someone else in the Java language team, often my poor colleague Joel Borggren-Franck.
When it comes to C, it’s my native language, so there, you won’t catch me off guard with anything. When it comes to C++, I don’t think anyone fully knows that horror. Not even Bjarne Stroustrup. It’s rapidly turning into a Frankenstein’s monster pseudo-runtime language as well, so I hope it will be put out of its misery soon.
What is your favourite memory around Java? Did you ever meet James Gosling and win an argument against him?
I have indeed met Gosling several times, but I’ve never had a chance to have a deep, long conversation with him. Usually, we agree on what small issues we have discussed.
My favourite memory of Java has to be either the early JavaOnes at the end of last century or the beginning of this century, and pushing JRockit there both on the exhibition floor and elsewhere. Otherwise, I’d pick any triumphant moment when we were leading the benchmark wars between 2000-2005, competing in server side performance with Sun HotSpot and IBM J9. Once, we were 30% better than anyone else, and I seem to remember this was due to us being the first to implement compressed references. That was an awesome moment. I actually remember that being met with some hostility by some people from Sun then, who were bad sports. But usually, we had a great time and lots of great conversation with our competitors.
All in all, the best job of my life was when I was JIT lead for JRockit and shared an office with equally driven compiler engineers. It’s great now too, but we had something special in the underdog position against Sun and IBM, and the ability to completely reshape our code base whenever we needed to. Those were great days. We listened to massive heavy metal all the time. Now, I work in a cubicle farm, so it’s headphones instead. Not the same feeling 🙂
Looking at JVM technology today compared with the JRockit beginnings: If I asked you to name the most significant changes in a couple of sentences, what would that look like?
If you are talking about JVM technology and not the Java language, I’d say low latency GC technology, invokedynamic and the ability to do in-production monitoring with very low overhead, which Java Mission Control enables. If it’s Java, Java 8 is the biggest and most revolutionary feature…ever…I think.
I think it’s safe to assume that working in the language team at Oracle is one of the most amazing places, surrounded by extremely smart people working on the future of what so many people use on a daily basis. Do you personally feel this as pressure?
No I don’t. I feel that it’s an asset, and it’s the main benefit of my job and the reason that I love it.. There is always someone around who is smarter than me that I can ask for help, and the team I am on is so senior that it’s virtually self managing. There is no doubt as to what I should do when I sit down at my desk in the morning, and the competence level of the engineers turns everything into a well oiled machine. I am very blessed to be in such an environment.
I would feel pressure if I were the smartest engineer in a place of low performers, not the other way around. The language team is a place where you continuously learn stuff from your colleagues, and I love that. Picturing myself as, say, a web frontend consultant, always makes me shudder. (Disclaimer: I don’t have anything against web frontend consultants, or think they are stupid – I just don’t think I’d get to solve complex algorithmic problems every day there, which is what I live and breathe for).
What are you looking forward for in this year of celebrating the 20 year success story?