Rust 会成为 Web 和 UI 开发的主流语言吗?——对话全栈开发者 Nico Burns | Open AGI Forum

图片

作者 | Annie Xu

采访 | CSDN & Boolan 首席顾问 卢威

责编 | 何苗

出品丨GOSIM 开源创新汇
 

一个足够开放开源项目的贡献者来自来自世界各地。

埋头敲代码的间隙,你是否也对网线另一端的开发者产生过好奇?GOSIM 开源创新汇就为给全球开源开发者提供了一个线下沟通交流的机会。在 2024 GOSIM Europe,Nico 不仅见到了此前仅通过线上沟通的同事,也和来自 Dioxus、Bevy、xilem 和 Linebender 等项目的合作伙伴结下友谊。

GOSIM CHINA 2024 将于 10 月 17 至 18 日在北京举办。这是第三届 GOSIM 大会,延续了超强的国际化讲师阵容,还覆盖 Rust 编程语言、App 开发、AI 模型与基础设施、具身智能、下一代互联网、下一代媒体六大热点技术领域。欢迎您报名亲临现场,共赴这场思维盛宴!

图片

继 GOSIM 2024 欧洲站 APP & WEB 论坛上深入分享《Rust Ul 概况》后,Nico Burns 接受了 GOSIM 独家对话栏目 Open AGI Forum的邀请,由CSDN & Boolan 首席顾问卢威主持对话,分享了 Nico 职业发展的转型经历和他对 Rust UI 的独到见解。 

Nico Burns 的精彩观点分享:

  • UQt 和 Gtk 等 UI 开发框架都是用 C++ 编写的。但很多人认为 C++ 存在很多缺点,不喜欢使用 C++,而这就是 Rust 可以发力的地方。

  • 如果你不会 Rust、完全不了解 Rust,或者从来没有使用过 Rust,可以从阅读官方的《Rust 编程语言》入手。先阅读前 15 章,随后动手实践。

  • 模块化能让工作得到复用。采用模块化的方式,代码可以在不同的项目中得到使用,不同项目的开发者也都能进行贡献。

  • 尽管 Rust 可以实现热重载,但还是很难迅速编译。此外,Rust 的静态类型语言比 Java 更严格,一定程度上也增加了编译难度。

以下是本次采访的主要内容:

图片

Rust UI 的生态系统构建仍不成熟

GOSIM:大家好,欢迎来到 Open AGI Forum。我是来自 CSDN 的卢威。我们非常荣幸地邀请到了 Nico Burns,请向观众简要介绍一下自己。

Nico Burns:我从事 Rust UI 相关的工作,目前负责 Web 引擎和 Dioxus 的开发。

GOSIM:你一直积极致力于创建一个模块化的 UI 框架生态系统,模块化的重要性是什么?你们如何将它惠及 Rust 社区?

Nico Burns:模块化能让工作得到复用。有很多不同的 UI 项目都在做相似的事情,如渲染屏幕、处理 Unicode 文本等。如果这些代码是以模块化的方式编写,那么它们可以在不同的项目中得到使用,不同项目的开发者也都能对它进行贡献。

按照以往的运行模式,如果你对某个 Rust UI 框架中的某一方面不满意或者想仅使用其中的一部分,你无法对其进行调整,只能放弃整个框架。如果它应用了模块化,你就可以将其中特定部分单独作为一个模块,应用到另一个框架。

GOSIM:使用 Rust 语言构建 UI 框架,尤其是与 JavaScript 这样的传统语言相比,面临哪些挑战呢?你在项目中遇到的最大障碍是什么?你是如何应对的?

Nico Burns:一部分问题源于生态系统的不成熟——并不是每个库都可以使用。有些问题与 Rust 的相关。编译时间是其中的一个关键问题。对于使用 JavaScript 的开发者来说,可以很快启动并迭代用户界面,完全不需要编译。

而在 Rust 中,它的难度增加了。尽管可以实现热重载,但它还是比较难实现迅速编译。虽然 Rust 是一种静态类型语言,但它比 Java 这样的静态类型语言更严格,存在更多的限制。此外,由于 Rust 没有垃圾回收机制,处理动态和灵活的信息因而变得难上加难。

图片

群雄逐鹿,Rust UI 能突出重围吗?

GOSIM:随着 Taffy、Blades 等项目的发展,你如何看待 Rust 在 UI 开发领域的未来?

