RUST和WEBASSEMBLY在WEB开发中的兴起

Rust 由于 WebAssembly、新的 Rust IDE 和其他开发工具以及注重性能的用例而越来越受到 Web 开发人员的欢迎。

译自The Rise of Rust and WebAssembly in Web Development,作者 Richard MacManus。

随着支持WebAssembly的Rust开发者Web框架出现,值得关注的是Rust目前在Web开发中的使用频率、开发者使用的工具以及Rust和Wasm未来的适用场景。

在2024年JetBrains开发者生态系统报告中,35%的Rust开发者表示他们已经使用Rust进行Web开发工作。这与系统编程(同样为35%)并列第二,仅次于CLI工具(44%)——这两个项目通常被认为适合Rust,因为它们也适合C++开发者(Rust最具威胁的编程语言)。

在JetBrains报告的其他地方,19%的Web开发者表示他们部署到WebAssembly,而部署到Linux的比例为77%,部署到『Windows』的比例为43%,部署到MacOS的比例为36%。因此,虽然Wasm在Web开发中的使用相当普遍,但仍有很大的增长空间。还值得一提的是,Rust拥有一些最好的编译到Wasm的工具链,例如:

  • Wasm-bindgen:连接Rust和Java。
  • Wasm-pack:简化Rust的npm打包。
  • Cargo-generate:描述为“一个开发者工具,通过利用预先存在的git仓库作为模板,帮助你快速启动一个新的Rust项目。”
Rust IDE

在最新的Stack Overflow调查中,所有专业开发者在过去12个月中最有可能使用的集成开发环境(IDE)是Visual Studio Code,74%的受访者使用过它。当查看过去12个月使用过Rust的专业开发者时,这个百分比保持不变(75%)。因此,VS Code显然是Rust开发者的顶级IDE。

也就是说,有一个IDE似乎在Rust开发者中特别受欢迎——因为它没有被其他开发者广泛使用。36%的专业Rust开发者表示他们使用Neovim,而没有使用Rust的专业开发者仅为13%。这意味着Neovim是Rust开发者中第二受欢迎的IDE,仅次于VS Code。

有趣的是,Neovim的赞助商之一是Warp,一个基于Rust的终端,The New Stack的David Eastman将其描述为“你经常假设会拥有的命令行IDE,但你从未真正拥有过”。

在IDE方面,Rust开发者还有许多其他选择。JetBrains提供了一个名为RustRover的专用Rust IDE,以及IntelliJ IDEA和CLion的Rust插件。其他流行的IDE也支持Rust;例如Emacs和相对较新的Zed。

RustRover于2023年9月发布,JetBrains对Rust开发者的未来充满信心。去年二月,JetBrains开发者布道者Vitaly Bragilevsky指出,Rust不仅仅被用作“内存不安全”语言(如C++和C)的替代品。

……许多人从其他[编程语言]转向Rust。 JetBrains开发者布道者 Vitaly Bragilevsky

他说:“我们实际看到的是,许多人从其他编程语言转向Rust,他们也带来了全新的想法来用Rust实现一些东西。”例如Web应用程序的想法。

在之前接受The New Stack的采访中,Bragilevsky表示许多开发者从Java和Python社区转向Rust。“这些人可能对他们之前的编程语言有点不满,”他说。“也许他们的性能不够,而他们可以用Rust获得这种性能。有时他们缺乏安全性,而Rust肯定能提供这一点。”

至于Rust开发者在他们的IDE中想要什么,根据JetBrains开发者调查,12%的人表示他们想要更多Web框架支持。因此,这对现有的Rust IDE或新的开发工具产品来说是一个机会。

最适合Rust和Wasm的应用程序类型?

去年十一月,软件『工程师』Trevor I. Lasn撰写的文章指出,“WebAssembly 擅长将成熟的 C/C++ 或 Rust 库引入 Web”。他以 PDF 生成为例。“与其用 Java 重复发明复杂的字体渲染和布局算法,不如使用经过实战检验的 C++ 库,”他解释道。

