I guess I'm still wresting with the question why instead of throwing the entire ecosystem and knowledge we (the community) have accumulated around tools like Ant we can't simply improve Ant XML authoring tools (and XML authoring tools in general). There are 2 answers that come to mind:
1. The vast majority of projects simply don't let their build systems get so unwieldy that they feel lost. I think this state of affairs happens a hell of a lot quicker with Javascript or RDBMS stored procedures as an example (I don't remember ever stepping into a Javascript thick client project that wasn't an utter mess). Debugging Ant has always been one of the simpler tasks for me because of its optional output verbosity. Maybe I just haven't been in the right kind of projects yet to have seen otherwise. 2. The tools are already good enough. Alexey ________________________________ From: phil swenson <[email protected]> To: [email protected] Cc: Alexey Zinger <[email protected]> Sent: Wed, March 9, 2011 12:22:55 PM Subject: Re: Is XML a programming language?; Was: [The Java Posse] Is learning languages overrated? 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 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.
