自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Rust的好搭檔,Wasm需要學習下Java

譯文 精選
開發(fā) 前端
用“Rust+Wasm”寫前端真香,已經(jīng)成為了圈內(nèi)的大眾話題,甚至在2018年,Rust重點發(fā)展目標之一就是建立針對便于開發(fā)WebAssembly的生態(tài)工具。那么5年過去了,這門有望取代JavaScript的語言,究竟需要如何發(fā)展,創(chuàng)建者發(fā)話了:向Java學習!

作者丨 B. Cameron Gain

譯者丨千山

很難相信,自從2001年互聯(lián)網(wǎng)泡沫破滅以來,已經(jīng)過去了20多年。每當科技處于周期性下行軌道時,它仍然是潛在厄運的前兆。我清楚地記得,在2001年經(jīng)濟崩盤后不久,我曾和一些IT領域的失業(yè)者、待業(yè)者一起,整天無所事事地閑逛。

某天,在紐約的一個公園里,我的一個朋友坐在公園的長椅上敲著他的筆記本電腦,他說有一個非??岬木W(wǎng)站創(chuàng)建工具叫Java。

實際上,時間已經(jīng)過去很久了,但我至今記憶猶新。

朋友興奮地描述著這樣的圖景:你可以用Java代碼編程,并部署在你想要的任何地方,這是多么令人驚嘆。這在改變網(wǎng)站用戶體驗方面發(fā)揮了關鍵作用,尤其是和上世紀90年代相比,彼時還是HTML代碼提供網(wǎng)站設計的主要元素。

“當然,為什么不呢,我去看看,”我回應道。

之后就是我們大家都熟知的歷史了:不僅在Web開發(fā)中,Java在整個IT基礎設施中都占據(jù)了一席之地。

快進到今天:有一個叫做WebAssembly或Wasm的東西,它提供了非常類似的聲明:一次編譯,到處運行。它不僅適用于最初創(chuàng)建的Web應用程序,而且適用于跨網(wǎng)絡和在CPU上運行的任何東西。

這有沒有讓你聯(lián)想到什么?

企業(yè)管理協(xié)會(EMA)的分析師Torsten Volk評論道:“Wasm可能是Java的孫子,它遵循了一脈相承的原則,即允許開發(fā)人員在任何設備上運行相同的代碼,但與此同時,Wasm還修復了阻止‘在任何設備上運行Java’的初心成真的基本問題?!?/p>

1、簡單案例

Wasm已被證明在許多不同的硬件環(huán)境中非常有效,從服務器端到邊緣部署和物聯(lián)網(wǎng)設備,或者任何代碼可以直接在CPU上運行的地方。

代碼捆綁在整齊打包的Wasm可執(zhí)行文件中運行,可以將其與容器甚至迷你操作系統(tǒng)相比較,后者運行時所需的代碼和目標配置要少得多(如果有的話)。從本質(zhì)上講,無論代碼部署在哪里,應用程序都比僅僅局限于Web瀏覽器環(huán)境要遠得多。因此,開發(fā)人員創(chuàng)建代碼并部署它。它真的可以這么簡單,尤其是在使用PaaS解決方案時。

Volk指出,最重要的是,Wasm實現(xiàn)了真正的“一次編譯,到處運行”功能,即相同的代碼可以在任何受支持的設備上運行,而不需要重新編譯。

“Wasm不局限于一種開發(fā)語言,而是支持Python和許多其他流行語言。開發(fā)人員可以在服務器和其他設備的共享環(huán)境中運行他們的代碼,而不必擔心底層的Kubernetes集群或虛擬機管理程序,”Volk說?!八麄冞€為他們的微服務接收統(tǒng)一的日志記錄和跟蹤,開箱即用。與Java相比,這種簡化的開發(fā)體驗是另一個巨大的優(yōu)勢?!?/p>

在最近的KubeCon+CloudNativeCon會議上,有人發(fā)表了關于使用Wasm取代Kafka以降低時延的演講。與此同時,Java繼續(xù)被用于網(wǎng)絡應用程序,盡管替代方案可以提供更好的性能,但開發(fā)人員仍然在使用它,因為他們只是喜歡使用Java。由此推斷,即使Wasm的運行時性能不是很好,開發(fā)人員仍然可能僅僅因為使用簡單而采用它。