Rust 越来越被视为一种用于复杂数据处理的语言。

同样的原则也适用于 Rust 库——虽然这些库可能不如 C++ 库那样“经过实战检验”,但 Rust 越来越被视为一种用于复杂数据处理的语言。而且由于 Rust 可以高效地编译成 WebAssembly,这意味着可以直接在 Web 浏览器或边缘环境中进行高性能数据处理。

Rust 在 Web 开发中的其他用例包括实时数据可视化、图像和视频处理以及游戏引擎。

尽管如此,Rust 不会很快取代 Java——Web 应用中的业务逻辑仍然最好由 JS 处理,并且 Wasm 的 DOM 操作能力有限。此外,如果不仔细操作,Wasm 可能会迅速使事情变得过于复杂。正如 Lasn 所观察到的那样,“如果你不是在进行大量的计算或使用其他语言的现有库,WebAssembly 可能会增加不必要的复杂性。”

无论如何,Web 开发正日益成为 Rust 开发人员的用例。因此,我们可以预期围绕 Rust 的开发工具生态系统将相应地发展。

本文在云云众生(https://yylives.cc/)首发,欢迎大家访问。

特别声明:[RUST和WEBASSEMBLY在WEB开发中的兴起] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

『曾舜晞』线下现场秒变春运分会场,橙色人潮把i人逼到营业边缘(『曾舜晞』出演的综艺)

为了能够近距离见到偶像,粉丝们从早上开始占位、全力应援;而『曾舜晞』也没有让大家失望,每次转场时都会回头打招呼,用真诚回应粉丝们的热情。有网友总结道:别人线下是见面会,而『曾舜晞』的线下是‘春运式奔赴会’,一边是i人…

『曾舜晞』线下现场秒变春运分会场,橙色人潮把i人逼到营业边缘(『曾舜晞』出演的综艺)

告别人工智障?吉利千里浩瀚G-ASD开起来真像老司机了!(人 工 智 障)

这意味着它处理信息的方式更像人类,能对复杂路况进行整体理解和推理,而不是机械地识别一个个孤立的物体。从更像人的算法,到不留死角的感知,千里浩瀚G-ASD正在将智能驾驶从“能用”推向“好用”的新阶段,重新定义安…

告别人工智障?吉利千里浩瀚G-ASD开起来真像老司机了!(人 工 智 障)

网红黄一鸣放大招 透露2岁女儿渴望父爱,和王思聪往事被重提(黄一鸣黑历史)

尽管有声音质疑她此举是为了炒作王思聪的流量,但也有观点认为,她的做法本质上是为孩子争取更好的生活。 截至目前,王思聪仍坚持自己的三不原则,『社交媒体』上没有对亲子争议发表任何评论,而黄一鸣的困境早已超出了个人…

网红黄一鸣放大招 透露2岁女儿渴望父爱,和王思聪往事被重提(黄一鸣黑历史)

马筱梅为何紧急停播?原来是因为玥儿发来的一个消息(马筱哲个人资料)

马筱梅耐心地解释道:孩子们是由我丈夫、我妈妈、婆婆和小杨阿姨一起照看的。带孩子对她来说,确实不容易,尤其是如今肚子里怀着另一个小生命。 现在,家里的分工也愈加明确:张兰和小杨阿姨负责照顾玥儿和箖箖,筱梅的…

马筱梅为何紧急停播?原来是因为玥儿发来的一个消息(马筱哲个人资料)

从被母亲掏空资产到歌坛封神,她扛住至亲的刀,挣脱血缘,向阳而生!(从小就被母亲抛弃)

那时候的她,承受着双重的打击:一边是最亲的人的背叛和剥削,多年的付出成了笑话;一边是事业的全面崩塌,公司雪藏她,身边的朋友渐渐远离,全网都是对她的诋毁,曾经的“励志天后”一夜之间成了人人指责的“坏人”。 …

从被母亲掏空资产到歌坛封神,她扛住至亲的刀,挣脱血缘,向阳而生!(从小就被母亲抛弃)