The Heroes of Java: Rod Johnson
he 10th part of my "Heroes of Java"
series. This is the Christmas edition and I would like to thank all
readers for their interest in my series! If you have ideas for interview
partners: Let me know!
Rod is an authority on enterprise Java architecture, a thought leader on open source development and business models, and a popular speaker at conferences around the world. He remains actively involved in guiding the direction of Spring and is a member of the Java Community Process (JCP) Executive Committee (EC). Rod has over 15 years technology, management and business experience. He holds a BA with Honors in Computer Science, Mathematics and Musicology as well as a PhD from the University of Sydney.
Who are you?
I’m a musician, computer scientist and businessman. The order changes every so often.
I spent several years as a Java developer and architect, wrote two books on enterprise Java architecture based on that experience, and out of that founded the Spring Framework, and then a business around that.
Your offical job title at your company?
I’m Senior Vice President, Application Platform, at VMware. Prior to that I was CEO of SpringSource.
Do you care about it?
I believe in what we’re doing and I really like working with my colleagues. I think VMware has some really good values as a company.
Do you speak foreign languages? Which ones?
I read French fluently, or at least I used to. My spoken French is extremely limited, however. Unfortunately, as for most English speakers, my foreign language skills are very poor.
How long is your daily "bootstrap" process? (Coffee, news, email)
It varies how much I have time for. The two essentials are a shower followed by a latte, which I prefer to make myself: I love the ritual. I’m not a morning person, so I need a kickstart. All up it takes about 30 minutes before I’m ready to leave the house, or go into my study if I’m working from home.
I also scan my email on my phone, to see if there’s anything urgent I need to think about or respond to. On the weekends I have time to read the New York Times and Sydney Morning Herald on my iPad, and cook breakfast for the family.
When I’m in the States I like to listen to NPR on the drive to work, when I’m not on conference calls.
You have a twitter handle? Why?
I originally got into twitter as a marketing tool [Ed.: @springrod]. But I always felt that it had to be authentic, so I would never tweet anything unless I truly cared about it and meant it. Today I often go a long time without tweeting, but I also tweet some personal stuff. My wife once got offended when I tweeted about her broken leg. I’m not sure why twitter can get addictive, but it does, at least from time to time.
Whom are you following in general?
Mainly other tech people whose thoughts interest me. And also friends. I’m happy to avoid celebrities. I don’t follow too many people, as I don’t want to be overwhelmed and find twitter another source of stress. There are enough already.
Do you have a personal "policy" for twitter?
Not really. I do think privacy is important, so I would never tweet things about other people that they might not want publicized. I’ve been surprised when people have tweeted things that I would have thought were better kept among friends.
I do believe it’s important that everything I tweet is honest. If I can’t say what I truly feel about something, I’ll shut up.
Does your company restricts or encourages you with your twitter usage?
There’s no formal policy. Certainly no restriction. We encourage people to tweet to interact with the developer community. Essentially, just to be themselves.
What's your daily development setup? (OS/IDE/VC/other Tools)
SpringSource Tool Suite. I love the convenience of an integrated distribution, optimized for the things I care about. And Powerpoint, unavoidably.
Which is the tool providing most productivity to your work?
Probably my smartphone. It’s incredible to think this technology didn’t exist just a few years ago. I couldn’t live without it.
Your preferred way of interacting with co-workers?
Anything but email! Email is a scourge on productivity and happiness at work. It’s evil, and most emails are pointless.
We’ve always used Skype a lot at SpringSource. It’s handy to be able to IM and then slip into a voice or video conversation as needed.
Face to face communication is best of all, but we have always been a distributed team.
What's your favorite way of managing your todo's?
I tend to use handwritten lists a lot. I’m most productive when I’m working through a list.
Lists are great, but pen and paper is a bit primitive. Tasktop is a nice way of linking a todo list with applications running on the desktop. It’s based on the Eclipse platform, too!
If you could make a wish for a job at your favorite company: What would that be? I’d want to be either CEO, or in a purely technical role as an architect/developer.
You're programming in Java. Why?
It’s the most popular language in the world, for some good reasons. It runs nearly everywhere, it performs well, it has comprehensive libraries, and it’s easy to understand code written in it. The last point is really important. Take C++, Perl or Ruby: A lot of code written in those languages is hard to pick up except by the author.
I find Java the most useful language for most of the things I want to do. It’s not perfect, but it’s a good tool.
What's least fun with Java?
It’s a verbose language. String handling sucks.
If you could change one thing with Java, what would that be?
There are quite a few things that could be made less verbose, like variable declarations. I still miss default method argument values from C++. On the whole I think the improvements being made in the language in 7 and 8 are on the right track, and will make it nicer to program in Java.
I’m not really a language purist or language geek. In general I think it’s more important what’s available around a language than in the language itself. Frameworks and libraries give a language leverage and make it useful.
What's your personal favorite in dynamic languages?
I’ve played around with Ruby and Groovy most, but I haven't fallen in love yet.
Which programming technique has moved you forwards most and why?
I think it was when I truly got object orientation. It’s such an elegant means of modeling a lot of domains.
What was the biggest project you've ever worked on?
Definitely the Spring Framework project. Not so much in terms of lines of code, but in terms of level of activity and team collaboration and how critically important it is as infrastructure relied on by millions of developers. I’ve worked on a number of big industry projects, especially in banking, but they were less challenging.
Which was the worst programming mistake you did?
I’ve made many mistakes, but at least I do tend to refactor them away! Unless Juergen gets to them first.