10.18.2006

Ant without the XML

Yet Another Build Framework was announced today on The Server Side. Gosling is much like Ant (according to the website, it's a fork of Ant) but without the XML. For a start, this is good news. Instead of using XML, you use Java to code your build script.

Do we really need another build framework? Sure writing build script in XML is not very convenient and has its limitations. But we have Maven2. Maven2 is still XML, but it is not build script that you write in XML, it's just your project configuration. Maven2 is the perfect implementation of DRY for your build script. After more than 10 years of Java existence, why would one still have to write in is build script the steps required to produce a JAR file?

Does this mean that Gosling has no future? No! I think it's very nice to have an alternative to Ant to create build script (for those who don't like Maven2 very much). I also think that this would be a nice framework to create build task for Maven2. Because you are using code to create your build script, you can use a debugger to debug them. In that respect, it's much better than Ant and Maven2. I imagine, it would also possible to write libraries of tasks that could be downloaded on the fly (using dependency management) to be able to actually not repeat yourself.

Right now, this framework requires Java6. This is not a very good idea to drive adoption, Java5 and even Java 1.5 should be supported.

But the feature I would want the most for this project would be to be able to write my build script in a scripting language. Be it Ruby (with the help of JRuby) and/or Groovy! That would be much better than XML :-)



6 comments:

Anonymous said...

Now that the project is finally up on java.net, I can start adding issues to the tracker, but here's a few response to some of your points:

1. I'm really hoping to have on the fly dep resolution as much as possible. So if you import the, say, Svn task (as yet unwritten), it will automatically download any of the libraries it needs to run.

2. I'm working on removing the 1.6 right now. It started off as a reason to play with the 1.6 betas but supporting 1.5 is more pressing than any 1.6 "cool" factor.

3. I've considered doing something like this with beanshell/groovy/ruby but this doesn't require any specialized knowledge from either the users or myself. ;)

-- cheeser

frohoff said...

Groovy ant scripting is pretty nice.

Anonymous said...

I disagree that we should "put up" with XML for describing builds in Ant. Groovy has AntBuilder, on which the Gant build tool is built. Using a general-purpose, dynamic programming language is a far better base for a build tool.

Gosling is an interesting experiment, but why suffer the straight-jacket of Java when you can use Groovy. Gant wins for me. (But that is no real surprise I guess.)

Anonymous said...
This comment has been removed by a blog administrator.
Anonymous said...
This comment has been removed by a blog administrator.
Elliott Broidy said...

Nice!

AdSense Links