Teach Yourself AppleScript in 24 Hours
Teach Yourself Applescript in 24 Hours (TYA) from Sams Publishing is certainly up to date: it covers Applescript under OS 10.2 and the use of AppleScript Studio to build GUI applications using the language. That's its strength. The book's first weakness, though, is that it starts too far down the learning curve in my opinion. The first few chapters of TYA could be read by someone almost totally new to the Macintosh -- they cover such basics as running the scripts installed with the OS and getting new scripts from Apple and installing them. At the same time, they introduce basic AppleScript programming terminology not really required for these sorts of tasks such as suites, classes and commands. This material would have best waited a few chapters. It is not really until 'Hour 6', most of the way through the first part of the book, that it really sorts itself out and gets down to really teaching you AppleScript.
The Basics The book is divided into four parts: 'Getting Started With AppleScript,' which covers using scripts and basic programming concepts; 'Writing Scripts With Script Editor,' which takes you through using the Script Editor, details AppleScript syntax and how to script the Finder and various applications and using AppleScript Dictionaries; 'Working With AppleScript Studio,' which covers building AppleScript-based GUI applications using Project Builder and Interface Builder all the way through to complex applications that can store and retrieve documents; and a final section 'Advanced Scripting,' which covers Script Objects, scripting across a network (including SOAP and XML-RPC), and integrating scripts with the terminal and cron.
Each section is then divided up into chapters designed to be worked through in less than an hour ,with a small number of short exercises at the end. I found that most chapters took me about half an hour before I reached the exercises, which then took ten to fifteen minutes.
As you can see, almost everything you could ask for is touched on in this book. Once over the introductory chapters, I found the book to be well laid out, well structured and well written. I particularly liked Part III on AppleScript Studio; it started easily and worked up to quite an advanced little application explaining everything well along the way.
The Bad There are some things missing, however. Debugging is hardly mentioned (3/4 of one lesson), and debugging is not exactly trivial in AppleScript. I also found no mention of my pet demon with AppleScript; its incredibly strong typing and problems with having data in the wrong type; this is a classic problem with files and file names. In reality, this book teaches you the language without really getting down to teach you how to program in the language. A fine distinction, I know, but after just reading Learning Perl Objects, References & Modules, I found TYA to be light on real examples and real world code. Even the best section, the one on AppleScript Studio, didn't touch on many things you will need to know.
Sams have a page devoted to the book at the Sams web site, but frankly the URL is so long and cumbersome I don't dare risk putting it in a post. Go to the site and type 'AppleScript' in the search box. It has the table of contents and a sample chapter and some of the code from the book. The sample chapter is the third chapter 'Running The Scripts You Already Have' and really doesn't give you a good feel for how the book teaches you AppleScript programming. The page to download the code examples says "All the code developed for the book in one convenient download," but in fact all you get are the AppleScript Studio projects and source from four of the chapters. Oh, and the introduction says "There are even a few goodies on the web site that aren't in the book" -- they sure must be good as I couldn't find them.
In conclusion, I think this book starts too far down the learning curve and leaves off too early, with not enough detail. It seems a shame, what we have here is well laid out and well written, I wanted it to be better after I had finished. This book might suit someone absolutely new to the Mac who wanted to learn enough AppleScript to perform a few basic operations, for everyone else it'll be better to wait till October when AppleScript 1-2-3 will be out from Peachpit and AppleScript: The Definitive Guide will be out from O'Reilly, and we might have a better option. If you absolutely need to get some help with AppleScript Studio then borrow someone else's copy or find one second hand.
You can purchase Teach Yourself AppleScript in 24 Hours from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
Yes. Just not with any of the "...in 24 Hours" books.
I see a lot of posts asking why Applescript is useful. Here's one good reason. Salling Clicker. If you have a bluetooth phone and a mac you can write scripts to do just about anything. The sample ones will control iTunes and the DVD player. I have seen scripts for automatic away messages in iChat when you leave bluetooth range. Some people even use it to control presentations. Check it out it's pretty cool.
"Freedom of speech has always been the abstract red-headed stepchild of the Constitution"
-Suck
First is that Applescript is great for automating Applescript-aware applications (including Finder) without having to either brute-force it, or write whatever function you're after yourself. For instance (I'm working from memory, and it's been a while since I've worked with this stuff, so it's probably not syntactically correct):
Second, this can be done remotely, assuming that AS-remoting is enabled at the target. Which would get really tricky to do with Perl or Python or even Expect.
IIRC, it would just be a matter of changing the tell to something like tell "itunes" on "Kenny's Macintosh". The rest of the script would remain the same. But then, debugging is a real nightmare...
Where the value of X-Mailer: is the true measure of a man...
The big lie I always hear about Applescript is that: "Applescript doesn't need lots of documentation, it's self-documenting, english-like, and always current"
While it's true that the little 3rd party documentation out there has major problems (this book, an overly simplistic Jesse Feiler book, an out-of-date Danny Goodman book, and a Mac OS 9 focused O'Reilly reference), I disagree that AppleScript doesn't need documenting.
Foremost, it needs some strong documentation on how application writers should be writing their AppleEvent suites and AppleScript dictionaries. This is by far the most non-standard, conflicting, and outright stupid place to ignore.
Apple has made some half-hearted efforts to write some "standard dictionaries" for suites of software, but if you think css and html are under-specified you haven't looked at these "standards". There's no impetus for you to build the entire "standard" suite into your software. I'm not sure that anyone (including Apple) ever wrote software that actually implemented things like the database suite.
One problem with not standardizing on open, well specified suites is that you can lose all of your script savyness when a key application is discontinued or decides to overhaul their script interface. Those who wrote MacWrite Pro scripts had their work obsolesced overnight when MacWrite was discontinued. Quark scripters are undergoing some pains right now trying to adapt to the new Quark interfaces.
Of course, because AppleScript exposes your data model for all of your competitors, you'll make things like exporting data out of your proprietary file format a trivial operation if you stuck with standard suites or even if you exposed all of your functionality via AppleScript. So making fully AppleScriptable applications is not something that the big guys want to do with their data engines.
Beyond standardization though, AppleScript needs a central repository of script dictionaries and plugins. Right now one's Mac will pick out all of the AppleScript dictionaries on your mac, but what you're trying to automate might be 1,000 times easier in GraphicConverter rather than Photoshop, but if you don't have GraphicConverter on your mac you'll be beating your head against a wall trying to force an app to do something it's not good at. The best one can do today is watch over other people's shoulders via web sites, bbs's, email lists, and by downloading scripts others have written. This whole "steal from someone who's done it successfully" attitude is what makes AppleScript centric web sites seem to spiral into oblivion. Everyone's simply reposting what they've stolen off of other sites, the owne's get frustrated maintaining something that doesn't stand apart from the crowd, and it becomes out of date without constant updates.
I'm not ignorant when it comes to programming, but I find Python and Perl to be syntactically more forgiving and easier to grasp than AppleScript. I find Cocoa to be more standard and more consistently constructed. I find shell scripting to be more accessible and a better "glue" to bind different tasks together.
I must admit that I still do write the occasional AppleScript and if you rely heavily on a program that supports it well then it can be a decent tool. But it's long fallen from favor as my first choice of scripting.