Compras Nikon Bluetooth |
The structure of the book is somewhat confusing. It starts off well with some practical examples, but then moves into very complex terrain, having the potential to quickly leave the AppleScript newbie behind. Throughout the book, Neuburg discusses many of the quirks and nuances of dealing with AppleScript. It could be argued that he deals with too many of these quirks, which gives the book a somewhat choppy feel at times. The value, however, is that this treatment does lend a sense of reassurance - when you're banging your head against the keyboard because a script doesn't work as expected, it's good to know that the language is not without unique "personality" and that you're not alone. This may not always help you get your script running any faster, but what a sense of camaraderie!
Far and away the best feature of the book is the third chapter, where the author walks through the "AppleScript Experience." In this chapter, the reader is led through the step-by-step process of how the author develops a real script to take care of an otherwise long and tedious repetitive task - exactly the sort of thing that AppleScript is designed for. Neuburg explains the thought process of building the script, and provides each iteration of code along the way, warts and all, until all of the kinks are worked out. This was both educational and entertaining, and we could easily put ourselves into the same place, having been there before. It should be noted that the thought process of creating a script is really one of the most challenging, and poorly explained, aspects of coding in general. If you're new to programming, you likely expect that learning the technical syntax and structure is the hard part, but in reality that's easy in comparison to wrapping your head around what to do with this technical knowledge. Neuburg's tour of his headspace during the scripting process is invaluable and you'll gain some worthwhile vicarious experience in Chapter 3.
Bottom line: it's a great book if you can follow it, and a hard read if it loses you. It makes for an excellent reference source, and is certainly a comprehensive look at the language, covering all of the significant aspects of coding with AppleScript. We would expect veterans to find this book to be a well written in-depth discussion, while most beginners (to programming) would likely be more than a bit intimidated. It is perhaps most ideally suited to programmers of other languages that are new to AppleScript, but can rely on their background knowledge and interest to relate to the finer points presented.
The structure of the book is somewhat confusing. It starts off well with some practical examples, but then moves into very complex terrain, having the potential to quickly leave the AppleScript newbie behind. Throughout the book, Neuburg discusses many of the quirks and nuances of dealing with AppleScript. It could be argued that he deals with too many of these quirks, which gives the book a somewhat choppy feel at times. The value, however, is that this treatment does lend a sense of reassurance - when you're banging your head against the keyboard because a script doesn't work as expected, it's good to know that the language is not without unique "personality" and that you're not alone. This may not always help you get your script running any faster, but what a sense of camaraderie!
Far and away the best feature of the book is the third chapter, where the author walks through the "AppleScript Experience." In this chapter, the reader is led through the step-by-step process of how the author develops a real script to take care of an otherwise long and tedious repetitive task - exactly the sort of thing that AppleScript is designed for. Neuburg explains the thought process of building the script, and provides each iteration of code along the way, warts and all, until all of the kinks are worked out. This was both educational and entertaining, and we could easily put ourselves into the same place, having been there before. It should be noted that the thought process of creating a script is really one of the most challenging, and poorly explained, aspects of coding in general. If you're new to programming, you likely expect that learning the technical syntax and structure is the hard part, but in reality that's easy in comparison to wrapping your head around what to do with this technical knowledge. Neuburg's tour of his headspace during the scripting process is invaluable and you'll gain some worthwhile vicarious experience in Chapter 3.
Bottom line: it's a great book if you can follow it, and a hard read if it loses you. It makes for an excellent reference source, and is certainly a comprehensive look at the language, covering all of the significant aspects of coding with AppleScript. We would expect veterans to find this book to be a well written in-depth discussion, while most beginners (to programming) would likely be more than a bit intimidated. It is perhaps most ideally suited to programmers of other languages that are new to AppleScript, but can rely on their background knowledge and interest to relate to the finer points presented.
The author is Matt Neuberg, an expert in Applescript and programming. He believes that Applescript is entering into a "Golden Age" after a period of gradual decline. The Script Editor is now a Cocoa application, there is a system-wide script menu in OS 10.3, more Mac applications than ever are scriptable, there is an integration with Unix, and the free Applescript Studio application is capable of creating custom applications with a full Aqua interface.
Applescript is designed for "low-end" programming but regardless, is not an easy language to learn and use. It may be relatively easy compared to other scripting languages but there is a need for a volume like this to explain how it works and how it allows one to program applications to communicate with each other.
Neuberg writes with a high degree of technical depth and completeness. He covers the Applescript syntax, variables, handlers, objects, properties, and the like in a thorough manner. Neuberg maintains a focus on Applescript itself and not on how to use it. There are examples of use, of course, and guides to its use, but the book is designed to teach and document the language itself. The most informative material is combined in the chapter on "Dictionaries". There are indexed catalogs contained in all scriptable applications which provide syntax guides, vocabulary, and other important data for use by Applescript. Dictionaries can help guide one through programming that application.
Sometimes the presentation is much like a script itself, dense, logically rigid, and inelegant. Of course, the subject matter is not meant for beach reading. Programmers and hard-core Mac users will benefit from the content of the book and likely use it as a regular reference.
I don't dismiss the possiblity that if I had been AppleScripting for years I might not think the same way about this title. However, I think if you are looking to do practical things with AppleScript, like "arrange the year, day, and month in a string in the order of your choosing", don't expect this book to help.
There's a great deal of information on a wide range of topics: the architecture of the language, the mindset you need when coding with AppleScript, how to combine your AppleScripts with other languages (such as Perl), how to use AppleScript studio to create GUI apps, and tons more. /AppleScript: The Definitive Guide/ has an excellent index, and I've yet to encounter a situation when the bit of info I needed couldn't be found quickly in this book.
Ultimately, AppleScript books tend to fall into one of two categories. There are those that are primarily aimed at telling you how to automate specific apps (the Finder, for example) and not much else. Such books are unfortunately too common, and many of them are sorely outdated (usually covering not much after Mac OS 9, which is fairly useless now). At the other end of the spectrum are those that aim to teach you the language, its ups and its downs, its godsends and its bizarre oddities. /AppleScript: The Definitive Guide/ falls into the latter category, and this is its strongest feature.
As the author points out, AppleScript is a very quirky language, and you never really "learn" all of it, or even the majority of it. There's so many hacks and poorly (or un-) documented applications, it would take a lifetime to truly master every aspect of AppleScript. Fortunately Matt Neuburg has come to the rescue with this excellent reference. It surely deserves a place on the bookshelf of any Mac developer or power user.
First, the bad parts. If you are a beginner to AppleScript (particularly if you've had little programming or scripting experience), DO NOT even think about looking at this book. It will be so confusing and discouraging, you'll leave angry. There are plenty of books that show you how to do simple things easily with AppleScript. They may be deluding you into thinking that it will be simple to use AppleScript for more complex tasks, but at least, you'll be getting hands-on learning in the meantime. No book can be truly suitable for beginners AND experts and I never believed that claim about this book. Sorry, beginners, this book is STRICTLY for intermediate to advanced users.
Having said that, I can begin to shower praise upon this masterpiece. As someone who has done some AppleScripting and have been through a lot of frustration doing anything beyond cookie-cutter work, Chapter 3 boosted my self-esteem about 10 notches! That chapter details Matt Neuberg's odyssey through the labyrinthine task of scripting FrameMaker. Been there, done that (in other apps)! So, I'm not such an idiot -- some of these object models aren't crystal clear.
I had always thought that AppleScript was the underrated, undersold and underused secret weapon that the Mac platform could wield over the competitors, especially the dreaded Windows! After using it and then having my suspicions confirmed by this book, I realize that despite all its power, AppleScript has failed in its mission of being the intuitively obvious, easy-to-use, simple, everyday, plain English, "scripting/programming-for-the-rest-of-us" tool it apparently was developed to be. The good news is that if you are the true target audience for this book, you will be able to help out ordinary Mac users for fun and profit.
I believe there is a definite line dividing the people who must have and will love this book from those who should avoid it like the plague (until they get some AS experience elsewhere). I hope this helps you decide.
It did a good job of showing how to use shell scripts and perl scripts to embed osascript commands and vice versa. It also showed how in OS X you can target System Events rather than the finder to get a lot of things done. I learned how to make Applescript humm along at a faster pace than I had before. It did a good job of explaining the key words like result and return. Although, I would like to have a companion book that is an example book, I wouldn't trade this book for another one on Applescript. I've already been through it twice, and I keep it by my side when I am scripting. This is indeed, "The Definitive guide."
Although amazon doesn't have a look inside book here, [the oreilly website] has the variables chapter in pdf available online. That may help you get a feel for if this is the right book for you.
What the Book is About
This book aims to provide a complete explanatory manual and reference to AppleScript, up to date with Mac OS X 10.3 (Panther).
Target Audience
The introduction states that the book assumes no prior knowledge of AppleScript or of any other programming language. While I agree that no knowledge of AppleScript is required, it's challenging to consider someone with no programming knowledge starting out with this book to use AppleScript as their first programming language. For experienced Applescript users, the book is likely to be an essential reference.
What NOT to Expect
Perhaps like many others who had not used AppleScript, I believed it was a simple, English-like language that was very easy to use. I jumped eagerly in at the first chapter, certain that I would soon be told go sit at my Mac and type my first 'Hello World' AppleScript into some application or other.
As I read and read chapter after chapter from the sofa, I realized it was not going to be quite so simple in either case.
AppleScript, according to the author, has come close to extinction in the past, but is now entering a 'golden age'; it is a technical innovation and a labor saving device for the ordinary Mac user, yet it's not true to say that it's an intuitive language needing no real explanation.
What to Expect
In reading this book, the author's (Matt Neuburg) expertise in AppleScript becomes immediately apparent. So too does his extremely erudite writing style. For example, when I got to the list of 'apothegms' and discovered that this synonym for 'saying' or 'maxim' was dictionary.com's word of the week on June the 9th, 2000, I naturally began to wonder whether he read dictionary.com every week for fun.
As it transpires, the author has degrees in ancient Greek and Classical Philology and had a career as an academic classicist before starting a new career in computing. He thinks computer languages are relatively easy. (See http://www.tidbits.com/matt/).
The trouble with AppleScript is that to use it you have to use it to script an application, each application has a different vocabulary stored in its dictionary, and dictionaries in general have no manuals of their own. If someone tried to write one book that said precisely how to script every application, it would need to contain a dictionary manual for each application, and would therefore be enormous.
While there are books about AppleScript for single applications, Matt Neuburg quite simply wants to get you to see AppleScript through his eyes and learn to use it as he does, finding out what you need to know as you go along.
Part 1 - AppleScript Overview starts by identifying when and why you would want to use AppleScript - for example whenever you get bored doing something very repetitive with your computer. Also discussed in this part of the book are the different environments for creating AppleScripts and some of the important concepts and principles.
The singular feature of this section is that it contains a complete worked example of how to create an AppleScript to do a repetitive document management task. The example uses Framemaker; this has the disadvantage that people who don't have Framemaker won't be able to try it out. The point is to illustrate that no prior knowledge of the Framemaker dictionary is required - you can figure it out for yourself if you know how to ask the application !
Part 2 - The AppleScript Language, is intended as both a reference and instruction. As the author says, 'the order of the exposition is pedagogical' - you are supposed to read the chapters in order. This section explains all the language features and illustrates pitfalls including those caused by forgetting AppleScript is not English.
Part 3 - AppleScript in Action, is where, as the author puts it, having learned to use the sword in Part 2, you now go out and do battle. It covers dictionaries, scripting additions, working with applications both scriptable and unscriptable, working with UNIX and finally writing your own applications. Again in this section problems are foreseen and solutions provided.
There are appendices on Apple's 'aeut' resource and general AppleScript resources such as websites.
Highlights
The depth of the coverage is amazing and the approach of teaching you how to learn for yourself is refreshing.
If you are interested in linguistics as well as computer languages then this book is a delight. A language manual written by a linguist, it frequently compares and contrasts AppleScript to English and other computer languages.
Mac Guild Grade
A+ (Awesome)
Final Words
If you want to know everything there is to know about AppleScript, then this book is essential.
If on the other hand you are looking for a very practical tutorial or cookbook, be warned that after reading all of this book, I still have not typed any 'Hello World' AppleScript into AppleScript Studio. Maybe I just don't do enough boring, repetitive tasks with my Mac.
Having read all the way through to and well into Chapter 7 I'm giving up. For the most part you're way over my head. You spend a long time, especially in Chapter 6, in highlighting the gotchas of AppleScript well before the basic concepts have been introduced. The assumption of deep familiarity with other programming languages continues on from there.
Your text would have been the "Definitive Guide" if it had explained the fundamentals more clearly. No question you know what you're talking about, but for me you've made AppleScript obscure.
I'll keep the book on my shelf as reference, but I need another text to guide me into the language.
If you are new to scripting and looking for a basic manual or, if like me, you are self-taught and looking to fill in the blanks, this is the book for you. I don't know how Mr. Nueburg has done it, but he has managed to meet the needs of the newbie and the expert. Concepts such as the scoping of handlers, how script objects work, recursion and my personal favorite, lists, are explained in a way that anyone can understand. So many of these types books are written in what I call "high academic" making it nearly impossible for anyone but Ph.D in computer science to understand. This is not one of those books. Even though Matt Nueburg has a long career in the industry, he does not treat AppleScript as if he were writing his thesis on it.
It is also Nueburg's credit that he wrote and tested every script in the book which are also very easy to understand. I've seen too many AppleScript examples that read as if they were prepared by an Assembly Language programmer rather than playing to what is supposed to be one of AppleScripts strengths-readability.
Nueburg writes clearly, concisely and with a sense of humor and never taken himself or his subject matter too seriously. I mean how many reference books have you read that make you laugh out loud? I can't think of any. I just can't say enough about how excited I am to finally have this book. It is terrific and I recommend it highly.
Matt Neuburg has given us the first AppleScript book that tells the deep truth: AppleScript is a quirky, inconsistent programming language that is not only hard to learn, but hard to learn for fundamental, structural reasons. Neuburg exposes the unavoidable difficulties that are built into AppleScript's design, and then shows us practical techniques for accomodating to them and using them.
Anyone who reads this book carefully will be able to apply AppleScript with greater understanding and less wasted time, and be able to use it with far less of the disappointment, frustration, and even rage felt by all too many people who collide unprepared with AppleScript's tricks and traps.
Since there's no "look inside the book" feature, let me summarize the main sections. Part I explores AppleScript in a system context: what it is meant to do; how it is used (with an intro to the Script Editor); and what its basic concepts are. (Contra another reviewer, this 90pp part contains nothing about history; it's all current and relevant stuff, needed later in the book.)
Central to Part I is Chapter 3, "The AppleScript Experience," which describes the actual process of building a program. This chapter so perfectly reflected the confusions, frustrations, and dead-ends that I've experienced with AppleScript that I was sold: this guy really understands the problems! He doesn't minimize them or blame them on me. Maybe he can show me ways to work around them, but whether he does or not, at least he'd validated them.
Part II, 200pp, is a detailed and insightful exposition of the AppleScript language. Early in this part is a discussion of "The 'English-Likeness' Monster," showing how the attempt to be friendly distorts the language and confuses users.
Then Neuburg examines every detail of AppleScript's syntax and semantics. He doesn't do this like a typical "tech writer," rephrasing the official documentation. He has taken the time to write code to test out every corner case and exception of the language, and he lays them all bare. He looks into AppleScript's baroque scoping rules and its inconsistent rules for implicit coercion of types.
All of Part II is meat and drink to a fan of programming languages, and I read it through like a good novel. More to the point, it's a deep and thorough job of documenting the actuality of AppleScript: what syntax works, what the tricks and traps are, and what to avoid.
Part III tries to extend the same thorough methods to the process of creating applications in AppleScript, beginning with application dictionaries. Here Neuburg, like every other AppleScript user, bangs hard into the basic structural flaw of AppleScript: that all the interesting semantics and no small part of the syntax are implemented in other applications, not in AppleScript. Everything you want to actually accomplish with AppleScript, you do by sending messages to other programs -- the Finder, TextEdit, BBEdit, Mail, and so forth. The only documentation you have is each app's dictionary, and it can never be adequate. Chapter 19, "Dictionaries," contains a long editorial on "Inadequacies of the Dictionary" that details all the reasons that an app's dictionary can never tell you enough to use the app. Some of the reasons are structural (there's just no way to express the needed information) and some are due to human failure (the people who write dictionaries do a clumsy, inconsistent, and sometimes erroneous job). Neuburg can't fix these issues, but he does his best to prepare you to work around them. Nevertheless, as he says in another context, "AppleScript programming is often indistinguishable from guessing."
To sum up: this book is a deep, thorough exploration of all the quirks, dusty corners, and skeleton-filled closets of AppleScript. Reading it will make you far better prepared to use AppleScript productively.
I have a rock garden. Last week three of them died.
-- Richard Diran
Good-bye. I am leaving because I am bored.
-- George Saunders' dying words