>
>I'm starting work on adding functions to nant and the syntax I was
>thinking of using is this:
>
>  
>
Are we sure we need this. No disrespect but couldn't we do a lot of 
whats in these functions using the script task ?. Its a slipperly slope 
to be taking - just look at how xslt has evolved from having a few 
functions thru script and now a full extension model. The real questions 
is "Do we want NAnt to become a programming language ? " and I'm not 
sure we do for a couple of reasons. 1) simplicity has been a stated goal 
of the project and adding a whole bunch of programming language 
constructs to a declarative build tool is certainly going to complicate 
things. 2) writing procedural code in xml isn't pretty. Just look at an 
xslt example
    <xsl:choose>
            <xsl:when test="$sortby='scientific_name'">
                <xsl:apply-templates select="//raptor">                
                </xsl:apply-templates>
            </xsl:when>
            <xsl:when test="$sortby='status'">
                <xsl:apply-templates select="//raptor">            
                </xsl:apply-templates>
            </xsl:when>
            <xsl:otherwise>
                <xsl:apply-templates select="//raptor">             
                </xsl:apply-templates>
            </xsl:otherwise>
        </xsl:choose>

compared to
             switch(condition) {
                    case "A":
                       DoA();
                       break;
                    case "B":
                        DoB();
                       break;
                    case "PerlManagedExeWiz":                     
                        DoC();
                        break;               
                }
in C#.  I like being able to do declarative stuff in NAnt and procedural 
programming in a fully fledged programming language. As soon as I start 
doing say string manipulation in xslt I get enormously frustrated and 
want to use a real programming language that has a proper string 
library. It looks like the initial functions you've proposed are quite 
similar to those in in xslt which leads me to think that doing 
programming in NAntScript would be just as frustrating.

3) the Ant team has had similar discussions and has always resisted 
going too far down this route - maybe Stefan can give us more reasons 
for why if he's reading.

I'm not trying to be unduly negative I just thingk we should think very 
carefully before turning NAnt into a programming language.

my 2c

Ian

><echo message="The current time is ${Time.ToString()}"/>
>
>I want to detect a function by looking for
>function-name(parameter1,param2, ...)
>
>I see functions being added in much the same way as tasks are being
>added now.  There will be a core set of functions but people can create
>new functions and nant will auto load them.
>
>The set of functions I see going into NAnt is something like this:
>
>String manipulation
>
>Contains(string, substring) => boolean
>NormalizeSpace(string) => string
>Format(format, ...) => string
>StartsWith(value, substring) => boolean
>StringLength(string) => number
>Substring(value, start) => string
>Substring(value, start, length) => string
>SubstringAfter(value, substring) => string
>SubstringBefore(value, substring) => string
>Translate(value, from, to) => string
>
>Probing
>
>FunctionExsists(name) => boolean
>PropertyExsits(name) => boolean
>FileExsists(name) => boolean
>DirectoryExsists(name) => boolean
>
>Conditionals
>
>Equal(value1, value2) => boolean
>EqualIgnoreCase(value1, value2) => boolean
>
>Conversions
>
>Boolean(value) => boolean
>Number(value) => number
>String(value) => string
>
>Others
>
>TempFileName() => string
>TempDirectoryName() => string
>Guid() => string
>
>  
>



-------------------------------------------------------
This sf.net email is sponsored by: Jabber - The world's fastest growing 
real-time communications platform! Don't just IM. Build it in! 
http://www.jabber.com/osdn/xim
_______________________________________________
Nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers

Reply via email to