软件大小:
软件语言:
浏览人数:557人
软件类型:
授权方式:
用户评分:
更新时间:2022-10-28
软件分类:Mac系统
运行环境:
通过乔什
翻译丨核子可乐
每次发布新的 MacOS 大版本,除了下一个版本的细节,苹果还会介绍下很多方向。在 MacOS 10.15 的第一个 beta 版本中,有一个“已弃用”部分,其中提到 MacOS 中包含的 :、Ruby 和 Perl 等脚本语言主要用于与旧软件的兼容。未来版本的 MacOS 将不再默认包含脚本语言运行时,您可能需要单独安装额外的包。如果您的软件依赖于脚本语言,建议您将运行时与应用程序捆绑在一起。
这个指令是什么意思?
当然,最直接的解释是,Apple 可能打算从一开始就不再在 MacOS 的“所有未来版本”中包含执行以上述语言编写的脚本所需的运行时。
但是,Apple 有时会弃用某些长期组件,而不会直接删除它们。例如,苹果首次发布 Mac OS X 10.4 Tiger 时,建议不要继续使用旧的 cron 调度系统;但对于接下来的十个 MacOS 版本,cron 仍然存在,可供用户继续使用。
因此,这可能意味着,只要事情还没有定论,来自 Apple 的任何警告实际上都可能只是“提醒”。但这至少要到明年才能最终确定;如果 Apple 不再为这些语言提供运行时,那么值得考虑其影响。
为什么要删除这些脚本语言?
三个原因:安全、效率和专注。
这些语言普遍存在于各种基于 Unix 的系统上,并且从 2001 年开始在 MacOS X 中占有一席之地。那么为什么苹果现在要移除它呢?这是因为 Apple 正在逐渐改变,寻求提高 MacOS 的安全级别。我们相信这是这一变化的主要动机。它会阻止来自未知开发者的应用程序自动运行,但文本文件中的脚本可以在脚本语言运行时执行各种操作,这显然是一个严重的安全隐患。
删除脚本语言也可以帮助 MacOS 实现显着的瘦身。每个运行时程序都很小,但与所有编程语言一样,脚本编写者可以为常见任务调用大量代码库,确保他们不必重新发明轮子。
MacOS 附带了数千个此类库文件,总大小超过 150 MB。这似乎没什么大不了的,但对于一个需要下载数百万次的操作系统来说,这并不是一件容易的事。
最后,还有一个原则——在商业市场上,每个人都应该专注于自己的优势。维护这些语言并没有给苹果带来任何优势;该公司不再为这些语言提供更新,用户无法从庞大的库中找到并安装他们需要的库选项。
谁将受到影响,他们将如何应对?
这个问题的答案取决于你如何使用它以及你在日常工作中做了什么。
编剧
最了解这些脚本语言的用户不受影响。专门从事网络开发、科学分析或使用脚本语言作为日常工作选择语言的脚本编写者一定早就明白,Apple 并不打算为他们提供默认语言库维护和安装服务.
这些语言的认真用户长期以来一直在单独的文件夹中安装单独的副本,以确保可以随时更新语言并轻松使用库存中的各种库方案。因此,即使苹果不再提供默认安装后,原有的使用习惯也不会受到任何影响。
应用程序开发人员
Mac 应用程序是用编译语言编写的,但有时应用程序包含用于执行特定任务的脚本部分。Apple 的弃用通知相当于建议开发人员在其应用程序中包含脚本的运行时可执行文件;也就是说,苹果正在将这部分工作交给开发者。
虽然在某些情况下,比如 Perl 语言,不同的应用程序往往需要不同的 Perl 副本,这可能会对开发效率产生一定的影响。但是对于开发人员来说,他们只需要包含他们在应用程序中使用的运行时和特定的库,而不是完整的脚本语言。一些应用程序采用这种方法继续使用 Java,而大多数现代应用程序依赖于框架——其中也包括 Node 来运行。
或者,开发人员可以切换到已编译的代码,或者用其他语言从头开始重写脚本,甚至将脚本转换为二进制可执行格式。
Mac 管理员
为学校或企业管理大量计算机的管理员严重依赖自动化,这必须需要大量的脚本。虽然大多数应用程序开发人员已经习惯了 Apple 对编译代码的安全措施,但 Mac 管理员在这方面的经验普遍有限,因此可能更难以养成脚本习惯。
虽然有些管理员精通这些脚本语言中的一种或多种,但我相信大多数管理员和我一样,只有足够的知识才能使用社区中的共享脚本。例如,Greg's Munki 是一个流行的开源工具,用于管理 Mac 软件的安装过程,由 但实际上,每个人都可以在没有太多知识的情况下使用它。管理员目前倾向于收集大量用各种语言编写的有用脚本,但是在每台 Mac 上安装和维护多种语言的工作量太大,因此未来管理员可能只能选择其中一种,无疑会大大限制可用工具的数量。对于更简单的任务,管理员还可以使用 shell 脚本。Shell 脚本当然是相当安全的,只要终端应用程序还在,
苹果
在从 MacOS 中移除这些脚本语言之前,苹果需要先移除对这些语言的依赖。Xcode 包含了大量这三种语言的库,但是对于苹果自己来说,将运行时添加到 Xcode 已经很大的安装包中应该不难。它包含一个 Perl 脚本。另外,虽然我不知道,Final Cut Pro X 和 Logic Pro X 也可能包含与这三种脚本语言相关的内容。
除了 Apple 自己的应用程序之外,MacOS 10.14 在 Perl 和 Ruby 的专用文件夹之外还包括超过 175 个脚本。有些是语言的一部分,有些有自己独特的用途。在实现了这么多的脚本之后,我开始觉得这三种语言在发布之初就完全从 MacOS 中移除了。
其他用户
很难准确计算有多少日常用户依赖至少一个包含至少一个脚本的应用程序。对于那些官方维护比较积极的应用,开发者会帮助最终用户解决问题。但对于一些开源项目,尤其是跨平台项目,不使用 MacOS 作为主要平台,项目贡献者可能无法提供解决方案。
对于那些无法维护的应用,这里也有一个解决方案:我们可以自己安装脚本语言。每种脚本语言在 Mac 上都有不同的安装方式,但最简单和最常用的方式是使用通用的包管理系统,例如 . 由于它本身是由 Ruby 脚本组成的,我希望它的开发人员能够留意 Apple 的警告,并在 Ruby 从未来的 MacOS 版本中完全消失之前及时添加运行时。
如果您想查看有多少应用程序包含这些语言的脚本,请将以下命令复制并粘贴到终端中:
find /Applications -type f | while read in ; do if file -b "${in}" | grep -q 'Perl\|Python\|Ruby' ; then echo "${in}" ; fi ; done
find 后面的第一个参数表示要检查的文件夹。在我的 Mac 上,Plex Media 拥有最多的脚本,当然还有一些在其他应用程序中。一般来说,小公司产品或开源项目对脚本的依赖程度更高。
开始计划
此弃用通知的目的是让人们有足够的时间做出响应,但这些通知通常不会按固定时间表实施。如果苹果本身不打算积极结束对脚本的依赖,或者公司的一些关键客户表示他们还没有准备好,那么这些语言中的一种或多种可能会继续存在。
即使苹果确实在 2020 年移除了从 MacOS 10.16 开始的所有脚本语言,但变化也不会像你想象的那么严重。例如,直到 MacOS 发行版才完全停止对 32 位应用程序的支持。与此更改不同的是,如果 Apple 删除了脚本语言,用户可以随时将它们放回原处。
最后一点。Swift 也可以用作脚本语言,但它的运行时当前不包含在 MacOS 中。但是现在最新的mac系统版本,Apple 可能会在未来的适当时候将其作为脚本语言选项包含在 Mac 中。
开发商怎么看?用户 Simon 评论
做得好,我非常非常支持(有趣)。以前MacOS安装包里有太多臃肿的东西。这些负责降低脚本运行门槛的东西是垃圾,应该清理掉。当然,如果你愿意,你可以自己安装一些,愿意升级到新 MacOS 版本的人肯定会这样做,或者至少学会这样做。但是你真的必须强迫每个用户学习选择和安装适合语言的运行时吗?老实说现在最新的mac系统版本,如果我们愿意这样做,有很多系统比 MacOS 更好,我们为什么不直接使用它们呢?
OS X 的主要优势之一是它带来了 Unix 系统的许多亮点,这自然要归功于它在 NeXT 时代的遗产(终端、脚本语言、编译器、X11 等)。也正是因为如此,MacOS 才对科学界具有如此强烈的吸引力。苹果的最新举措实际上是自毁长城。不要跟我说“优秀的科学家可以自己安装这些东西”,根本不是这样的。人们讨厌包管理器,不想从头开始编译。如果我必须从头开始安装所有标准的 *NIX 工具,我首先必须安装使这些工具的安装程序工作的所有杂物……我宁愿自杀。对我来说,最好的办法就是买一台便宜的电脑,安装好,安心使用。这反而更简单。多么讽刺,苹果的本意是提供更轻松的用户体验,现在却变成了麻烦的体验。
用户大卫评论
我知道这些工具可能默认不再安装,但是如果安装了开发者工具包,会不会受到影响?毕竟,许多开发人员喜欢 Mac,因为它是一台真正的 Unix 机器,具有所有 Unix 工具、标准 C 库和 API。这一切都不可用。
在办公室里,你会看到技术人员宁愿离开公司发的电脑吃灰,也每天背着自己的日常工作。在这个过程中,很多人成为了苹果的铁杆粉丝。至少,如果我安装了 Xcode,请也为我安装这些语言。
现在我要评论 zsh - 它很糟糕,真的很糟糕。zsh 非常臃肿,容易崩溃。它的设计思路基本上是把所有可能的语法都集成到一个shell中,结果就是谁用csh语法写脚本谁肯定倒霉!这不仅使 zsh 变得更大,而且还导致许多命令和函数的运行方式与 bash 完全不同。
当然,这不完全是苹果的错。出于法律原因,Apple 不能使用 GNUv3 许可下的软件现在最新的mac系统版本,包括所有较新版本的 Bash shell。Mac 上最新版本的 bash 是 3 abs bash,但是目前官方版本的 bash 已经更新到 5。
许多软件都基于双重 GNU 和/或 MIT 许可,这意味着像 Apple 这样的公司可以根据需要更换部分许可软件。但不幸的是,bash 不在其中。
原文链接:
AI技术如何赋能金融业务?深度学习遇到瓶颈?各大厂商的搜索推荐技术都有哪些黑科技?行业优秀AI技术实施案例详解,详情请点击“阅读原文”。
点击查看更少的错误