“Wasm的一大優(yōu)點是,開發(fā)人員很容易上手,只需部署一些代碼并立即觀察其運行即可。這種價值主張可能需要一段時間才能完全理解,可是一旦你迷上了,你就不想再擔心底層基礎設施的里里外外了,”Volk說。“然后你可以決定是否有必要替換Kafka,或者你只是想把它連接到你的Wasm應用程序上?!?/p>

Java的整個“一次編譯,到處運行”的承諾與WebAssembly非常相似,F(xiàn)ermyon Technologies的首席執(zhí)行官兼聯(lián)合創(chuàng)始人Matt Butcher提到:“事實上,Luke (注:Luke Wagner是WebAssembly的初作者)曾經(jīng)告訴我,他認為Java是20年的有用研究,構成了如何編寫下一代(例如Wasm)的基礎。”

2、還是不一樣

Java和Wasm之間有一個關鍵區(qū)別:它們的安全態(tài)勢。

它的可移植性和一致性可以使安全性和合規(guī)性更易于管理(同樣,它在 CPU 級別以二進制格式運行)。此外,Wasm結構的簡單性意味著代碼在封閉的沙盒環(huán)境中發(fā)布,幾乎直接發(fā)布到端點。Java(以及 .NET)的默認安全狀態(tài)是“信任它正在運行的代碼”,而Java授予代碼對文件系統(tǒng)、環(huán)境、進程和網(wǎng)絡的訪問權限。

“相比之下,Wasm的默認安全狀態(tài)是不信任在語言運行時中運行的代碼。對于Fermyon(以云和邊緣為中心)來說,這是使Wasm成為云服務的良好候選的關鍵特性,”Butcher指出。

因為它與容器和虛擬機采取的安全態(tài)勢相同。這使得我們作為云供應商可以向用戶銷售服務,而無需審查或批準用戶的代碼。

換句話說,在使用分布式容器化和微服務環(huán)境時,需要擔心的攻擊點數(shù)量呈指數(shù)級增長。Volk同意Matt的評估,因為依靠零信任原則允許基于相同技術的多租戶,如mTLS和jwt,這些技術已經(jīng)用于在Kubernetes上運行的應用程序容器。

“這使得Wasm很容易在共享環(huán)境中安全地試用,這應該會降低入門的初始障礙,”Volk說。

Java和Wasm之間的另一個巨大區(qū)別是Java需要JVM并且不需要額外的資源,比如垃圾收集器,InfinyOn的首席技術官Sehyo Chang如是說。

“另一方面,Wasm非常接近底層CPU,不需要GC或其他繁重的粘合邏輯,”Chang說?!斑@使得Wasm能夠在非常低功耗的CPU上運行,適合在嵌入式設備或物聯(lián)網(wǎng)傳感器中運行?!?/p>

3、結語

很多人認為Wasm的未來就在于能在瀏覽器之外運行它。正如Matt Butcher所說,Wasm像虛擬機和容器一樣,能夠在云中運行,這才是真正令人興奮的地方。

雖然Wasm還很年輕,但它提供的種種可能性已經(jīng)非常有吸引力。憑借著與瀏覽器高度匹配的各種特性,Wasm在瀏覽器之外更有種“海闊任魚躍、天高任鳥飛”的意味。終有一日,Wasm會發(fā)展出更美好的未來圖景。

原文鏈接:https://thenewstack.io/javas-history-could-point-the-way-for-webassembly/

責任編輯:武曉燕 來源: 51CTO技術棧
相關推薦

2022-11-18 08:18:46

QueryDSLJPASQL

2022-05-26 07:42:22

Python編輯器VSCode

2022-11-14 09:55:34

長江存儲

2011-05-20 07:40:08

2021-05-29 20:45:37

辦公

2017-11-09 16:02:26

11.11

2021-03-24 16:59:15

存儲

2019-09-18 13:32:00

DELL筆記本

2024-11-08 09:19:28

2022-12-30 11:05:40

Rust代碼

2024-09-30 16:25:40

2023-07-17 11:25:35

.NET程序WinDbgPerfview

2019-12-11 10:00:10

區(qū)塊鏈區(qū)塊鏈技術

2024-11-05 09:20:47

2011-06-22 10:13:58

TRILLFCoESTP

2020-06-02 10:00:33

GitHub 技術開發(fā)

2022-11-28 11:41:24

Wasm

2024-07-26 10:13:32

2023-12-06 08:45:01

WasmJavaScript
點贊
收藏

51CTO技術棧公眾號