On 9/16/06, Jesse Glick <[EMAIL PROTECTED]> wrote:
I was wondering if anyone would bring it up...
Well it took a prod of actually meeting the main users - and discovering that most of them considered maven as being the 'de-facto' build tool these days - from chatting to people at the conference, they mainly mentioned that maven was better as they didn't have to think about getting started, whereas Ant provided much more flexibility - in that vein, I think we should concentrate on Ant's strengths: - flexibility (add a scripting language would increase this significantly)
+1 (is >1 allowed?) for including a scripting language implementation in the standard Ant distribution, so that we can rely on it being there. In fact I would suggest making Ant 2.0 assume a script as its input, and have a compatibility mode for old XML scripts.
Interesting, didn't think of that
-1 (or <-1 if allowed) on writing our own DSL.
oh come on, it's mainly for fun ;)
-0 on rewriting existing tasks in the Ant distribution in another language. Would just confuse the code base. Focus on users of Ant, not developers of Ant. Of course users should be able to write tasks in a scripting language if they prefer. Ideally this would be the same thing as just writing a plain old library file.
I understand, but my point is that some of the tasks we currently have are less than optimal in both amount of code and in terms of maintainability. The more tasks we can specify in scripts/macro's, the less maintenance effort there is (IMHO).
-0.5 on Lisp or Scheme. Don't get me wrong, I probably would have been miserable as a teenager were it not for CLtLR2. But the last thing we want to do is make life harder for a random Java developer to build his or her program. Ant-in-Lisp would be far far better than the current XML mess,
Agreed that xml is a nice 'verbose' partner to Java (or C# for that matter). Lisp/Scheme would give us a very competent tool for deal with trees (xml), without having to rely on xerces - although as Ant is primarily used for building Java applications, a Lisp-Ant would have to assume the presence of a jdk anyway, and in that case you may as well write your tool in a jvm language (this doesn't preclude lisp as Kawa runs on the vm)
to be sure, but I think a relatively mainstream language like Rhino would be a lot more accessible. Lots of Java developers already know JavaScript from web development anyway. BeanShell is also an easy step for Java developers. JRuby and Jython are probably a bit more accessible than Lisp but less than JavaScript and BeanShell.
BeanShell is (IMHO) not a very big step from Java, it's almost as verbose and provides very little extra in the way of abstractions. JavaScript (Rhino), JRuby or Jython all offer a much higher level of abstraction than Java and would be more accessible than Lisp. As I mentioned, I wanted to know what people thought about the idea of a default script language for Ant, before suggesting an actual language (I'd steer away from groovy before anyone suggests it ;)) [snip]
for (jar in classpath.split(':;')) {copy({file: jar, todir: destdir})}
or classpath.split(':|;').each { |jar| copy jar, dest }
which anyone can read and understand at once. Furthermore it is trivial to see how to make a little modification to the above: for (e in classpath.split(':;')) { if (e.endsWith('.jar')) copy({file: e, todir: destdir}) }
classpath.split(':|;').each { |jar| copy jar, dest if jar.ends_with(".jar") } [snip]
TARGETS = [build, clean] /* build is first, so default */
Have you looked at rake? This is a very good example of how a dsl for builds can really help the expressiveness of your code http://rake.rubyforge.org/ Kev --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]