|
|
|
An Interview with Tom Copeland of PMD
|
Article Topics
Introduction · Maven · The Future Page 3 of 3
The Future
Stelligent: What does the future hold for PMD? What features are most needed now?
Tom: There's a lot of work
still to be done. The JDK 1.5 support isn't perfect yet, although it's
getting closer as more people are using generics and annotations and
giving feedback. Big jobs still to do include full symbol resolution,
nailing down the data flow analysis module, and doing a control flow
graph. Those are three pretty complicated tasks that would be worthy of
any PhD thesis :-)
Stelligent: Who are the players in PMD besides you?
Tom: Recently Miguel Griffa has
written a bunch of rules, as has Eric Olander. Philippe Herlin is a
stalwart maintainer of the Eclipse plugin, and Jiger Patel keeps the
jEdit plugin up to date. And a host of folks have contributed bugs and
feature requests and patches once or twice... it all helps.
Stelligent: People offer the project code- do you require corresponding JUnit tests? If not, who writes them?
Tom: Nah. It's nice if someone
includes the tests, but if not, I write them. Either way is fine; if
the tests are included that's great, and if not, writing them helps me
ensure I understand the code.
Stelligent: What is your favorite PMD rule?
Tom: Probably one of the oldest ones - unused local variable.
That's usually the first one I run on a new clump of source code;
anything it finds can be snipped out and everything gets a little
cleaner. It's especially nice when it finds a variable that gets
declared, initialized, and assigned a couple times - but never used.
Getting rid of that kind of thing is pretty cool.
Stelligent: You are a Ruby guy. What's your take on Ruby and the corresponding flame wars that take place when someone mentions Rails and Java in the same sentence?
Tom: Yup, Ruby is pretty cool, and Ruby on Rails
is really making it take off. I help run RubyForge and our average hits
per day has gone from 50K in January to 90K so far this month (May). I
don't really have a strong feeling about the language wars; I do find
programming in Ruby to be pretty fun, though. It seems like I can do a
lot with a little bit of code. For example, the Ruby unit testing
framework has a thingy that lets you ensure a block of code throws an
exception; to use it, just do this:
def test_delete_contact
assert_raise(FooException) {@r.delete_contact("foobar")}
end |
Nifty, huh? Also, having done a bunch of JNI coding at one point, I
feel like doing Ruby native extensions are a breeze compared to javah
and pinning global references and all that.
Stelligent: How do you manage to keep a full time job, run an open source project, and have a family of 5 children- do you sleep?
Tom: I'm lucky to have a job working for Rich Kilmer,
who does a ton of open source coding and helps me maintain RubyForge.
Also, since InfoEther has a PMD product, that's supportable on business
time as well. And, you know how it is, the longer you've programmed,
the better you are at getting things done quickly with little scripts
and libraries and whatnot. So it just all kind of works out somehow :-)
|
|