Very widely used does not mean everywhere. I would be curious as
to why he does not know the tool. For al I know, it might be that the
unusual tools worked better than the usual tools on the projects that
the person had worked on. Or maybe, he just had no choice in the
matter.
So the 50% to 70% who do not use a tool should still know it?
Rather a waste of time.
I don't think it is, not in this case. There are few Java build tools:
it really comes down to command line, IDE, Ant and Maven. Developers
should understand C.L., so we are really talking about whether they
should know all of Ant, Maven and the build methodology for at least one
IDE.
If they use an IDE at all they'll know how to build in it, that's taken
care of. So what about Ant and/or Maven?
If they have any kind of build automation, and ideally a CI system, then
a build system like Ant or Maven is attractive. And they _should_ have
CI triggered off scheduling and/or commits, so it all ties together.
If they think they'll switch IDEs, or team members use different IDEs,
or they simply don't want to tie builds to an IDE, then Ant or Maven are
also attractive.
Over the course of a few years any decent developer can try at least one
realistic Ant buildfile for a project, and a POM for Maven for the same
or different project. It's maybe a few days' worth of hours, and once
you've learnt the fundamentals of both systems you're better prepared to
assess which one to use in the context of project builds in a larger CI
system.
If you know the basics of all the major Java build systems then you are
seriously better placed to decide which one should be used for a given
situation. If you don't have that knowledge you may as well keep your
mouth shut during build discussions. As senior as you might be, it'll be
*you* that's the waste of time.
You could just ignore almost all of that. In which case, sooner or later
as a senior or intermediate Java developer you'll end up in a new
company or in a new project where Ant or Maven is used. If I am the
technical guy in charge of you in that new environment and I find out
you're clueless about And and Maven *and* you've got 5 or 10 years in
the biz with most of that being Java, you'd best hope you're not on your
probationary period.
I am more interested in the reaction to "We use <tool> here."'
So would I be. And you know something, if we say "we use Ant here", and
someone gets pissy because they don't know Ant and prefer Maven, I'm
shutting them out - they are getting told in no uncertain terms that
they are already making themselves look bad, and that they'd best be
busy on their own time learning Ant.
If on the other hand the new guy says, when learning that "we use Ant
here", that he knows both Ant and Maven well, and makes a reasoned
argument that he should continue to use Maven (Ant->Maven and Maven->Ant
conversions aren't that grotesque), and even that maybe *all of us*
should switch to Maven, I'll listen. I'll listen because he's bothered
to learn his tools.
Sincerely,
Gene Wirchenko
AHS