Friday, September 7, 2012

The Heroes of Java: Stephen Colebourne

One more to go until my "Heroes of Java" series reaches the 20. No 19 is reserved for "Mr.Time and Date". With him also being nominated for this years annual JCP Awards as "Member of the Year" I finally had the chance to send him my little interview. Thanks for taking the time Stephen!

Stephen Colebourne
is a Member of Technical Staff at OpenGamma. He is widely known for his work in open source and his blog. He created Joda-Time which is now being further developed as JSR-310/ThreeTen. He contributes to debates on the future of Java, including proposals for the diamond operator for generics and FCM closures, both of which are close to the adopted changes in Java 7 and 8. Stephen is a frequent conference speaker, JavaOne Rock Star and Java Champion.

General Part
Who are you?
Stephen Colebourne. Java Champion, conference speaker, spec lead of JSR-310 dates and times, creator of the Joda Open Source projects, and occasional blogger of controversial topics.

Your offical job title at your company?
Member of Technical Staff

Do you care about it?
OpenGamma is an open source company. We are producing software for the finance industry, helping banks and hedge funds work out how risky their investments are. Being radically open in my work life means that
work is an extension of my other open source projects and I, or anyone else, can re-use the code I'm writing.

Do you speak foreign languages? Which ones?
I speak about 100 words of French, 10 words of German and 5 words of Dutch and Swedish. In other words I'm a typical person from the UK.

How long is your daily "bootstrap" process? (Coffee, news, email)
I'm cutting down on some of the waste here at the moment, but it still takes too long. Email is the biggest headache, when it frequently contains issues to be investigated.

Twitter
You have a twitter handle? Why?
@jodastephen. I reserved the handle as it was clearly a name-grab, and I didn't want anyone stealing my name. I was generally unconvinced until I spoke to someone who explained twitter as an advertising medium. From there I effectively use it to advertise my point of view.

Whom are you following in general?
A few people. I don't really "follow" people - its more a list of people that will get news and information to me quickly.

Do you have a personal "policy" for twitter?
I don't think twitter really is a social medium. Its just a broadcast/opinion one. Its most effective at disseminating news. The key thing is to keep your feed focussed - have a second feed if you have a second interest in life.

Does your company restricts or encourages you with your twitter ussage?
OpenGamma is happy to encourage twitter usage within sensible bounds.

Work
What's your daily development setup? (OS/IDE/VC/other Tools)
Eclipse on Windows, with SmartGit. I used to dislike git, but now I think its great. Trouble is that it took a week of deep-dive into git commands porting broken svn repositories to git for me to understand what the heck git was really all about. Its that usability that still worries me, but SmartGit makes it tolerable now day to day.

Which is the tool providing most productivity to your work?
I guess that is Eclipse, although git is helpful these days.

Your prefered way of interacting with co-workers?
I walk over and talk. My legs need stretching and its not far. If its non-urgent I'd send an email. I don't like IM.

What's your favorite way of managing your todo's?
Starred items in Gmail and a paper list of TODO items that I cross off. A simple online issue tracker can work, trying the GitHub one right now for JSR-310.

If you could make a wish for a job at your favorite company: What would that be?
Once upon a time I wanted to be paid just to write low-level library open source. Now I'm not so sure. Having customers and a focus is important to be able to see code being used.

Java
You're programming in Java. Why?
Its the world's enterprise language of choice. Being in the mainstream makes sense to me.

What's least fun with Java?
Almost everything! No seriously, Java is a poor language at this point compared to other languages out there. It is unnecessarily verbose in many places and hasn't tackled the real issues developers face, including null pointers, type conversion, properties and the most basic operator overloading.

If you could change one thing with Java, what would that be?
In terms of the pain, duplicated code and general waste in Java developers lives, properties are by far the most important feature missing. They should have been added in preference to generics and in preference to lambdas.

What's your personal favorite in dynamic languages?
If I had to use one, it would be Groovy, although I really don't have a need to do so. Basic static typing is far too useful to throw away. The problem is some developers in today's "more, more, more" society think that more static typing is helpful, when most of the time it simply results in humans trying to second guess compilers. By contrast, throwing static typing away for a dynamic language is giving up on a tool that stops many, many simple errors. Why would I want to give up on that? The most interesting languages have static typing but feel dynamic, such as Fantom.