[Scons-dev] File-based build tools will never handle Java

Greg Ward greg at gerg.ca
Thu Sep 6 14:57:28 EDT 2012


On 06 September 2012, Kenny, Jason L said:


> We had been talking about this at work a little, and I was unclear (

> since it was about 8 years since I last wrote Java code) what are the

> issues you are having. I know we had talked here at work how broken

> Eclipse is with Java build. It often messes up a building the code, so

> one often finds that they are not debugging the code they thought they

> write. It is to such a point that all the Java developer here just

> clean the project and rebuild. I know I want to go through the

> exercise in SCons myself at least as a learning exercise.


Huh. I thought that Eclipse worked pretty well as long as you satisfy
its expections -- like put the code from com.example.myapp in
some/path/com/example/myapp.

But then, it's been years since I worked with Eclipse, and that was
only with a system that flagrantly violated many of Eclipse's
expectations. So I assumed most of the wonky behaviour we saw was due
to our local wonkiness, not Eclipse brain damage.


> I keep asking myself what can build Java correctly.


Well, Java build tools can. I know from experience that Gradle works
quite nicely; I had a hard time picking SCons over Gradle. If I had to
do the build for a pure-Java system, I'd pick Gradle in a heartbeat.
(Which is also about how long it would take me to run away from ever
working in Java again. And it's not the language, it's the insular
platform mentality that leads to a fanatical devotion to
over-engineering re-invented wheels.)

Apparently Ant and Maven can also build Java projects, but I cannot
imagine why anyone would voluntarily use such tools. Hell, I cannot
imagine why anyone would *write* such tools. Their very existence and
inexplicable popularity pretty much sums up what's wrong with the Java
universe.

As for *general-purpose* build tools that can handle Java? I'm not
aware of any. Gradle clearly has ambitions towards being a
general-purpose build tool, and AFAICT it's got a good start. But
because Gradle runs in a JVM, it 1) attracts people who cannot
conceive of code that runs outside a JVM and 2) repels people who just
want to run normal code on a normal OS.

Greg
--
Greg Ward http://www.gerg.ca/


More information about the Scons-dev mailing list