Scripting languages deprecated in macOS Catalina

macOS Catalina beta release notes say “Future versions of macOS won’t include scripting language runtimes [such as Python, Ruby, and Perl] by default.” This means Catalina will have them but 2020’s macOS won’t.

Quoting myself from the New Mac Pro and Pro Display XDR Offer Power for a (High) Price thread:

It seems, rather than do a better job of supporting these scripting languages, they’re going to get rid of them entirely, Catalina will be the last to include them. I get it, few end users write scripts and those that do will install a current version, either directly from the runtime maintainers or via something like Homebrew. It also removes tools that hackers exploit.

Still, it’s going to be very disruptive to technicians who support many Macs, be a burden on smaller software developers, and greatly complicate the lives of users trying to make use of a vast corpus of code. That code is not just in repositories like GitHub or unmaintained binaries that assume the languages will be present, there’s also all the code that has been shared less formally on mailing lists and web forums.

2 Likes

As I’ve said before, this is going to impact less than 10% of the client base for Macs. Maybe less than 1%.

Now I’m in the impacted group and will have to deal with it but I understand why even if I don’t like it.

1 Like

I’m guessing that AppleScript will still be supported in 10.15? (The beta release notes make no mention other than a Known Issue with Script Editor.)

I’m sure this deprecation note doesn’t apply to Apple’s own AppleScript. Also, no scripting language will be removed from 10.15, the note is about future macOS versions after Catalina.

Are they implying that these languages will have a hardware reason why they won’t run, or can they still be installed from the distributions?

No.

Yes, you can install scripting language interpreters either using installers from their maintainers or through a package management system like Homebrew.

Apple has reasons to move away from things that have GPL attached in some way. This allows them to break free of all scripting and not have to “support” them and deal with possible GPL issues with some of them.

Perl, Python, and Ruby do not require agreeing to a GPL license to distribute them, they have other open source licenses. Also, it’s GPL 3 that’s specifically concerning to companies like Apple, that’s why they wrote a replacement for Samba for connecting to Windows systems and still include an old version of rsync.

Given that they took the trouble to maintain all the AppleScript libraries present in iTunes in the surgically-separated Music.app, they appear to be willing to give AS at least another two years, but who knows.

Apple’s relative silence on the subject is simultaneously troubling, but I think you can safely assume that (Siri) iOS Shortcuts is slated to eventually replace AppleScript on macOS.

The coming improvements to Shortcuts in iOS 13 are encouraging, as it least appears as though much of it will finally run quietly in background, instead of the janky, comical foreground app dance it does now.

My prayer is that they just don’t rip out AS altogether, and leave behind what works as is, even if they don’t intend to develop any further. Countless apps rely on AS and Apple Events and available third party dictionaries; it would consume an uncountable amount of hours for everyone to have to recreate and replace what may have been installed and working for over two decades.

The Python version in Mojave is quite old (yes, 2.7, but behind in point releases (I have 2.7.10 whereas 2.7.16 is current (can’t conveniently check a freshly installed Mojave). And Python 2.anything reaches end of life (no more updates, security or otherwise) at the end of 2019. I don’t know what version is in Catalina (waiting for public beta).

The Python.org installers install into the writable area of Catalina (/usr/local/…) which is at least a good sign that they do it right (for what “right” is now).

I won’t have to keep doing my annual “I wonder what version of Python is included in macOS xxx” dance.

–John

Regarding AppleScript:

  • I have a bug report open where I can easily make a computer hang or crash AppleMail with letting an AppleScript run. The bug report is from Mojave, but the bug also in High Sierra. Reaction so far: nothing.
  • Almost every script in Catalina for AppleMail results in an error right now. Also reported as bug.

Based on the beta release notes, I think Catalina will still have python27 “for compatibility with legacy software” (which may include scripts macOS ships with). However since, as you note, Python 2.7 won’t be updated after 2019, it may also include python3.

That sounds very frustrating. Maybe you should start a new topic here about it, this topic is about open source scripting languages, not AppleScript. My first thought is maybe it has to do with Security and Privacy permissions one has to grant, new ones were added in Mojave.