#1 For those who could stomach “dot-languages”, Python, Ruby, Node.js, and Swift were all highly competent replacements for a while, as long as you knew to avoid Apple’s own crapware and use appscript and its descendants instead:
https://appscript.sourceforge.io/
rb-appscript and nodeautomation bridges are long broken, but the original Python appscript still functions and receives precompiled builds for new Python versions thanks to Felix Zumstein. The accompanying ASDictionary and ASTranslate apps are also still working since I rebuilt them as 64-bit and greatly simplify translating working AppleScript commands to Python equivalents:
appscript - Browse Files at SourceForge.net
SwiftAutomation appears to still work too, once I updated the minimum OS version in the Xcode projects, albeit with a bunch of deprecation warnings. While I’m no fan of Lattner’s language (“rubberized C++”), looking at SwiftAutomation afresh I’m impressed by just how usable it was. Had Sal taken it when I offered, he could’ve saved both his own job and Mac Automation after his JXA debacle—SwiftAutomation would’ve won a LOT of new Mac Automation users. Oh well.
#2 Back in 2019 I prototyped an “AppleScript successor” named Iris for my own entertainment, seeking to marry the simplicity and consistency of Seymour Papert’s Logo language with the power of Mac Automation:
tell app “com.apple.TextEdit” to do
make new: #document at: end of documents with_properties: {name: “Test”, text: “Hello again!”}
get text of every document
done➞ [“Hello again!”]
Totally extensible and richly introspectable, it was designed from the beginning to interface with generative AI too, tackling one of the biggest challenges frustrating non-programmers and other new users: how to turn what they know they want doing and can describe in conversational text into its formal human- and machine-readable equivalent.
I wasn’t entirely happy with the experiment’s result: while Iris’s syntax and semantics are much simpler and easy to explain (“everything is a command”) than AppleScript’s unpredictable magic, it was still more complex than Logo and especially needed a smart code editor to assist the user with the additional punctuation. (Punctuation’s always a pain for users to type right. The included REPL supports rudimentary code highlighting, history, and multi-line entry, but not much else.) And tradeoffs inherent to operator syntax—easier readability at cost of adding more language rules which must be learned by users—drove me up the wall.
Still, anyone with a curiosity in how to design a next-gen scripting language that could appeal to both non-programmers and professional coders should take a rummage. Iris really condensed everything I learned over 20 years as end-user learner, amateur scripter, professional automator, documentation author, and language developer; and there’s ideas and solutions in it I’m fairly sure still haven’t been done by anyone else.
Obviously none of this stuff is supported by me any more; but it’s there for taking if anyone wants to play around with it. A glimpse of what could’ve so easily been, had Apple’s Mac Automation department been run by someone like Cal or Mark who knew what they were doing.
#3 A few years ago I also started developing an AppleScript-to-JavaScript transpiler to assist with migrating a mass of legacy Photoshop and Illustrator AppleScripts to UXP. The job I was creating it for didn’t pan out so I stopped pretty early, but if anyone really wants that code I might be persuaded in DM.
p.s. Anyone curious what I’m up to nowadays is welcome to find me on LinkedIn.