ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Siberski, Wolf" <Wolf.Siber...@tui.de>
Subject RE: if and unless attributes for all Tasks
Date Thu, 17 May 2001 16:53:48 GMT
My suggestion would be to exploit Diane's, Rogers
and Your experience by designing a 'large scale' build
scenario as test case for Ant2.
Each proponent would not only have to provide an Ant2
version, but also a set of build files for this
scenario.
What I have in mind is - of course - not building a 
2M lines system, but a small system with typical
'large scale' characteristics:
- not only one, but several products are built.
- to build the products, some subprojects (libraries)
  have to be built
- different configurations (e.g. platforms, feature sets)
  have to be built
- ... (You will know better than me)

While the developers could evaluate the design
of the proposal, all Ant users could judge the
usability by looking at the resulting build files.

Regarding the original discussion I'd like to comment 
on a general level:
I think the art of language design is to allow people
to do complex things without making the language itself
complex. Ant hasn't achieved this yet, but by introducing
more and more language features, we will lose the chance 
to achieve it in the future. This explains the reluctance
of the committers, although I admit it doesn't help
to solve Your build problems.

Wolf


> -----Original Message-----
> From: Peter Vogel [mailto:pvogel@arsin.com]
> Sent: Wednesday, May 16, 2001 7:49 PM
> To: 'ant-dev@jakarta.apache.org'
> Subject: RE: if and unless attributes for all Tasks
> 
> 
> Heh!  Well said Roger!  The "we don't think its a good
> idea, so Ant won't include it" is one of the reasons I
> am hesitant to recommend Ant, despite the great leaps forward
> that have happened since I started following ant at 1.1.
> 
> I've been architecting builds for over a decade now, using
> a variety of tools (Make, Cons, Perl wrapped around Make, ant, 
> etc.) and there are some fundamental capabilities that are
> *necessary* to ensuring reproducible builds (which is the 
> whole point of CM) which Ant simply lacks, environment 
> encapsulation being one of them, a cleaner way of
> doing conditionals being another.
> 
> I'm a big proponent for a framework that is *simple* when
> it can to be simple, and which makes complexity readable
> when complexity is needed.  The whole concept of "write a 
> task to do that" while cool for certain things, is fundamentally
> broken for fundamental things like conditionals, etc.  
> Conditionals in build files are a fact of life in today's
> cross-platform software systems, and even in some that aren't
> cross platform, but which need to be configurable at
> build time.
> 
> That said, Ant is still a pretty cool tool, and I use it when
> its appropriate, but I do get pretty annoyed by the "we're
> smarter than you" attitude from many of the ant development
> community that seems to consider anything that smacks of 
> "complexity" as evil.  Go design an ant-based build of a 
> system consisting of 2M lines of code that produces 4 different
> products with 90% of the components being shared across those
> products and then tell me what features should or should not
> be in the product.
> 
> -Peter
> --
> Peter A. Vogel
> Manager+consultant, Configuration Management
> Arsin Corporation, Professional Services
> http://www.arsin.com  
> 
> 
> 
> > -----Original Message-----
> > From: Roger Vaughn [mailto:rogervaughn@yahoo.com]
> > Sent: Wednesday, May 16, 2001 7:42 AM
> > To: ant-dev@jakarta.apache.org
> > Subject: RE: if and unless attributes for all Tasks
> > 
> > 
> > --- Jose Alberto Fernandez <j_a_fernandez@yahoo.com>
> > wrote:
> > > How understandable build files will be depend on our
> > > choices. If I write
> > > targets where every <task> has a different if/unless
> > > condition, what does
> > > that tell me about the readability of the build
> > > file. It looks like
> > > spaggetti code to me. I think the granularity is too
> > > low. By having
> > > if/unless at <target> level, you still can write
> > > spaggetti code, but it will
> > > make you think: "Do I really need to do it this
> > > way?" And that is what makes
> > > code understandable and maintainable, you have to
> > > stop and think.
> > 
> > You can obsfucate anything if you try.  For instance,
> > it is entirely possible to specify one task per
> > target, and link them all up with dependencies.  We
> > don't do that because it's harder to understand.  But
> > it's certainly a simpler, more declarative model than
> > multiple sequential tasks per target.
> > 
> > I'm going to come out on the side of more features,
> > more power, and more flexibility every single time. 
> > There is always some rube who is going to program
> > himself into a real mess, but I don't think that's
> > sufficient excuse to deny others of us flexible tools.
> >  FWIW, I feel exactly the same way about Java vs. C++,
> > even though I do the majority of my work in Java these
> > days.
> > 
> > BTW, I'm still hoping for mutable properties (or
> > perhaps a separate set of variables.)  ;)  Used
> > *judiciously*, they can, in certain situations,
> > simplify scripts quite a bit.  Now, if someone goes
> > wild and creates what you describe above, well then,
> > that's his fault, not mine.  This isn't a support
> > organization, so I don't think protecting users from
> > themselves should be the team's first concern.
> > 
> > There's a certain arrogance here that's frequently
> > annoying.  The refrain "we don't think you should do
> > that, so Ant won't include it" is heard pretty
> > frequently.  I understand reluctance to implement
> > difficult or basis-shattering features (like
> > templates), but for simple things, I just don't get
> > it.  Come on guys, be open to new ideas and different
> > ways of doing things.  If anyone finds this insulting,
> > well, I'm sorry, but that's what I see.
> > 
> > roger
> > 
> > 
> > __________________________________________________
> > Do You Yahoo!?
> > Yahoo! Auctions - buy the things you want at great prices
> > http://auctions.yahoo.com/
> > 
> 

Mime
View raw message