Re: Incremental Java Compile
Joshua Maurice wrote:
On May 5, 10:45 pm, "Mike Schilling" <mscottschill...@hotmail.com>
wrote:
Joshua Maurice wrote:
PS: I do agree that we need to componentize. I disagree that
incrementally correct builds are useless after that.
I've worked in systems roughly as large as yours (tens of thousands
of source file) which were layered, so that each seperately compiled
subsystem had at most a few hundreds of files. At that point,
there's no particular advantage to avoiding clean builds.
During development, a developer works on a small set of subsystems.
He knows when he's changing interfaces rather than implementations,
and at that point can afford the clean build.
The automated build-and-test might spend an hour or so on the clean
build, but that's a small fraction of the time the tests take.
We recently were handed out this book describing Scrum, a variant of
agile development. I agree with what the author bolds and italicizes,
that interfaces need to be \stable\ (just the word \stable\).
I would love what you describe. However, my fellow employees and
managers understand little and respect little of what decoupled,
relatively well thought out, well defined interfaces can do for them.
It's always about the new feature. No code cleanup ever really get
done. My only real option to attack that front is to vote with my
feet. (As an example, I remember this one time that an architect at
the company in question said it was perfectly fine to use a finalizer
to manage C standard library heap memory allocated via JNI. I
protested quite vigorously.)
If the situation is completely (^&%ed and no one with the power to fix it
will do anything, by all means find a better place.
Also, as a potentially incorrect observation, do you think most java
developers use notepad or some other text editor to do their work? I
would suspect that most people use Eclipse nowadays. Eclipse is almost
exactly what I want from a build system, except it's limited to Java.
It's a nearly fully incrementally correct build system, and is a lot
better than I could ever do on my own as a side project. Would you all
be saying the same straw man arguments if you lost your incremental
IDE and had to use notepad / wordpad / emacs without all your cool
java-specific stuff to do your work? I think not.
I don't use Eclipse, not do I do builds from within the IDE I do use
(IntelliJ), since our build system is complicated enough to require ANT.
(I could probably make IntelliJ call ANT, but I've never bothered.)
Anyway, I don't think people are dismissing you because they have a solution
they won't tell you about. Your company has built a horrific system far
outside the parameters of what Java was intended to handle, and they're
paying the price for that. It's a lot like someone who puts 100 novels in a
single Word document and complains that it's slow. Yes, it is.