Re: Soliciting opinions from Applescript refugees
On Feb 28, 2004, at 2:08 AM, Chap Harrison wrote: I wonder why some people swear by Applescript. Me too. But on the other hand, I *completely* understand why many people swear *at* Applescript. ;-) sherm--
Re: Soliciting opinions from Applescript refugees
In article <[EMAIL PROTECTED]>, [EMAIL PROTECTED] (Chap Harrison) wrote: > Thanks for writing - it sounds like your expectations are similar to > mine for application development tools. For databases in particular, I > may start looking into mySQL as an alternative. For other apps, if > their AppleEvents interface can be divined, I will give Perl > appleevents a try. Mac::Glue makes it relatively easy to do it, especially if you have some experience with AppleScript. Taking your original psuedocode, here's the untested Mac::Glue equivalent: use Mac::Glue ':all'; my $fm = new Mac::Glue 'FileMaker'; my $handles = $fm->obj( records => whose(field => 'price', equals => '*'), database => 1 ); for my $handle ($handles->get) { # do something } For more info on Mac::Glue, you might want to see the recent article on perl.com. http://www.perl.com/pub/a/2004/01/23/macglue.html -- Chris Nandor [EMAIL PROTECTED]http://pudge.net/ Open Source Development Network[EMAIL PROTECTED] http://osdn.com/
Re: Soliciting opinions from Applescript refugees
I'm sorry for you. When Filemaker allows me to prepare a macro - er script - with a text editor I might try it again. The idea that one is required to mouse around to make things work is a disaster. You can't even copy and re-use something you did previously in another database. I completely agree with you, and I'm glad to know not to expend the energy trying to find out if there's a way to do it. :-) My major use for AppleScript has been to make drag and drop applets which are usually one liners that simply pass a file to perl or perhaps an ANSI-C coded UNIX executable. I'm beginning to think that's more on the order of the jobs that AS was intended: small stuff. Maybe AS wasn't conceived for developing full-scale applications There is a way to put a perl script in a *.app package which can be run from Finder but I haven't yet figured out how to pass arguments. Heh.. temp files? A problem with scripting applications with other than AppleScript is obtaining the information you need about the structure of the target application. The dictionaries are bad enough in the script editor and you may find it even harder in perl. Just finding the <> that are the meat of AppleEvents can be impossible. perl will not fix problems with Filemaker or its documentation. That is a pretty crucial point. Damn. Truth & completeness in documentation are the only things I really MUST have from a tool. [Oh, and print().] Thanks for writing - it sounds like your expectations are similar to mine for application development tools. For databases in particular, I may start looking into mySQL as an alternative. For other apps, if their AppleEvents interface can be divined, I will give Perl appleevents a try. Chap
Re: Soliciting opinions from Applescript refugees
On 2004/02/28, at 0:08, Chap Harrison wrote: ... and I wonder why some people swear by Applescript. I think it may be from inexperience. Yours or theirs? (heh.) As has been pointed out, FileMaker is still more of a RAD tool than a solutions tool, and AppleScript also. Precision in a language is a requirement in contradiction with ambiguity, ergo, flexibility. I think a large part of Perl's success is the ability to go from a relatively flexible syntax to a relatively precise syntax within the same language. (As opposed to Java, for example, where precision can't be escaped, but is relatively uncluttered by language artifacts, or SQL, where you have to escape the language to get precision in all but a few business contexts.) I think I agree with John and Doug, your best approach is to expect to use multiple tools, which is why mailing lists are useful.
Re: Soliciting opinions from Applescript refugees
At 01:08 -0600 2/28/04, Chap Harrison wrote: >I am about to switch away from Applescript -- either that, or go mad. Welcome to perl. You will be pleased. >It involves loading a Filemaker database. I'm sorry for you. When Filemaker allows me to prepare a macro - er script - with a text editor I might try it again. The idea that one is required to mouse around to make things work is a disaster. You can't even copy and re-use something you did previously in another database. My major use for AppleScript has been to make drag and drop applets which are usually one liners that simply pass a file to perl or perhaps an ANSI-C coded UNIX executable. There is a way to put a perl script in a *.app package which can be run from Finder but I haven't yet figured out how to pass arguments. A problem with scripting applications with other than AppleScript is obtaining the information you need about the structure of the target application. The dictionaries are bad enough in the script editor and you may find it even harder in perl. Just finding the <> that are the meat of AppleEvents can be impossible. perl will not fix problems with Filemaker or its documentation. Become aware of BBEdit worksheets. They work well with perl. It's almost like MacPerl under MPW. You can store command lines that you use regularly in a worksheet. Then just select and execute with the enter key or - in my case - the right mouse button. And by the way. . . perl can evaluate $y = -$x^2 and get the right answer. -- Applescript syntax is like English spelling: Roughly, but not thoroughly, thought through.
Re: Soliciting opinions from Applescript refugees
At 1:08 am -0600 28/2/04, Chap Harrison wrote: Here's a language that thinks (to name but one flaw) that zero or one things can't comprise a list of things. Without wishing to make too ardent a defence of AppleScript, I would say that a little experience will show that it's not quite as stupid as you propose. As to Filemaker, I'm delighted to say I've no inclination to examine its doubtful assets. set ls to "" as list repeat with i in ls beep end repeat set ls to {} repeat with i in ls beep end repeat