From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,fa2cc518ef3b992c X-Google-Attributes: gid103376,public From: Pascal Martin Subject: Re: scripting/extension language for Ada (was : Re: tagged types extensions) Date: 2000/02/10 Message-ID: #1/1 X-Deja-AN: 584035868 References: <389207CC.C16D80E8@averstar.com> <38971028.BB16D8A2@earthlink.net> <3899F757.FAE131B3@free.fr> <389D43A6.786C7B79@free.fr> X-Complaints-To: abuse@mediaone.net X-Trace: cmnws01.we.mediaone.net 950173870 24.130.45.139 (Thu, 10 Feb 2000 01:11:10 PST) Organization: MediaOne-Road Runner, Western Region NNTP-Posting-Date: Thu, 10 Feb 2000 01:11:10 PST Newsgroups: comp.lang.ada Date: 2000-02-10T00:00:00+00:00 List-Id: In article , Robert A Duff wrote: >> As Robert A Duff said : >> "Scripting languages should encourage programs that are easy to >> write, easy to understand, and easy to change." > > I don't think *I* said that. In fact, my opinion is that "easy to > write" not important; the other two goals I agree with. It seems to me that everytime I chose to use a scripting rather than a compiled language, it was for a subset of the following reasons: 1- Execution speed is less important than development comfort. 2- Very flexible string manipulation is highly important, which means support for transparent string resizing, concatenation and data- driven split (for example, split a string into a list of words). 3- Easy to use regular expression engine. The drawback is that it seems there is no such engine that is also easy to debug with, including expect. 4- System operations must be easy: execute a program, retrieve its output, control its input. 5- Symbolic indexing (aka strings indexes, or hash tables). 6- Dynamic table resizing. 7- Very portable. Which means that the components of the environment must be available on all platforms. Not so easy when considering item 4, or when using commercial packages. 8- Include a GUI toolkit. We are in 2000: echo "Please enter..."/read don't cut it anymore. But the GUI must be optional. All these features must be 100% interoperable, of course. Which mandates using the same basic dynamic string package all over. Garbage collection is basically mandatory. I am sure there are ways to implement a dynamic string package in Ada, it just appears that putting togethers many packages from separate sources is always complicated, because it is frequent that these packages do not define compatible types. Using generic packages is somewhat incompatible with development comfort, because you have to do the package integration work all by yourself. So, all the environment support should come as one single set. Among the scripting languages/interpreters I have used: the ugliest: command.com the slowest: sh the most confusing: perl the most difficult to debug: Tcl (still using it, through, because of Tk :-) the most obscure: VAX/VMS DCL (all these optional parameters.. ) the worst limitations: Microsoft Basic on TRS80 (I liked it at the time) ------------------------------------------------------------------ Pascal F. Martin.