Agreed.

I think that today, Gradle is what comes the closest to what I think would
be the best compromises for a build tool:

   1. The language should be mostly declarative, because build files are
   typically declarative for the most part.
   2. It should be possible to write code whenever necessary. And if you
   want to take a subset of a fully blown language, I think the necessary
   features are 1) declaring variables that can be visible by subtasks, 2)
   expressions and loops and 3) inheritance,  overriding and specialization.
   3. Compatible with Maven repositories.
   4. Easy tooling so that writing build files can be done entirely in your
   IDE (completion).

Gradle definitely looks very promising and as far as I can tell, it has 1, 2
and 3 covered. 4 is still not there and I find it sometimes hard to figure
out what I need to put in my build files, which ones are the keywords and
which ones are the targets. But there is certainly nothing preventing it
from getting there, it will just take a bit more time (and hoping that Hans
and co are aware of the importance of this particular item).

-- 
Cédric


On Wed, Mar 9, 2011 at 9:22 AM, phil swenson <[email protected]> wrote:

> What is ant doing?  It's orchestrating your build.  Only the most simple
> build ends up being purely declarative.  If this is the case, then ant is
> fine I supposed.  Orchestrating your build usually means having some
> complexity - loops/conditionals/true variables/complex constructs (classes)
> may be needed.
>
> Specifically regarding writing ant tasks for all your complex pieces would
> result in an awful lot of specialized ant tasks + you need another build to
> build the ant tasks. Scripting is just lighter-weight and easier.  Are you
> really going to write a specialized ant task just for iterating over a bunch
> of other ant tasks?  Are you really going to write a specialized ant task
> for conditionals every time?  People don't do this, they use ant contrib's
> conditionals and loops or the macro task.  This leads to the hell I've
> mentioned.  Anyone have a link to a hellish build.xml for example?  I can't
> use any from my current job as they aren't allowed to be distributed.
>
> And then try debugging ant xml/ant task mix.  Are you really going to set
> breakpoints on your xml lines and then step into your java code?  It might
> be possible to do all this stuff in some convoluted manner.  But in my
> opinion, it's just not the best solution.  What I think we really want is a
> mix of declarative constructs and imperative constructs.  And that's exactly
> what buildr/gradle give you.  And yes, you can set breakpoints and truly
> debug them.   You can write classes for modularity.  They act (mostly)
> interpreted, just like ant so you can tweak and execute w/o an intermediate
> build step/separate build process.
>
> I would guess currently (the article was from 2003), Dunan would advocate
> Ruby / Buildr / Rake, as he abandoned Java long ago for Ruby (that and to be
> a professional photographer).
>
>  On Wed, Mar 9, 2011 at 9:02 AM, Alexey Zinger <[email protected]>wrote:
>
>> In the article, Duncan refers to Jonathan Simon's push to 
>> Jython<http://today.java.net/pub/a/today/2003/06/10/jython.html>as a 
>> programming replacement for XML.  As I read over Simon's points in
>> favor of Jython, it occurred to me that he was advocating methods to relieve
>> problems seen in XML-based programming languages that operate in the JVM.
>> Problems like excessive verbosity, awkward syntax constructs, shortcomings
>> of expressiveness that cause Java or other languages to bleed into XML, lack
>> of scoping definitions.  He's making the same points that were touched on in
>> this thread earlier, but he's also elevating Jython as a solution to all XML
>> problems for no particular reason.
>>
>> In the JellySwing example, he correctly states all the problems that arise
>> when you try to use XML for a complex Java UI, but he skips over the fact
>> that Java itself has declarative syntax capabilities and instead proceeds to
>> Jython.  In fact, his Jython version of the code is not too dissimilar from
>> what it would look like in standard Java even without the declarative style.
>>
>> When he talks about Ant, he immediately looks at the direction the
>> community has taken in making Ant a full-bore programming language through
>> general purpose, but awkward scripting language extensions.  Agreed: bad
>> idea.  But here again, he doesn't address why mixing specialized plugins
>> written in a different language (which, thanks to all the latest langauges
>> on the JVM can be written in whatever is "right" for the job) would be worse
>> than throwing XML out altogether and switching everything over to Jython.
>> Why not Java, or Scala, or JRuby, or god knows what else?  There doesn't
>> seem to be a coherent argument made in favor of the proposed solution.  And
>> the question of why Ant is so bad as an extensible glue language that
>> plays well with underlying OS environments as well as the JVM world remains
>> untouched.
>>
>> Alexey
>>
>>
>> ------------------------------
>> *From:* phil swenson <[email protected]>
>> *To:* Ricky Clarkson <[email protected]>
>> *Cc:* [email protected]; Reinier Zwitserloot <[email protected]>;
>> Cédric Beust ♔ <[email protected]>; Moandji Ezana <[email protected]>
>> *Sent:* Wed, March 9, 2011 10:22:26 AM
>> *Subject:* Re: [The Java Posse] Is learning languages overrated?
>>
>> This mostly covers it.
>>
>> http://weblogs.java.net/blog/duncan/archive/2003/06/ant_dotnext.html
>>
>> 2011/3/9 Ricky Clarkson <[email protected]>
>>
>>> Even the guy who created ant (James Duncan Davidson) now thinks XML was a
>>>> bad idea.
>>>
>>>
>>> Do you have a reference for that?  I used to have one but it disappeared.
>>>
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "The Java Posse" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> For more options, visit this group at
>> http://groups.google.com/group/javaposse?hl=en.
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "The Java Posse" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> For more options, visit this group at
>> http://groups.google.com/group/javaposse?hl=en.
>>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "The Java Posse" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/javaposse?hl=en.
>



-- 
Cédric

-- 
You received this message because you are subscribed to the Google Groups "The 
Java Posse" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.

Reply via email to