macOS and scripting

Apple to Deprecate Scripting Languages in Future Versions of macOS - TidBITS

Apple says future versions of macOS won’t include a number of open-source scripting languages. The impact of this change will vary depending on the audience, but it will affect more people than you might think.

My visceral reaction was “WTF!! What the bloody f**k”. When I calm down, I’ll hopefully post a more reasoned response. For now, I’ll include some links and some quotes from around the web.

Before removing these scripting languages from macOS, Apple will need to address its own reliance on them. Xcode includes many libraries in all three of the mentioned languages, but it should be trivial for Apple to add the runtimes to Xcode’s already enormous install. iMovie includes a lone Perl script, and it wouldn’t surprise me if Apple’s pro apps like Final Cut Pro X and Logic Pro X also contain some.

In addition to Apple’s apps, macOS 10.14 Mojave contains over 175 scripts outside the folders devoted to Perl, Python, and Ruby. Some are a part of the language, just in a different place, but the rest serve varied purposes. Once I realized how many there were, it seemed much less likely that all three languages would be removed in the macOS version after Catalina. Curtis Wilcox

Could removing scripting languages from macOS hinder others from being interested in and learning to programme?

Are we going to ask that person to figure out how to install Ruby? If there are one-click installers out there, are we going to ask them to figure out which one is actually reputable and safe?

Curiosity like this is one of the ways new developers are made. I worry that the less the Mac is tinkerable out-of-the-box, the fewer developers we’ll get.

Or: we’ll only get certain kinds of developers — the ones of the right age and background who can go get a CS degree.Brent Simmons

Why is Apple making this change? Is this because Apple doesn’t like the restriction in the open-source GNU Public licenses compared to the MIT license? Is it because Apple sucks at security?

So the question is why? I can’t wrap my head around any real benefit to Apple’s line of reasoning on this. They’ve not been great about keeping the runtimes up to date, but that’s actually been a boon, requiring less effort to keep scripts working with every OS release. These runtimes were even touted as a selling point in the past, and Microsoft is just now starting to add tools like this to the default Windows install. And they’re including a sexy Terminal. So why is Apple moving in the opposite direction?

My only guess is that it’s directly related to the iOS-ification of macOS. iOS is based on Unix, just like macOS, but scripting runtimes have never been included (nor are they installable without bundling). So, security? A higher wall on the garden, one more easily controlled? It can’t be about file size, nor complexity for the everyday user. It doesn’t affect either in any measurable way. I don’t have an answer to this question yet, and I don’t know that we’ll ever really get one.Brett Terpstra

UPDATE: I have had some time to consider this for a cyber-security perspective. Apple's decision to remove deprecated versions of scripting language and other *NIX tools will make macOS more secure. Users who need these tools can install them. It's part of the learning for the system. If a user is curious and confident enough to launch Terminal and poke around the macOS system, that user can figure out how to install Homebrew.