The Heroes of Java".
Java Champions. He works as Architecture and Technology Manager at adesso AG Germany.
Who are you?
My name is Eberhard Wolff. I'm from Berlin, Germany. I am occupied with a broad
range of technical things like architecture consulting, training,
performance optimizations and a good share of coding. I am an author
of several books and articles and speaker with focus on Java, Spring and the Cloud.
Your offical job title at your company?
Architecture and Technology Manager.
Do you care about it?
It is important for business cards and customer relations. Otherwise I
do not really care too much about it, I had quite a few titles in my career.
Do you speak foreign languages? Which ones?
German is my mother tongue and I speak English. I learned Latin, too,
but that is not a language you speak and I guess it is quite rusty now.
How long is your daily "bootstrap" process? (Coffee, news, email)
Usually I have an initial look at emails and general news like
Twitter during breakfast at home. If weather allows and if I am not on a
business trip I cycle to work. That takes about 45 minutes. This time
is quite useful: I use it to clear my mind and think about the day.
That way I am booted up once I arrive at work.
You have a twitter handle? Why?
Yes, I do have - @ewolff. I use it to see what other people are doing and thinking.
Of course I also use it to share my ideas with the public. In a world
where organizational and geographic boundaries are less and less
important Twitter is a great tool. It does not take a lot of time to
read and write postings and keeps you up to date.
Whom are you following in general?
Friends, tech guys and a few companies or organizations.
Do you have a personal "policy" for twitter?
I only publish things that I would also tell a random guy on the
street - because at the end of the day that is what you do. This
usually works fine and I stick to that policy.
Does your company restricts or encourages you with your twitter ussage?
My company encourages me because it is also a part of the social media strategy.
What's your daily development setup? (OS/IDE/VC/other Tools)
My machine is a MacBook pro 13" with 8GB and 250GB SSD running Mac OS
X 10.7. I like its compact size, the speed of the SSD and that the OS
seldom gets in the way. Also I like the numerous UNIX tools available.
On top of that I am running SpringSource Tool Suite as an IDE which is
based on Eclipse. I use git as well as Subversion, depending on the project.
Which is the tool providing most productivity to your work?
Google. It is information at your fingertips. If you know how to use
it, it will provide an answer to any question you might have. I
wouldn't know how I could get anything useful done without it.
Your prefered way of interacting with co-workers?
adesso is a distributed organization. So I spend quite a lot of time on
the phone, with email, chat and other collaborative tools.
Face-to-face communication is also quite important so I am on the road
from time to time to meet co-workers.
What's your favorite way of managing your todo's?
Pretty old schooled: I have a paper notebook with me in which I write my todo's in and
cross them out once they are done. Also I mark emails that I need to work on.
That is pretty much all - travel light!
If you could make a wish for a job at your favorite company: What would that be?
My dream was to be at Steve Job's company NeXT which got acquired by
Apple later on. They built quite powerful workstation computers at
that time. I was always fascinated by their technology and the design
of their systems. It is ironic that their license agreement with Sun
never really took off - instead Sun started to invest heavily in the
You're programming in Java. Why?
Java is still the prevalent language for enterprise systems. Also I
believe that the platform - the JDK, the servers and so on - is the
most advanced out there and a great asset. So even if you move on to
Scala or Groovy you will still be able to use this. So in my humble
opinion it is not so much about the language than the platform and I
think the future for the platform is bright.
What's least fun with Java?
On the coding side Java is sometimes too verbose. However, the
drawbacks of the language were obvious early on and only lately they
are discussed in a broader public. The Java community is great - but
sometime it seems too fragmented to me. Instead of trying to learn
from other platforms and improving Java and the Java platform overall
we are too often concerned with the different Java sects.
If you could change one thing with Java, what would that be?
I think Java should be more liberal with regards to byte code
compatibility. Support for dynamic languages on the JVM was late. With
the rise of functional programming new requirements for the JVM will
emerge. To make the platform viable in the long run, these requirements need to be elaborated. I am afraid that due to the close relationship
between the language Java and the JVM this might not happen and would entirely set
back the platform . .NET's strategy to adapt to other languages
as well seems more promising to me.
What's your personal favorite in dynamic languages?
I think Groovy is a pretty good choice because it is very close to Java.
Therefore it is easy to learn and it also easily integrates in the
Java platform - which is very valuable. Apart from dynamic
languages, I think functional programming is interesting. To see where things
are headed Erlang is interesting to look at.
Which programming technique has moved you forwards most and why?
Unit tests and automated tests. They allowed me to ensure that at
least basic functionalities work without problems and therefore
increased my trust in the code I am writing. I find it odd that
more than 10 years after the original paper - which as was called
"Test Infected – Programmers Love Writing Tests" - JUnit is still not
used in every project and if it is, it is often not used correctly
i.e. there are no asserts, there is log output instead for manual
instead of automated tests etc.
What was the biggest project you've ever worked on?
I have worked on quite a few big business applications that were done
by larger teams. I learned a lot about how these projects work during
my time there - in particular about non-technical aspects like
organization and the like.
Which was the worst programming mistake you did?
I guess it is common to look at code that you have created not too
long ago and ask yourself how you could possible been so stupid. So I
guess my worst mistake is still ahead of me - and as far as I know no
lives was really hurt by any of the mistakes I have made so far, so
maybe it is not that bad after all.