马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
作者 | 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 (北京站)
大咖云集,精彩纷呈
等待您的加入
扫描下方二维码或点击阅读全文
早鸟观众票数目有限,先到先得!
接待您报名亲临现场
与多位开源范畴资深大咖面临面交换
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |