Re: JDK and Eclipse
I disagree. That is, you (and others) may advocate Ant and/or
command-line javac, but I am happy using Eclipse to compile my classes
and build my jars without the assistance of Ant.
Key word there is "my". What you do as a solo practitioner is different from
what a team needs. For best quality production software there is risk
associated with single-IDE development that is obviated by using standard
command-line tools. I have seen IDE dependencies creep into every (team)
project I've worked with that mandated Eclipsen as their IDE.
At the very least I've found that using an alternative such as NetBeans on the
same code base, using a separate build environment checked out from the
version-control system independently of Eclipse, to be effective against IDE
You do use version control, of course, right?
The minute you share code with another programmer, you must allow for
effective development with more than one IDE, which means effectively
building, testing and deploying without the IDE.
Even as a solo practitioner I find it vital to set up an Ant build independent
of the Eclipse build so that I can test that both means achieve the same results.
Ant is certainly not the undisputed champion of build management either.
I am just as likely to try Maven or even Make! ;-)
Among those three, I've heard bitter complaints about Maven, possibly from
people who didn't know better but they were credible, and make is just silly
for Java when Ant is available. Ant isn't perfect either, but you can extend
it with custom targets and even without that it gets the job done really well.
Having said that. I wouldn't criticise anyone for using Ant. It is a
respected and widely used tool.
I do criticize everyone who insists that (shared) code should be built using
just one IDE. Choice of IDE (including using no IDE at all) should be up to
the developer. Set goals, such as "the build will work and the code will work
with command-line tools", not the means to reach them.
That said, any of the good IDEs will let you manage the complete development,
build, test and deployment cycle.