Nico Burns:我希望在未来一两年内,UI 最重要的功能可以通过 Rust UI 框架来实现。现在,很多框架已经实现了屏幕绘制等操作,但还有一些功能尚未完善,如输入法(IME)、无障碍支持。一些得到广泛应用的框架会开发者会更多的注意力和精力。人们可以直接使用现有框架,新框架的出现就减少了。

不过,也不一定如此,主流框架的流行并不会想小型框架的出现。以 Web 框架为例,尽管 React 非常流行,Angular、Vue 等等,市场上还有数百个框架的存在。但我认为,最终时常常只会存在三四个可供公司选择的主流框架。 

GOSIM:你认为 Rust 会成为 Web 和 UI 开发的主流语言吗?如果可以,它需要多长时间?

Nico Burns:我认为 Rust 成为 Web 和 UI 开发的主流语言有一定的可能性,但也不是必然的。就目前的技术来看,使用 Dioxus、Leptos 或 Sycamore 来创建网站并不存在特别的优势。React、Angular 或 JavaScript 框架实际上也运行得很好。不可否认的是,Rust 的生态系统与这些框架相比并不大。你完全可以使用 Rust,但也没有任何理由你必须这样做,除非是出于喜欢。

UI 开发方面还存在可开发的空间。UI 开发的其他框架,如 Qt 和 Gtk 等都是用 C++编写的。为了从中获得更好的性能,人们仍然选择使用这些框架而不是 JavaScript 的框架。但很多人认为 C++ 存在很多缺点,不喜欢使用 C++,而这就是 Rust 可以发力的地方。

图片

交流与实践,Rust 上手指南

GOSIM:从 Web 全栈开发者转型,专注于用 Rust 构建 UI 框架和网络引擎。这对你来说是一个重大转变,你的过往经历如何影响你在 Rust UI方面的工作呢?

Nico Burns:说起来很有趣,此前的经历是我选择做现在这部分工作的原因。例如,我用了六个月的时间搭建起来的 Taffy。Taffy 是网络算法的一种实现形式,它能搭建起来也得益于我曾经在创建 Web 应用程序时使用过相关算法。对我来说,了解它们具体的工作原理是一个有趣的过程。

我刚开始使用 Rust 时,它与我之前的工作并不是特别相关。实际上,我开始接触 Rust 是因为我们需要一个高性能的数据处理工具。现在想想,兴趣应该也占据很大一部分原因。

GOSIM:你参与了非常多的项目合作,能分享一下你在 Rust 项目中的合作经历吗?

Nico Burns:Taffy 项目就是一个多方合作的例子,开始于 Dioxus 和 Bevy 的合作。Taffy 原本是一个已经废弃了的旧库的分支,但通过我们共同的努力,它再次得到使用。Servo 的其他项目中,也有非常多的沟通交流,当人们会发现,很多人在和自己做同样的事情,会感到惊喜。大多数 Rust UI 项目的开发者都是使用 Discord 交流,也有人会使用 Zulip,但据我所知,开发者们都会使用聊天服务器。我常常在聊天服务器中听他们讨论,或者引导和鼓励让他们相互交流。我认为交流沟通十分重要。

GOSIM:对于那些对 Rust 感兴趣的开发者,特别是那些想使用 Rust 进行 UI 开发的开发者,建议能你能给到一些帮助他们迅速入门吗?

Nico Burns:首先,如果你不会 Rust、完全不了解 Rust,或者从来没有使用过 Rust,我建议阅读官方的《Rust 编程语言》。可以先阅读前 15 章,这些章节不长,两三天就可以浏览完。然后就可以开始动手实践,尝试构建项目。先学习一些理论知识是很有必要的,但也不要读完整本书再开始。我很喜欢直接动手实践,但这种方式并不适用于 Rust。

UI 开发方面,可以先多浏览一些流行的 UI 框架。我的网站 Blessed.rs 上有一个列表。可以自由选择一个框架并尝试构建一个小项目。另外,一定要加入 Discord、Zulip 或其他聊天群组,提出自己的疑问并和其他人交流。

GOSIM:好的,感谢 Nico,感谢你提供的详细的分享。感谢所有观看的开发者们,这次的访谈就到这里,下次再见!

相关链接:

Nico Burns演讲详细内容:https://mp.weixin.qq.com/s/9MDVt0tOpLwcOV7oKs2nxA

Nico Burns的Github主页:https://github.com/nicoburns

10 月 17 - 18 日,GOSIM CHINA 2024 (北京站)

大咖云集,精彩纷呈

期待您的加入

扫描下方二维码或点击阅读全文

早鸟观众票数量有限,先到先得!

欢迎您报名亲临现场

与多位开源领域资深大咖面对面交流

图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值