OK, I haven’t gone to 10.6 yet but I’m browsing the threads on ApplescriptObjC and I don’t really get the point. It seems like a confusing mashup of the two languages.
Applescript = easy and fairly powerful
ObjC = not so easy and extremely powerful
ApplescriptObjC = not so easy and moderately powerful
Plus you have to learn some translated dialect of ObjC. Why not just bite the bullet and learn ObjC ?
I was skeptical at first but have already translated several of my apps (medium size ones) over to ASOC and with minimal “bridge” language. Indeed there are some tricky spots (idle timers etc…) but most of them have been answered here and hopefully more examples coming soon from apple.
The new apps actually seem more responsive and faster.
I find it much better experience having access directly (most of the time) to the foundation stuff, bindings etc.
I don’t have time in my life to learn OBJ-C but know enough to read and understand, at least partially, what is going on.
I have spent probably 20+ hours reading up on OBJ-C and Cocoa so far and feel confident to work in this environment going forward. For someone knowing no Cocoa - OBJ-C I think it would be more daunting for sure. I don’t think the learning curve is very large and learning ASS years back was probably more difficult since it wasn’t obvious what the ASS handlers were doing via OBJ-C. Now I know!
After two weeks I can say this a good thing and hope they continue to improve the ‘bridge’
It depends on what kind of apps you’re writing. If you’re writing apps that control other apps, the parts that control those apps is painful to write in ObjC – AppleScript is much easier, for a host of reasons.
When it comes to adding interface, you have choices. In a lot of cases you can get by almost exclusively using Cocoa bindings. That’s because ASObjC let’s you bind to AS properties. So you may need to know next-to-nothing of ObjC code.
You can also write just the interface stuff in ObjC. The problem, though, is that you can’t then call back from your AS code.
Take a simple practical example: you have a script doing some repetitive process in some app like InDesign or Photoshop, and you want some kind of progress indicator. That means talking to your interface from within an AppleScript repeat loop. ASObjC makes that simple, even if you don’t use bindings.
Finally, it gives scripters an excellent way to ease into Cocoa and learning ObjC, should they want to.