HOME SCALA & F# JAVA .NET WEB GROOVY & GRAILS ANDROID & IOS NOSQL ARCHITECTURE AGILE & SCRUM AGILE DEVELOPER  

IN THE BRAIN OF RUSSEL WINDER, GANT: ANT FOR THE GROOVY AT HEART
In the Java world, Ant has been a runaway success. Almost as soon as it appeared, it took over from Make as the standard build tool for Java-based systems. Arguably the single biggest factor in Ant's success is the platform independence of the tasks as far as the person writing a build is concerned -- instead ofhaving to carefully craft shell scripts do deal with different platforms as is the case with Make, Ant just handles it all.

However, there are some problems with Ant. The two most important of these are a) XML; and b) XML. XML is a hard to work with markup language at the best of times, and because it is purely declarative, it is very hard to express even simple control flow constructs. Also Ant XML files do not allow easy synthesis of targets; the XML has to be hand written explicitly.

How can this be improved? Replace the use of XML with the use of a dynamic programming language! Whilst Jython and JRuby are options, the obvious choice due its tight integration with Java and the JVM is Groovy.

In this talk, Russel will explain how Gant is a framework for scripting Ant tasks using Groovy. He will show how Ant tasks are scripted, but also how new abstractions can be created to make things even easier. He will explain how the "killer blow" of Gant is that you can program the writing of the targets, and you have control flow. Anyone who has used SCons, Rake, or Rant will be familiar with the freedom and expressivity of using a dynamic programming language to program builds. Gant brings this capability to the build tasks every Java programmer already knows; the Ant tasks.

The Gant Challenge
The Gant Challenge: Bring a small Ant script that irritates you to the session and see it transformed into a Gant script that will be more elegant.

(It is true that Maven has dented Ant's hegemony of the Java build world a little. Many people like the convention over configuration approach. Many people though still prefer the freedom of Ant, but in a hybrid way, they use the Maven Ant task to gain access to the Maven repository, which has become an essential resource for most Java projects.)

PS Gant is an integral part of Grails, so there are lots of Gant users already.


PROGRESSIVE JAVA PODCASTS
Sven Efftinge:Xtend - A Programming Language for Java Developers, Xtend
Sven Efftinge : 1st Feb 2012
View Podcast: Xtend - A Programming Language for Java Developers,
Martijn Verburg:Adopt a JSR, JSR
Martijn Verburg : 1st Feb 2012
View Podcast: Adopt a JSR,
Tobias Lindaaker:Neo4j Internals, Neo4j Internals
Tobias Lindaaker : 25th Jan 2012
View Podcast: Neo4j Internals,
Dave Springgay :HTML5, Android Webview and java bridging, HTML5 & Android Webview
Dave Springgay : 19th Jan 2012
View Podcast: HTML5, Android Webview and java bridging,
Paul Butcher:ScalaMock: 'Power' mocking for Scala, ScalaMock
Paul Butcher : 18th Jan 2012
View Podcast: ScalaMock: 'Power' mocking for Scala,
Malcolm Sparks:Reflections on a real-world Clojure application, Real-world Clojure
Malcolm Sparks : 17th Jan 2012
View Podcast: Reflections on a real-world Clojure application,
Julian Birch:Lightning talk: 1000 lines of Clojure, 1000 lines of Clojure
Julian Birch : 17th Jan 2012
View Podcast: Lightning talk: 1000 lines of Clojure,
Neale Swinnerton:Lightning talk: A Quick Guide to paredit-mode, paredit-mode
Neale Swinnerton : 17th Jan 2012
View Podcast: Lightning talk: A Quick Guide to paredit-mode,
Nick Rothwell:Clojure and MaxMSP, Clojure & MaxMSP
Nick Rothwell : 17th Jan 2012
View Podcast: Clojure and MaxMSP,
Peter Ledbrook:Upgrading to Grails 2, Grails 2
Peter Ledbrook : 16th Jan 2012
View Podcast: Upgrading to Grails 2,
John T. Davies:Enterprise Integration - The seriously nasty stuff, Enterprise Integration
John T. Davies : 12th Dec 2011
View Podcast: Enterprise Integration - The seriously nasty stuff,
Luke Daley:Smarter Testing with Spock, Spock
Luke Daley : 8th Dec 2011
View Podcast: Smarter Testing with Spock,
Andres Almiray:Getting Groovy on the Web and Desktop, Getting Groovy on the Web and Desktop
Andres Almiray : 8th Dec 2011
View Podcast: Getting Groovy on the Web and Desktop,
Erik Pragt:DiscoBot: Groovy on Android, DiscoBot: Groovy on Android
Erik Pragt : 8th Dec 2011
View Podcast: DiscoBot: Groovy on Android,
Guillaume LaForge:KEYNOTE - Groovy Update, KEYNOTE - Groovy Update
Guillaume LaForge : 8th Dec 2011
View Podcast: KEYNOTE - Groovy Update,
OTHER PROGRESSIVE JAVA EVENTS
Jan Machacek Spring in Scala,  Spring in Scala
FREE EVENT: In The Brain of Jan Machacek
London, Wednesday, February 8th
Official RNIB Accessibility Hackathon, Official RNIB Accessibility Hackathon
CONFERENCE (2 DAYS)
London, Saturday, February 11th BOOK NOW!
ThoughtWorks Quarterly Briefings:Is programming language choice a good thing?, ThoughtWorks Quarterly Briefings
FREE EVENT: Is programming language choice
Manchester, Monday, February 13th
ThoughtWorks Quarterly Briefings:Is programming language choice a good thing?, ThoughtWorks Quarterly Briefings
FREE EVENT: Is programming language choice
London, Thursday, February 16th
London Android User Group:Core dev talk, London Android User Group
FREE EVENT: core dev
London, Thursday, February 16th
GGUG:Deploying Grails Applications, GGUG
FREE EVENT: Deploying Grails
London, Monday, February 20th
:SpringSource's Rich Web Applications with Spring Training,  SpringSource's Rich Web Applications with Spring T
4 DAY COURSE.
London, Tuesday, February 21st
London Java Community:Zero Downtime of JavaEE applications and Home Automation with Java and Arduino, London Java Community
FREE EVENT: Zero Downtime Home Automation
London, Tuesday, February 21st
© Copyright 2003-2011, Skills Matter Ltd
  Web development by You In Control
About Us  Jobs  Find Us  Meeting & Training Rooms  Newsletter  Jobs: Sales Executive  Jobs: Student SkillsCaster  jobs - junior event coordinator  Speed Coding 2011  Open Source Journal  Ticket Raffle  Agile Expert Series  Jobs: Sponsorship Development  jobs: Marketing & Sales Graduate Internship