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
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.
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
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.
You have a twitter handle? Why?
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.
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
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.
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.