One of the surprising things about JavaOne for me this year is the amount of talk about Ant. Not the normal "Ant is cool" buzz that I hear (and which still amazes me), but a different kind of talk. There's talk of experimentation and trying out new things. And it all seems to be focusing on how to alleviate the burden that the decision to use XML as the Ant configuration format has caused.
When I first chose XML as the configuration format for Ant, I figured it was a great way to replace the simple properties files that I was using before with a structure that could define hierarchical data. However, as time goes on the XML format becomes more and more burdensome to actually getting something done. Other people in other fields have noticed this XML burden as well and have come up with innovative solutions. One excellent example is the Textile human web text generator which turns a simple text format into HTML markup.
For a long time, I've thought that the way to alleviate the burden for Ant would be to use some sort of scripting language to front end the Ant task object model under the covers. After all, Ant build files have been picking up more and more logic control primitives and it's become a scripting language—even though many people including myself have cried out against it. In fact, as noted by Ken Arnold in a conversation yesterday, it was probably inevitable that the language has become as procedural as it has.
In that conversation with Ken, he forwarded his idea that the thing to do would be to figure out how to use the current Ant object model from some sort of scripting layer and that if he had a few months to spare, he'd go play with it. The funny thing is that I've been getting email from Jonathan Simon over the last couple of weeks about doing exactly this. Turns out that Jonathan is one of the contributors here on Java.net and wrote a piece about scripting with Jython instead of XML. I ran into him here at JavaOne and after my apologizing for my not keeping up with his mail (I'm so in need of a mail-only day), we talked a bit more about his ideas and where he's at. I think he's onto something. And based on the conversations I've had with Ken and several other people, I'm really enthusiastic to see what happens.
Jonathan has taken these thoughts to the next level in an email to the ant-dev mailing list. While I'm no longer involved in the day-to-day development of Ant, I wish Jonathan well in his efforts to look at different and potentially better ways to use Ant. And I think he's onto something great here. Hopefully his ideas will be well received by the Ant developer and user communities and will grow into a great implementation.