Over a million developers have joined DZone.

Dev of the Week: Dr. Richard Warburton

· Performance Zone

See Gartner’s latest research on the application performance monitoring landscape and how APM suites are becoming more and more critical to the business, brought to you in partnership with AppDynamics.

Every week, we feature a new developer/blogger from the DZone community here and in our newsletter, catching up to find out what they're working on now and what's coming next. This week we're talking to Dr. Richard Warburton, developer at jClarity, author of an upcoming O'Reilly book on Java 8 Lambdas, and PhD in Computer Science. His most recent DZone posts include:

Thanks for talking to us! What have you been working on lately?

Well recently much of my spare time has been taken up by writing a book on Lambda Expressions in Java 8 for O'Reilly.  This is a pretty fun project because I've been waiting for lambda expressions in Java and the associated core library upgrades for years and years now.  There was a lot of specious debate around the feature and claims unsupported by evidence, but thankfully the pro lambdas argument carried the day.

As soon as there were early prototype implementations out there some of us in the London Java Community started running hackdays on the topic and getting developers to try it out as part of the Adopt-a-JSR program.  We concluded that while there were some advanced topics that people found hard to understand the basic concepts could be easily grasped if you knew how to introduce them to developers.  So that's why I decided to write a book on the subject.  I also help out with the London Java Community and their associated programs for getting more developer driven standards through Adopt-a-JSR and their JCP Executive Committee seat.

Professionally I'm working at jClarity - where we're building out a next generation Application Performance Monitoring product for the JVM.  This has been pretty fun to work on for a couple of reasons.  Firstly we're trying to figure out what the 'answers' are to their performance problems.  So instead of just graphing data we've built up a diagnosis algorithm for different performance problems that people encounter which has involved some statistical analysis and machine learning combined with writing profiling tools.

You write frequently about Java Garbage Collection -- could you tell me a little bit about why this topic interests you?

Performance tuning your Garbage Collector seems to be such a misunderstood area in terms of performance tuning.  I've talked to a lot of people about undertaking GC tuning on their application and you often hear that they feel there are limited benefits or that they would rather just rewrite their code. Now there's a time and a place for approaches like a rewrite but you can get pretty far by GC tuning.

So I concluded that there was a lack of understanding around the issue: developers view GC as a black hole that they don't understand and therefore don't touch. I've started looking into GC Algorithms, but I hope to have enough time to cover monitoring and tuning at some stage as well - which are the really important things for developers to know about.

Are there any particular developer tools or resources you couldn't live without?

I'm tempted to say linux, but I know I've used both mac and windows before so that wouldn't really be true.

I don't think there's anything developer wise I couldn't live without.  A lot of tools I think are quite contextual.  For example I use eclipse for writing Java code but I always keep my vim skills sharp in case I'm working with things like python or ruby.  I'm also constantly trying out new tools to see if they are an improvement or a negative, so whatever I'm using at the moment tends to evolve over time.

Resources wise I tend to get a lot of information from aggregator sites such as reddit, hacker news or dzone.

Do you have a favorite open source project (or projects) that you've
contributed to recently?

Over the last couple of years I've helped out a bit on the threeten project, which is implementing a better date and time library for Java 8.  I've also worked on a number of interesting toy projects which I have scattered over github, including:

  • Slab - a library of contiguously allocated off-heap Pojos
  • Multi-Inherit - a library that implements multiple inheritance in Java without compiler, ide or vm changes.
  • answers.js - the initial implementation of some statistical analysis and machine learning algorithms in html+js so its easy to just test these things out by just visiting a website.

Do you follow any blogs or Twitter feeds that you would recommend to developers?

I used to read "The Old New Thing" by Raymond Chen a lot.  His 'psychic debugging' blog posts  were awesome.  Unfortunately he seems to write those less regularly.  In the Java space I think  that Peter Lawrey's Blog and Martin Thompson's blog are both great.  The Java Specialists' newsletter by Heinz Kabutz has some good puzzlers in as well.  I also read Martin Fowler's blog, but I imagine nearly everyone does now anyway.

As to twitter there's lots of people to follow, but you should really follow my work colleague @johno_oliver.  He was forced to get a twitter account because it's a requirement for submitting a talk to JavaOne this year and we're always trying to get him to tweet more!

Did you have a coding first love -- a particular program, gadget, game, or language that set you on the path to life as a developer?

The first language I learned to program in was actually Visual Basic, but I really wouldn't say this caused me to be a developer! Nothing particularly jumps out.

Thanks, Richard!

Check out Richard's blog, http://insightfullogic.com/ and Twitter @RichardWarburto

The Performance Zone is brought to you in partnership with AppDynamics.  See Gartner’s latest research on the application performance monitoring landscape and how APM suites are becoming more and more critical to the business.


{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}