軟件大小:
軟件語言:
瀏覽人數(shù):631人
軟件類型:
授權(quán)方式:
用戶評(píng)分:
更新時(shí)間:2022-10-28
軟件分類:Mac系統(tǒng)
運(yùn)行環(huán)境:
通過喬什
翻譯丨核子可樂
每次發(fā)布新的 MacOS 大版本,除了下一個(gè)版本的細(xì)節(jié),蘋果還會(huì)介紹下很多方向。在 MacOS 10.15 的第一個(gè) beta 版本中,有一個(gè)“已棄用”部分,其中提到 MacOS 中包含的 :、Ruby 和 Perl 等腳本語言主要用于與舊軟件的兼容。未來版本的 MacOS 將不再默認(rèn)包含腳本語言運(yùn)行時(shí),您可能需要單獨(dú)安裝額外的包。如果您的軟件依賴于腳本語言,建議您將運(yùn)行時(shí)與應(yīng)用程序捆綁在一起。
這個(gè)指令是什么意思?
當(dāng)然,最直接的解釋是,Apple 可能打算從一開始就不再在 MacOS 的“所有未來版本”中包含執(zhí)行以上述語言編寫的腳本所需的運(yùn)行時(shí)。
但是,Apple 有時(shí)會(huì)棄用某些長(zhǎng)期組件,而不會(huì)直接刪除它們。例如,蘋果首次發(fā)布 Mac OS X 10.4 Tiger 時(shí),建議不要繼續(xù)使用舊的 cron 調(diào)度系統(tǒng);但對(duì)于接下來的十個(gè) MacOS 版本,cron 仍然存在,可供用戶繼續(xù)使用。
因此,這可能意味著,只要事情還沒有定論,來自 Apple 的任何警告實(shí)際上都可能只是“提醒”。但這至少要到明年才能最終確定;如果 Apple 不再為這些語言提供運(yùn)行時(shí),那么值得考慮其影響。
為什么要?jiǎng)h除這些腳本語言?
三個(gè)原因:安全、效率和專注。
這些語言普遍存在于各種基于 Unix 的系統(tǒng)上,并且從 2001 年開始在 MacOS X 中占有一席之地。那么為什么蘋果現(xiàn)在要移除它呢?這是因?yàn)?Apple 正在逐漸改變,尋求提高 MacOS 的安全級(jí)別。我們相信這是這一變化的主要?jiǎng)訖C(jī)。它會(huì)阻止來自未知開發(fā)者的應(yīng)用程序自動(dòng)運(yùn)行,但文本文件中的腳本可以在腳本語言運(yùn)行時(shí)執(zhí)行各種操作,這顯然是一個(gè)嚴(yán)重的安全隱患。
刪除腳本語言也可以幫助 MacOS 實(shí)現(xiàn)顯著的瘦身。每個(gè)運(yùn)行時(shí)程序都很小,但與所有編程語言一樣,腳本編寫者可以為常見任務(wù)調(diào)用大量代碼庫,確保他們不必重新發(fā)明輪子。
MacOS 附帶了數(shù)千個(gè)此類庫文件,總大小超過 150 MB。這似乎沒什么大不了的,但對(duì)于一個(gè)需要下載數(shù)百萬次的操作系統(tǒng)來說,這并不是一件容易的事。
最后,還有一個(gè)原則——在商業(yè)市場(chǎng)上,每個(gè)人都應(yīng)該專注于自己的優(yōu)勢(shì)。維護(hù)這些語言并沒有給蘋果帶來任何優(yōu)勢(shì);該公司不再為這些語言提供更新,用戶無法從龐大的庫中找到并安裝他們需要的庫選項(xiàng)。
誰將受到影響,他們將如何應(yīng)對(duì)?
這個(gè)問題的答案取決于你如何使用它以及你在日常工作中做了什么。
編劇
最了解這些腳本語言的用戶不受影響。專門從事網(wǎng)絡(luò)開發(fā)、科學(xué)分析或使用腳本語言作為日常工作選擇語言的腳本編寫者一定早就明白,Apple 并不打算為他們提供默認(rèn)語言庫維護(hù)和安裝服務(wù).
這些語言的認(rèn)真用戶長(zhǎng)期以來一直在單獨(dú)的文件夾中安裝單獨(dú)的副本,以確保可以隨時(shí)更新語言并輕松使用庫存中的各種庫方案。因此,即使蘋果不再提供默認(rèn)安裝后,原有的使用習(xí)慣也不會(huì)受到任何影響。
應(yīng)用程序開發(fā)人員
Mac 應(yīng)用程序是用編譯語言編寫的,但有時(shí)應(yīng)用程序包含用于執(zhí)行特定任務(wù)的腳本部分。Apple 的棄用通知相當(dāng)于建議開發(fā)人員在其應(yīng)用程序中包含腳本的運(yùn)行時(shí)可執(zhí)行文件;也就是說,蘋果正在將這部分工作交給開發(fā)者。
雖然在某些情況下,比如 Perl 語言,不同的應(yīng)用程序往往需要不同的 Perl 副本,這可能會(huì)對(duì)開發(fā)效率產(chǎn)生一定的影響。但是對(duì)于開發(fā)人員來說,他們只需要包含他們?cè)趹?yīng)用程序中使用的運(yùn)行時(shí)和特定的庫,而不是完整的腳本語言。一些應(yīng)用程序采用這種方法繼續(xù)使用 Java,而大多數(shù)現(xiàn)代應(yīng)用程序依賴于框架——其中也包括 Node 來運(yùn)行。
或者,開發(fā)人員可以切換到已編譯的代碼,或者用其他語言從頭開始重寫腳本,甚至將腳本轉(zhuǎn)換為二進(jìn)制可執(zhí)行格式。
Mac 管理員
為學(xué)校或企業(yè)管理大量計(jì)算機(jī)的管理員嚴(yán)重依賴自動(dòng)化,這必須需要大量的腳本。雖然大多數(shù)應(yīng)用程序開發(fā)人員已經(jīng)習(xí)慣了 Apple 對(duì)編譯代碼的安全措施,但 Mac 管理員在這方面的經(jīng)驗(yàn)普遍有限,因此可能更難以養(yǎng)成腳本習(xí)慣。
雖然有些管理員精通這些腳本語言中的一種或多種,??但我相信大多數(shù)管理員和我一樣,只有足夠的知識(shí)才能使用社區(qū)中的共享腳本。例如,Greg's Munki 是一個(gè)流行的開源工具,用于管理 Mac 軟件的安裝過程,由 但實(shí)際上,每個(gè)人都可以在沒有太多知識(shí)的情況下使用它。管理員目前傾向于收集大量用各種語言編寫的有用腳本,但是在每臺(tái) Mac 上安裝和維護(hù)多種語言的工作量太大,因此未來管理員可能只能選擇其中一種,無疑會(huì)大大限制可用工具的數(shù)量。對(duì)于更簡(jiǎn)單的任務(wù),管理員還可以使用 shell 腳本。Shell 腳本當(dāng)然是相當(dāng)安全的,只要終端應(yīng)用程序還在,
蘋果
在從 MacOS 中移除這些腳本語言之前,蘋果需要先移除對(duì)這些語言的依賴。Xcode 包含了大量這三種語言的庫,但是對(duì)于蘋果自己來說,將運(yùn)行時(shí)添加到 Xcode 已經(jīng)很大的安裝包中應(yīng)該不難。它包含一個(gè) Perl 腳本。另外,雖然我不知道,F(xiàn)inal Cut Pro X 和 Logic Pro X 也可能包含與這三種腳本語言相關(guān)的內(nèi)容。
除了 Apple 自己的應(yīng)用程序之外,MacOS 10.14 在 Perl 和 Ruby 的專用文件夾之外還包括超過 175 個(gè)腳本。有些是語言的一部分,有些有自己獨(dú)特的用途。在實(shí)現(xiàn)了這么多的腳本之后,我開始覺得這三種語言在發(fā)布之初就完全從 MacOS 中移除了。
其他用戶
很難準(zhǔn)確計(jì)算有多少日常用戶依賴至少一個(gè)包含至少一個(gè)腳本的應(yīng)用程序。對(duì)于那些官方維護(hù)比較積極的應(yīng)用,開發(fā)者會(huì)幫助最終用戶解決問題。但對(duì)于一些開源項(xiàng)目,尤其是跨平臺(tái)項(xiàng)目,不使用 MacOS 作為主要平臺(tái),項(xiàng)目貢獻(xiàn)者可能無法提供解決方案。
對(duì)于那些無法維護(hù)的應(yīng)用,這里也有一個(gè)解決方案:我們可以自己安裝腳本語言。每種腳本語言在 Mac 上都有不同的安裝方式,但最簡(jiǎn)單和最常用的方式是使用通用的包管理系統(tǒng),例如 . 由于它本身是由 Ruby 腳本組成的,我希望它的開發(fā)人員能夠留意 Apple 的警告,并在 Ruby 從未來的 MacOS 版本中完全消失之前及時(shí)添加運(yùn)行時(shí)。
如果您想查看有多少應(yīng)用程序包含這些語言的腳本,請(qǐng)將以下命令復(fù)制并粘貼到終端中:
find?/Applications?-type?f?|?while?read?in?;?do?if?file?-b?"${in}"?|?grep?-q?'Perl\|Python\|Ruby'?;?then?echo?"${in}"?;?fi?;?done
find 后面的第一個(gè)參數(shù)表示要檢查的文件夾。在我的 Mac 上,Plex Media 擁有最多的腳本,當(dāng)然還有一些在其他應(yīng)用程序中。一般來說,小公司產(chǎn)品或開源項(xiàng)目對(duì)腳本的依賴程度更高。
開始計(jì)劃
此棄用通知的目的是讓人們有足夠的時(shí)間做出響應(yīng),但這些通知通常不會(huì)按固定時(shí)間表實(shí)施。如果蘋果本身不打算積極結(jié)束對(duì)腳本的依賴,或者公司的一些關(guān)鍵客戶表示他們還沒有準(zhǔn)備好,那么這些語言中的一種或多種可能會(huì)繼續(xù)存在。
即使蘋果確實(shí)在 2020 年移除了從 MacOS 10.16 開始的所有腳本語言,但變化也不會(huì)像你想象的那么嚴(yán)重。例如,直到 MacOS 發(fā)行版才完全停止對(duì) 32 位應(yīng)用程序的支持。與此更改不同的是,如果 Apple 刪除了腳本語言,用戶可以隨時(shí)將它們放回原處。
最后一點(diǎn)。Swift 也可以用作腳本語言,但它的運(yùn)行時(shí)當(dāng)前不包含在 MacOS 中。但是現(xiàn)在最新的mac系統(tǒng)版本,Apple 可能會(huì)在未來的適當(dāng)時(shí)候?qū)⑵渥鳛槟_本語言選項(xiàng)包含在 Mac 中。
開發(fā)商怎么看?用戶 Simon 評(píng)論
做得好,我非常非常支持(有趣)。以前MacOS安裝包里有太多臃腫的東西。這些負(fù)責(zé)降低腳本運(yùn)行門檻的東西是垃圾,應(yīng)該清理掉。當(dāng)然,如果你愿意,你可以自己安裝一些,愿意升級(jí)到新 MacOS 版本的人肯定會(huì)這樣做,或者至少學(xué)會(huì)這樣做。但是你真的必須強(qiáng)迫每個(gè)用戶學(xué)習(xí)選擇和安裝適合語言的運(yùn)行時(shí)嗎?老實(shí)說現(xiàn)在最新的mac系統(tǒng)版本,如果我們?cè)敢膺@樣做,有很多系統(tǒng)比 MacOS 更好,我們?yōu)槭裁床恢苯邮褂盟鼈兡兀?/p>
OS X 的主要優(yōu)勢(shì)之一是它帶來了 Unix 系統(tǒng)的許多亮點(diǎn),這自然要?dú)w功于它在 NeXT 時(shí)代的遺產(chǎn)(終端、腳本語言、編譯器、X11 等)。也正是因?yàn)槿绱耍琈acOS 才對(duì)科學(xué)界具有如此強(qiáng)烈的吸引力。蘋果的最新舉措實(shí)際上是自毀長(zhǎng)城。不要跟我說“優(yōu)秀的科學(xué)家可以自己安裝這些東西”,根本不是這樣的。人們討厭包管理器,不想從頭開始編譯。如果我必須從頭開始安裝所有標(biāo)準(zhǔn)的 *NIX 工具,我首先必須安裝使這些工具的安裝程序工作的所有雜物……我寧愿自殺。對(duì)我來說,最好的辦法就是買一臺(tái)便宜的電腦,安裝好,安心使用。這反而更簡(jiǎn)單。多么諷刺,蘋果的本意是提供更輕松的用戶體驗(yàn),現(xiàn)在卻變成了麻煩的體驗(yàn)。
用戶大衛(wèi)評(píng)論
我知道這些工具可能默認(rèn)不再安裝,但是如果安裝了開發(fā)者工具包,會(huì)不會(huì)受到影響?畢竟,許多開發(fā)人員喜歡 Mac,因?yàn)樗且慌_(tái)真正的 Unix 機(jī)器,具有所有 Unix 工具、標(biāo)準(zhǔn) C 庫和 API。這一切都不可用。
在辦公室里,你會(huì)看到技術(shù)人員寧愿離開公司發(fā)的電腦吃灰,也每天背著自己的日常工作。在這個(gè)過程中,很多人成為了蘋果的鐵桿粉絲。至少,如果我安裝了 Xcode,請(qǐng)也為我安裝這些語言。
現(xiàn)在我要評(píng)論 zsh - 它很糟糕,真的很糟糕。zsh 非常臃腫,容易崩潰。它的設(shè)計(jì)思路基本上是把所有可能的語法都集成到一個(gè)shell中,結(jié)果就是誰用csh語法寫腳本誰肯定倒霉!這不僅使 zsh 變得更大,而且還導(dǎo)致許多命令和函數(shù)的運(yùn)行方式與 bash 完全不同。
當(dāng)然,這不完全是蘋果的錯(cuò)。出于法律原因,Apple 不能使用 GNUv3 許可下的軟件現(xiàn)在最新的mac系統(tǒng)版本,包括所有較新版本的 Bash shell。Mac 上最新版本的 bash 是 3 abs bash,但是目前官方版本的 bash 已經(jīng)更新到 5。
許多軟件都基于雙重 GNU 和/或 MIT 許可,這意味著像 Apple 這樣的公司可以根據(jù)需要更換部分許可軟件。但不幸的是,bash 不在其中。
原文鏈接:
AI技術(shù)如何賦能金融業(yè)務(wù)?深度學(xué)習(xí)遇到瓶頸?各大廠商的搜索推薦技術(shù)都有哪些黑科技?行業(yè)優(yōu)秀AI技術(shù)實(shí)施案例詳解,詳情請(qǐng)點(diǎn)擊“閱讀原文”。
點(diǎn)擊查看更少的錯(cuò)誤