Rust 中的函数反应式编程
Rust 中的函数反应式编程
原文:https://medium.com/hackernoon/functional-reactive-programming-in-rust-affebba6ebeb
所以,我是 UI 用 FRP 的大粉丝。我喜欢在网上使用它。React 和其他框架有点像 FRP。对于桌面,特别是使用 Rust GUIs,这种风格的选择还不多。这种语言甚至有阻止 FRP 风格的特性,或者至少让它变得更加困难。
那么什么是玻璃钢呢?简而言之,FRP 只是 MVC 的一种声明形式。所有呈现代码都是函数声明性的。所有模型都是声明性的。所有的数据交互也是声明性的。关键是没有“胶水”,这都是通过使用框架原语来完成的。
最麻烦的是,没有一种语言有简单的双向数据绑定解决方案。自上而下一切都很好,但是当你查看 React 类时,你会看到将数据更改发送到 DOM 层次结构所需的所有样板文件。
我一直在玩 Rust 中的 GUI 组件,享受除了 OpenGL 环境之外根本没有框架的简单…也许我应该建立自己的框架,哈哈。现在我只想做一个游戏并玩它,但是我为自己设计的 MVC 混乱有时很难理解。所以,这就是为什么我在看这些玻璃钢的原型机。
像 Elm 这样的语言,不幸的是我不太熟悉,在集成和加强适当的风格方面做得很好。有时候选择越少越好。试图将其中一些引入我的 Rust 代码时,我发现所有权检查非常麻烦。如果不是 GUI 库在开发的早期,我不会有任何问题。大多数时候,那里的原语的数据有点脏,基本上没有什么实现复制特性。
如果没有复制特性,我就无法在不引起所有权和可变性约束的愤怒的情况下发送数据或建立良好的上下文。这就是为什么我写下我的沮丧。不要误会我,我喜欢 Rust,所有权检查使我的代码更好,如果不是我想要的。在未来,我希望一些库原语能够很好地相互协作,这可能意味着要等到 1.0.0 版本发布。这一切似乎如此新鲜。
我猜这就是所谓的肥沃土地。你需要自己播种,否则什么都长不出来。
黑客中午是黑客如何开始他们的下午。我们是 @AMI 家庭的一员。我们现在接受投稿并乐意讨论广告&赞助机会。
要了解更多信息,请阅读我们的“关于”页面 , 喜欢/在脸书给我们发消息,或者简单地,发推文/DM @HackerNoon。